It makes possible to reproduce exactly the same set after a save/restore.
Unified · Split
| @@ -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, |
| @@ -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 | #endif | 1303 | #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_MARKMASK | 1548 | #ifdef IP_SET_HASH_WITH_MARKMASK |
| 1547 | h->markmask = markmask; | 1549 | h->markmask = markmask; |
| 1548 | #endif | 1550 | #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]); |
| @@ -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 | ||
| 29 | MODULE_LICENSE("GPL"); | 29 | MODULE_LICENSE("GPL"); |
| 30 | MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>"); | 30 | MODULE_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 }, |
| @@ -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 0 | 25 | #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 | ||
| 28 | MODULE_LICENSE("GPL"); | 28 | MODULE_LICENSE("GPL"); |
| 29 | MODULE_AUTHOR("Tomasz Chilinski <tomasz.chilinski@chilan.com>"); | 29 | MODULE_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 }, |
| @@ -22,7 +22,7 @@ · 21 unmodified lines | |||
| 22 | #define IPSET_TYPE_REV_MIN 0 | 22 | #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 | ||
| 27 | MODULE_LICENSE("GPL"); | 27 | MODULE_LICENSE("GPL"); |
| 28 | MODULE_AUTHOR("Vytas Dauksa <vytas.dauksa@smoothwall.net>"); | 28 | MODULE_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 }, |
| @@ -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 | ||
| 31 | MODULE_LICENSE("GPL"); | 31 | MODULE_LICENSE("GPL"); |
| 32 | MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>"); | 32 | MODULE_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 }, |
| @@ -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 | ||
| 31 | MODULE_LICENSE("GPL"); | 31 | MODULE_LICENSE("GPL"); |
| 32 | MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>"); | 32 | MODULE_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 }, |
| @@ -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 | ||
| 33 | MODULE_LICENSE("GPL"); | 33 | MODULE_LICENSE("GPL"); |
| 34 | MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>"); | 34 | MODULE_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 }, |
| @@ -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 0 | 18 | #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 | ||
| 21 | MODULE_LICENSE("GPL"); | 21 | MODULE_LICENSE("GPL"); |
| 22 | MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>"); | 22 | MODULE_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 }, |
| @@ -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 | ||
| 30 | MODULE_LICENSE("GPL"); | 30 | MODULE_LICENSE("GPL"); |
| 31 | MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>"); | 31 | MODULE_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 }, |
| @@ -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 | ||
| 32 | MODULE_LICENSE("GPL"); | 32 | MODULE_LICENSE("GPL"); |
| 33 | MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>"); | 33 | MODULE_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 }, |
| @@ -23,7 +23,7 @@ · 22 unmodified lines | |||
| 23 | #define IPSET_TYPE_REV_MIN 0 | 23 | #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 | ||
| 28 | MODULE_LICENSE("GPL"); | 28 | MODULE_LICENSE("GPL"); |
| 29 | MODULE_AUTHOR("Oliver Smith <oliver@8.c.9.b.0.7.4.0.1.0.0.2.ip6.arpa>"); | 29 | MODULE_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 }, |
| @@ -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 | ||
| 32 | MODULE_LICENSE("GPL"); | 32 | MODULE_LICENSE("GPL"); |
| 33 | MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@netfilter.org>"); | 33 | MODULE_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 }, |
| @@ -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 | ||
| 29 | MODULE_LICENSE("GPL"); | 29 | MODULE_LICENSE("GPL"); |
| 30 | MODULE_AUTHOR("Oliver Smith <oliver@8.c.9.b.0.7.4.0.1.0.0.2.ip6.arpa>"); | 30 | MODULE_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 }, |