path: root/include/expression.h
diff options
authorLaura Garcia Liebana <>2017-02-28 18:42:50 +0100
committerPablo Neira Ayuso <>2017-03-06 18:25:05 +0100
commit3a86406729782ee2671ec7161c76529c2e4a44e4 (patch)
tree931f8f89b8ab46e248830aaf4d99570d32beb6a6 /include/expression.h
parent24091fb6d084890ce167364ac78fed8ceb94ae85 (diff)
src: hash: support of symmetric hash
This patch provides symmetric hash support according to source ip address and port, and destination ip address and port. The new attribute NFTA_HASH_TYPE has been included to support different types of hashing functions. Currently supported NFT_HASH_JENKINS through jhash and NFT_HASH_SYM through symhash. The main difference between both types are: - jhash requires an expression with sreg, symhash doesn't. - symhash supports modulus and offset, but not seed. Examples: nft add rule ip nat prerouting ct mark set jhash ip saddr mod 2 nft add rule ip nat prerouting ct mark set symhash mod 2 Signed-off-by: Laura Garcia Liebana <> Signed-off-by: Pablo Neira Ayuso <>
Diffstat (limited to 'include/expression.h')
1 files changed, 1 insertions, 0 deletions
diff --git a/include/expression.h b/include/expression.h
index 83ecf111..4f2948cc 100644
--- a/include/expression.h
+++ b/include/expression.h
@@ -309,6 +309,7 @@ struct expr {
uint32_t mod;
uint32_t seed;
uint32_t offset;
+ enum nft_hash_types type;
} hash;
struct {
/* EXPR_FIB */