aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2015-04-10 21:27:39 -0400
committerPablo Neira Ayuso <pablo@netfilter.org>2015-04-13 11:17:31 -0400
commit7d7402642eaf385aef0772eff5a35e34fc4995d7 (patch)
tree340e51ce8070314a423634a21a3dc31fe3e6b0c9 /include/net
parentd0a11fc3dc4ab4c717642c9c15c8ad1cbc00d2ec (diff)
netfilter: nf_tables: variable sized set element keys / data
This patch changes sets to support variable sized set element keys / data up to 64 bytes each by using variable sized set extensions. This allows to use concatenations with bigger data items suchs as IPv6 addresses. As a side effect, small keys/data now don't require the full 16 bytes of struct nft_data anymore but just the space they need. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/netfilter/nf_tables.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/net/netfilter/nf_tables.h b/include/net/netfilter/nf_tables.h
index 160577bf0f0a..cb42da1011ef 100644
--- a/include/net/netfilter/nf_tables.h
+++ b/include/net/netfilter/nf_tables.h
@@ -158,7 +158,10 @@ struct nft_userdata {
158 * @priv: element private data and extensions 158 * @priv: element private data and extensions
159 */ 159 */
160struct nft_set_elem { 160struct nft_set_elem {
161 struct nft_data key; 161 union {
162 u32 buf[NFT_DATA_VALUE_MAXLEN / sizeof(u32)];
163 struct nft_data val;
164 } key;
162 void *priv; 165 void *priv;
163}; 166};
164 167