History

netfilter: ipset: Expose the initval hash parameter to userspace

It makes possible to reproduce exactly the same set after a save/restore.

Jozsef Kadlecsik committed 6 years ago

Commit 3976ca11 parent ccf0a4b14 files · +34 −17Browse files

Unified · Split

14 files
  1. include/uapi/linux/netfilter/ipset/ip_set.h +1 −1
  2. net/netfilter/ipset/ip_set_hash_gen.h +9 −4
  3. net/netfilter/ipset/ip_set_hash_ip.c +2 −1
  4. net/netfilter/ipset/ip_set_hash_ipmac.c +2 −1
  5. net/netfilter/ipset/ip_set_hash_ipmark.c +2 −1
  6. net/netfilter/ipset/ip_set_hash_ipport.c +2 −1
  7. net/netfilter/ipset/ip_set_hash_ipportip.c +2 −1
  8. net/netfilter/ipset/ip_set_hash_ipportnet.c +2 −1
  9. net/netfilter/ipset/ip_set_hash_mac.c +2 −1
  10. net/netfilter/ipset/ip_set_hash_net.c +2 −1
  11. net/netfilter/ipset/ip_set_hash_netiface.c +2 −1
  12. net/netfilter/ipset/ip_set_hash_netnet.c +2 −1
  13. net/netfilter/ipset/ip_set_hash_netport.c +2 −1
  14. net/netfilter/ipset/ip_set_hash_netportnet.c +2 −1
