From 211742c61945a60d12da19988fe32e530c485134 Mon Sep 17 00:00:00 2001 From: Florian Westphal Date: Tue, 19 Jul 2016 00:06:08 +0200 Subject: meta: add random support "meta random" fills a register with a 32bit pseudo-random number. For instance one can now use meta random <= 2147483647 ... to match every 2nd packet on average. Signed-off-by: Florian Westphal Acked-by: Pablo Neira Ayuso --- src/meta.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/meta.c') diff --git a/src/meta.c b/src/meta.c index 75431a2f..9dd91de3 100644 --- a/src/meta.c +++ b/src/meta.c @@ -418,6 +418,9 @@ static const struct meta_template meta_templates[] = { [NFT_META_CGROUP] = META_TEMPLATE("cgroup", &integer_type, 4 * BITS_PER_BYTE, BYTEORDER_HOST_ENDIAN), + [NFT_META_PRANDOM] = META_TEMPLATE("random", &integer_type, + 4 * BITS_PER_BYTE, + BYTEORDER_BIG_ENDIAN), /* avoid conversion; doesn't have endianess */ }; static bool meta_key_is_qualified(enum nft_meta_keys key) @@ -428,6 +431,7 @@ static bool meta_key_is_qualified(enum nft_meta_keys key) case NFT_META_L4PROTO: case NFT_META_PROTOCOL: case NFT_META_PRIORITY: + case NFT_META_PRANDOM: return true; default: return false; -- cgit v1.2.3