include/uapi/linux/netfilter/ipset/ip_set.h+1−1
@@ -92,7 +92,7 @@ enum { · 91 unmodified lines
92 /* Reserve empty slots */92 /* Reserve empty slots */
93 IPSET_ATTR_CADT_MAX = 16,93 IPSET_ATTR_CADT_MAX = 16,
94 /* Create-only specific attributes */94 /* Create-only specific attributes */
95 IPSET_ATTR_GC,95 IPSET_ATTR_INITVAL, /* was unused IPSET_ATTR_GC */
96 IPSET_ATTR_HASHSIZE,96 IPSET_ATTR_HASHSIZE,
97 IPSET_ATTR_MAXELEM,97 IPSET_ATTR_MAXELEM,
98 IPSET_ATTR_NETMASK,98 IPSET_ATTR_NETMASK,
net/netfilter/ipset/ip_set_hash_gen.h+9−4
@@ -1301,9 +1301,11 @@ mtype_head(struct ip_set *set, struct sk_buff *skb) · 1300 unmodified lines
1301 if (nla_put_u32(skb, IPSET_ATTR_MARKMASK, h->markmask))1301 if (nla_put_u32(skb, IPSET_ATTR_MARKMASK, h->markmask))
1302 goto nla_put_failure;1302 goto nla_put_failure;
1303#endif1303#endif
1304 if (set->flags & IPSET_CREATE_FLAG_BUCKETSIZE &&1304 if (set->flags & IPSET_CREATE_FLAG_BUCKETSIZE) {
1305 nla_put_u8(skb, IPSET_ATTR_BUCKETSIZE, h->bucketsize))1305 if (nla_put_u8(skb, IPSET_ATTR_BUCKETSIZE, h->bucketsize) ||
1306 goto nla_put_failure;1306 nla_put_net32(skb, IPSET_ATTR_INITVAL, htonl(h->initval)))
1307 goto nla_put_failure;
1308 }
1307 if (nla_put_net32(skb, IPSET_ATTR_REFERENCES, htonl(set->ref)) ||1309 if (nla_put_net32(skb, IPSET_ATTR_REFERENCES, htonl(set->ref)) ||
1308 nla_put_net32(skb, IPSET_ATTR_MEMSIZE, htonl(memsize)) ||1310 nla_put_net32(skb, IPSET_ATTR_MEMSIZE, htonl(memsize)) ||
1309 nla_put_net32(skb, IPSET_ATTR_ELEMENTS, htonl(elements)))1311 nla_put_net32(skb, IPSET_ATTR_ELEMENTS, htonl(elements)))
@@ -1546,7 +1548,10 @@ IPSET_TOKEN(HTYPE, _create)(struct net *net, struct ip_set *set, · 236 unmodified lines
1546#ifdef IP_SET_HASH_WITH_MARKMASK1548#ifdef IP_SET_HASH_WITH_MARKMASK
1547 h->markmask = markmask;1549 h->markmask = markmask;
1548#endif1550#endif
1549 get_random_bytes(&h->initval, sizeof(h->initval));1551 if (tb[IPSET_ATTR_INITVAL])
1552 h->initval = ntohl(nla_get_be32(tb[IPSET_ATTR_INITVAL]));
1553 else
1554 get_random_bytes(&h->initval, sizeof(h->initval));
1550 h->bucketsize = AHASH_MAX_SIZE;1555 h->bucketsize = AHASH_MAX_SIZE;
1551 if (tb[IPSET_ATTR_BUCKETSIZE]) {1556 if (tb[IPSET_ATTR_BUCKETSIZE]) {
1552 h->bucketsize = nla_get_u8(tb[IPSET_ATTR_BUCKETSIZE]);1557 h->bucketsize = nla_get_u8(tb[IPSET_ATTR_BUCKETSIZE]);
net/netfilter/ipset/ip_set_hash_ip.c+2−1
@@ -24,7 +24,7 @@ · 23 unmodified lines
24/* 2 Comments support */24/* 2 Comments support */
25/* 3 Forceadd support */25/* 3 Forceadd support */
26/* 4 skbinfo support */26/* 4 skbinfo support */
27#define IPSET_TYPE_REV_MAX 5 /* bucketsize support */27#define IPSET_TYPE_REV_MAX 5 /* bucketsize, initval support */
28 28
29MODULE_LICENSE("GPL");29MODULE_LICENSE("GPL");
30MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>");30MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>");
@@ -283,6 +283,7 @@ static struct ip_set_type hash_ip_type __read_mostly = { · 252 unmodified lines
283 .create_policy = {283 .create_policy = {
284 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },284 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },
285 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },285 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },
286 [IPSET_ATTR_INITVAL] = { .type = NLA_U32 },
286 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },287 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },
287 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },288 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },
288 [IPSET_ATTR_TIMEOUT] = { .type = NLA_U32 },289 [IPSET_ATTR_TIMEOUT] = { .type = NLA_U32 },
net/netfilter/ipset/ip_set_hash_ipmac.c+2−1
@@ -23,7 +23,7 @@ · 22 unmodified lines
23#include <linux/netfilter/ipset/ip_set_hash.h>23#include <linux/netfilter/ipset/ip_set_hash.h>
24 24
25#define IPSET_TYPE_REV_MIN 025#define IPSET_TYPE_REV_MIN 0
26#define IPSET_TYPE_REV_MAX 1 /* bucketsize support */26#define IPSET_TYPE_REV_MAX 1 /* bucketsize, initval support */
27 27
28MODULE_LICENSE("GPL");28MODULE_LICENSE("GPL");
29MODULE_AUTHOR("Tomasz Chilinski <tomasz.chilinski@chilan.com>");29MODULE_AUTHOR("Tomasz Chilinski <tomasz.chilinski@chilan.com>");
@@ -273,6 +273,7 @@ static struct ip_set_type hash_ipmac_type __read_mostly = { · 243 unmodified lines
273 .create_policy = {273 .create_policy = {
274 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },274 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },
275 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },275 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },
276 [IPSET_ATTR_INITVAL] = { .type = NLA_U32 },
276 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },277 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },
277 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },278 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },
278 [IPSET_ATTR_TIMEOUT] = { .type = NLA_U32 },279 [IPSET_ATTR_TIMEOUT] = { .type = NLA_U32 },
net/netfilter/ipset/ip_set_hash_ipmark.c+2−1
@@ -22,7 +22,7 @@ · 21 unmodified lines
22#define IPSET_TYPE_REV_MIN 022#define IPSET_TYPE_REV_MIN 0
23/* 1 Forceadd support */23/* 1 Forceadd support */
24/* 2 skbinfo support */24/* 2 skbinfo support */
25#define IPSET_TYPE_REV_MAX 3 /* bucketsize support */25#define IPSET_TYPE_REV_MAX 3 /* bucketsize, initval support */
26 26
27MODULE_LICENSE("GPL");27MODULE_LICENSE("GPL");
28MODULE_AUTHOR("Vytas Dauksa <vytas.dauksa@smoothwall.net>");28MODULE_AUTHOR("Vytas Dauksa <vytas.dauksa@smoothwall.net>");
@@ -281,6 +281,7 @@ static struct ip_set_type hash_ipmark_type __read_mostly = { · 252 unmodified lines
281 [IPSET_ATTR_MARKMASK] = { .type = NLA_U32 },281 [IPSET_ATTR_MARKMASK] = { .type = NLA_U32 },
282 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },282 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },
283 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },283 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },
284 [IPSET_ATTR_INITVAL] = { .type = NLA_U32 },
284 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },285 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },
285 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },286 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },
286 [IPSET_ATTR_TIMEOUT] = { .type = NLA_U32 },287 [IPSET_ATTR_TIMEOUT] = { .type = NLA_U32 },
net/netfilter/ipset/ip_set_hash_ipport.c+2−1
@@ -26,7 +26,7 @@ · 25 unmodified lines
26/* 3 Comments support added */26/* 3 Comments support added */
27/* 4 Forceadd support added */27/* 4 Forceadd support added */
28/* 5 skbinfo support added */28/* 5 skbinfo support added */
29#define IPSET_TYPE_REV_MAX 6 /* bucketsize support added */29#define IPSET_TYPE_REV_MAX 6 /* bucketsize, initval support added */
30 30
31MODULE_LICENSE("GPL");31MODULE_LICENSE("GPL");
32MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>");32MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>");
@@ -347,6 +347,7 @@ static struct ip_set_type hash_ipport_type __read_mostly = { · 314 unmodified lines
347 .create_policy = {347 .create_policy = {
348 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },348 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },
349 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },349 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },
350 [IPSET_ATTR_INITVAL] = { .type = NLA_U32 },
350 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },351 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },
351 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },352 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },
352 [IPSET_ATTR_PROTO] = { .type = NLA_U8 },353 [IPSET_ATTR_PROTO] = { .type = NLA_U8 },
net/netfilter/ipset/ip_set_hash_ipportip.c+2−1
@@ -26,7 +26,7 @@ · 25 unmodified lines
26/* 3 Comments support added */26/* 3 Comments support added */
27/* 4 Forceadd support added */27/* 4 Forceadd support added */
28/* 5 skbinfo support added */28/* 5 skbinfo support added */
29#define IPSET_TYPE_REV_MAX 6 /* bucketsize support added */29#define IPSET_TYPE_REV_MAX 6 /* bucketsize, initval support added */
30 30
31MODULE_LICENSE("GPL");31MODULE_LICENSE("GPL");
32MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>");32MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>");
@@ -362,6 +362,7 @@ static struct ip_set_type hash_ipportip_type __read_mostly = { · 329 unmodified lines
362 .create_policy = {362 .create_policy = {
363 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },363 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },
364 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },364 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },
365 [IPSET_ATTR_INITVAL] = { .type = NLA_U32 },
365 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },366 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },
366 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },367 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },
367 [IPSET_ATTR_TIMEOUT] = { .type = NLA_U32 },368 [IPSET_ATTR_TIMEOUT] = { .type = NLA_U32 },
net/netfilter/ipset/ip_set_hash_ipportnet.c+2−1
@@ -28,7 +28,7 @@ · 27 unmodified lines
28/* 5 Comments support added */28/* 5 Comments support added */
29/* 6 Forceadd support added */29/* 6 Forceadd support added */
30/* 7 skbinfo support added */30/* 7 skbinfo support added */
31#define IPSET_TYPE_REV_MAX 8 /* bucketsize support added */31#define IPSET_TYPE_REV_MAX 8 /* bucketsize, initval support added */
32 32
33MODULE_LICENSE("GPL");33MODULE_LICENSE("GPL");
34MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>");34MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>");
@@ -519,6 +519,7 @@ static struct ip_set_type hash_ipportnet_type __read_mostly = { · 484 unmodified lines
519 .create_policy = {519 .create_policy = {
520 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },520 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },
521 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },521 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },
522 [IPSET_ATTR_INITVAL] = { .type = NLA_U32 },
522 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },523 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },
523 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },524 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },
524 [IPSET_ATTR_TIMEOUT] = { .type = NLA_U32 },525 [IPSET_ATTR_TIMEOUT] = { .type = NLA_U32 },
net/netfilter/ipset/ip_set_hash_mac.c+2−1
@@ -16,7 +16,7 @@ · 15 unmodified lines
16#include <linux/netfilter/ipset/ip_set_hash.h>16#include <linux/netfilter/ipset/ip_set_hash.h>
17 17
18#define IPSET_TYPE_REV_MIN 018#define IPSET_TYPE_REV_MIN 0
19#define IPSET_TYPE_REV_MAX 1 /* bucketsize support */19#define IPSET_TYPE_REV_MAX 1 /* bucketsize, initval support */
20 20
21MODULE_LICENSE("GPL");21MODULE_LICENSE("GPL");
22MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>");22MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>");
@@ -130,6 +130,7 @@ static struct ip_set_type hash_mac_type __read_mostly = { · 107 unmodified lines
130 .create_policy = {130 .create_policy = {
131 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },131 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },
132 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },132 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },
133 [IPSET_ATTR_INITVAL] = { .type = NLA_U32 },
133 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },134 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },
134 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },135 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },
135 [IPSET_ATTR_TIMEOUT] = { .type = NLA_U32 },136 [IPSET_ATTR_TIMEOUT] = { .type = NLA_U32 },
net/netfilter/ipset/ip_set_hash_net.c+2−1
@@ -25,7 +25,7 @@ · 24 unmodified lines
25/* 4 Comments support added */25/* 4 Comments support added */
26/* 5 Forceadd support added */26/* 5 Forceadd support added */
27/* 6 skbinfo support added */27/* 6 skbinfo support added */
28#define IPSET_TYPE_REV_MAX 7 /* bucketsize support added */28#define IPSET_TYPE_REV_MAX 7 /* bucketsize, initval support added */
29 29
30MODULE_LICENSE("GPL");30MODULE_LICENSE("GPL");
31MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>");31MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>");
@@ -360,6 +360,7 @@ static struct ip_set_type hash_net_type __read_mostly = { · 328 unmodified lines
360 .create_policy = {360 .create_policy = {
361 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },361 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },
362 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },362 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },
363 [IPSET_ATTR_INITVAL] = { .type = NLA_U32 },
363 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },364 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },
364 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },365 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },
365 [IPSET_ATTR_TIMEOUT] = { .type = NLA_U32 },366 [IPSET_ATTR_TIMEOUT] = { .type = NLA_U32 },
net/netfilter/ipset/ip_set_hash_netiface.c+2−1
@@ -27,7 +27,7 @@ · 26 unmodified lines
27/* 5 Forceadd support added */27/* 5 Forceadd support added */
28/* 6 skbinfo support added */28/* 6 skbinfo support added */
29/* 7 interface wildcard support added */29/* 7 interface wildcard support added */
30#define IPSET_TYPE_REV_MAX 8 /* bucketsize support added */30#define IPSET_TYPE_REV_MAX 8 /* bucketsize, initval support added */
31 31
32MODULE_LICENSE("GPL");32MODULE_LICENSE("GPL");
33MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>");33MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>");
@@ -476,6 +476,7 @@ static struct ip_set_type hash_netiface_type __read_mostly = { · 442 unmodified lines
476 .create_policy = {476 .create_policy = {
477 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },477 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },
478 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },478 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },
479 [IPSET_ATTR_INITVAL] = { .type = NLA_U32 },
479 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },480 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },
480 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },481 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },
481 [IPSET_ATTR_PROTO] = { .type = NLA_U8 },482 [IPSET_ATTR_PROTO] = { .type = NLA_U8 },
net/netfilter/ipset/ip_set_hash_netnet.c+2−1
@@ -23,7 +23,7 @@ · 22 unmodified lines
23#define IPSET_TYPE_REV_MIN 023#define IPSET_TYPE_REV_MIN 0
24/* 1 Forceadd support added */24/* 1 Forceadd support added */
25/* 2 skbinfo support added */25/* 2 skbinfo support added */
26#define IPSET_TYPE_REV_MAX 3 /* bucketsize support added */26#define IPSET_TYPE_REV_MAX 3 /* bucketsize, initval support added */
27 27
28MODULE_LICENSE("GPL");28MODULE_LICENSE("GPL");
29MODULE_AUTHOR("Oliver Smith <oliver@8.c.9.b.0.7.4.0.1.0.0.2.ip6.arpa>");29MODULE_AUTHOR("Oliver Smith <oliver@8.c.9.b.0.7.4.0.1.0.0.2.ip6.arpa>");
@@ -465,6 +465,7 @@ static struct ip_set_type hash_netnet_type __read_mostly = { · 435 unmodified lines
465 .create_policy = {465 .create_policy = {
466 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },466 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },
467 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },467 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },
468 [IPSET_ATTR_INITVAL] = { .type = NLA_U32 },
468 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },469 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },
469 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },470 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },
470 [IPSET_ATTR_TIMEOUT] = { .type = NLA_U32 },471 [IPSET_ATTR_TIMEOUT] = { .type = NLA_U32 },
net/netfilter/ipset/ip_set_hash_netport.c+2−1
@@ -27,7 +27,7 @@ · 26 unmodified lines
27/* 5 Comments support added */27/* 5 Comments support added */
28/* 6 Forceadd support added */28/* 6 Forceadd support added */
29/* 7 skbinfo support added */29/* 7 skbinfo support added */
30#define IPSET_TYPE_REV_MAX 8 /* bucketsize support added */30#define IPSET_TYPE_REV_MAX 8 /* bucketsize, initval support added */
31 31
32MODULE_LICENSE("GPL");32MODULE_LICENSE("GPL");
33MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>");33MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>");
@@ -466,6 +466,7 @@ static struct ip_set_type hash_netport_type __read_mostly = { · 432 unmodified lines
466 .create_policy = {466 .create_policy = {
467 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },467 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },
468 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },468 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },
469 [IPSET_ATTR_INITVAL] = { .type = NLA_U32 },
469 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },470 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },
470 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },471 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },
471 [IPSET_ATTR_PROTO] = { .type = NLA_U8 },472 [IPSET_ATTR_PROTO] = { .type = NLA_U8 },
net/netfilter/ipset/ip_set_hash_netportnet.c+2−1
@@ -24,7 +24,7 @@ · 23 unmodified lines
24/* 0 Comments support added */24/* 0 Comments support added */
25/* 1 Forceadd support added */25/* 1 Forceadd support added */
26/* 2 skbinfo support added */26/* 2 skbinfo support added */
27#define IPSET_TYPE_REV_MAX 3 /* bucketsize support added */27#define IPSET_TYPE_REV_MAX 3 /* bucketsize, initval support added */
28 28
29MODULE_LICENSE("GPL");29MODULE_LICENSE("GPL");
30MODULE_AUTHOR("Oliver Smith <oliver@8.c.9.b.0.7.4.0.1.0.0.2.ip6.arpa>");30MODULE_AUTHOR("Oliver Smith <oliver@8.c.9.b.0.7.4.0.1.0.0.2.ip6.arpa>");
@@ -564,6 +564,7 @@ static struct ip_set_type hash_netportnet_type __read_mostly = { · 533 unmodified lines
564 .create_policy = {564 .create_policy = {
565 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },565 [IPSET_ATTR_HASHSIZE] = { .type = NLA_U32 },
566 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },566 [IPSET_ATTR_MAXELEM] = { .type = NLA_U32 },
567 [IPSET_ATTR_INITVAL] = { .type = NLA_U32 },
567 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },568 [IPSET_ATTR_BUCKETSIZE] = { .type = NLA_U8 },
568 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },569 [IPSET_ATTR_RESIZE] = { .type = NLA_U8 },
569 [IPSET_ATTR_TIMEOUT] = { .type = NLA_U32 },570 [IPSET_ATTR_TIMEOUT] = { .type = NLA_U32 },