Hi, On Fri, 29 May 2015, Eric B Munson wrote: > It would be useful for userspace to query the size of an ipset hash, > however, this data is not exposed to userspace outside of counting the > number of member entries. This patch uses the attribute > IPSET_ATTR_ELEMENTS to indicate the size in the the header that is > exported to userspace. This field is then printed by the userspace > tool for hashes. > > Because it is only meaningful for hashes to report their size, the > output is conditional on the set type. To do this checking the > MATCH_TYPENAME macro was moved to utils.h. The patch is applied with a slight modification: "Number of entries" is printed instead of "Number of Entries". Thank you! Best regards, Jozsef > The bulk of this patch changes the expected test suite to account for > the change in output. > > Signed-off-by: Eric B Munson <emunson@xxxxxxxxxx> > Cc: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> > Cc: Josh Hunt <johunt@xxxxxxxxxx> > Cc: netfilter-devel@xxxxxxxxxxxxxxx > --- > This is the same as the V2 I posted in Decemeber with a rebase to the > latest upstream > > include/libipset/utils.h | 3 +++ > kernel/net/netfilter/ipset/ip_set_hash_gen.h | 3 ++- > lib/errcode.c | 2 -- > lib/session.c | 14 ++++++++++++-- > tests/check_cidrs.sh | 4 ++-- > tests/comment.t.list2 | 3 ++- > tests/comment.t.list21 | 3 ++- > tests/comment.t.list22 | 3 ++- > tests/comment.t.list3 | 9 ++++++--- > tests/hash:ip,mark.t.list0 | 3 ++- > tests/hash:ip,mark.t.list1 | 3 ++- > tests/hash:ip,port,ip.t.list0 | 3 ++- > tests/hash:ip,port,ip.t.list1 | 3 ++- > tests/hash:ip,port,net.t.list0 | 3 ++- > tests/hash:ip,port.t.list0 | 3 ++- > tests/hash:ip,port.t.list1 | 3 ++- > tests/hash:ip,port.t.list2 | 3 ++- > tests/hash:ip.t.list0 | 3 ++- > tests/hash:ip.t.list1 | 3 ++- > tests/hash:ip.t.list2 | 3 ++- > tests/hash:ip.t.list3 | 3 ++- > tests/hash:ip6,mark.t.list0 | 3 ++- > tests/hash:ip6,mark.t.list1 | 3 ++- > tests/hash:ip6,port,ip6.t.list0 | 4 +++- > tests/hash:ip6,port,ip6.t.list1 | 3 ++- > tests/hash:ip6,port,net6.t.list0 | 3 ++- > tests/hash:ip6,port.t.list0 | 3 ++- > tests/hash:ip6,port.t.list1 | 3 ++- > tests/hash:ip6.t.list0 | 3 ++- > tests/hash:ip6.t.list1 | 3 ++- > tests/hash:ip6.t.list2 | 3 ++- > tests/hash:ip6.t.list3 | 3 ++- > tests/hash:mac.t.list0 | 3 ++- > tests/hash:mac.t.list1 | 3 ++- > tests/hash:mac.t.list2 | 3 ++- > tests/hash:mac.t.list3 | 3 ++- > tests/hash:net,iface.t | 2 +- > tests/hash:net,iface.t.list0 | 3 ++- > tests/hash:net,iface.t.list1 | 3 ++- > tests/hash:net,iface.t.list2 | 3 ++- > tests/hash:net,net.t.list0 | 3 ++- > tests/hash:net,net.t.list1 | 3 ++- > tests/hash:net,net.t.list2 | 3 ++- > tests/hash:net,port,net.t.list0 | 3 ++- > tests/hash:net,port.t.list0 | 3 ++- > tests/hash:net,port.t.list1 | 3 ++- > tests/hash:net.t.list0 | 3 ++- > tests/hash:net.t.list1 | 3 ++- > tests/hash:net.t.list2 | 3 ++- > tests/hash:net6,net6.t.list0 | 3 ++- > tests/hash:net6,net6.t.list1 | 3 ++- > tests/hash:net6,port,net6.t.list0 | 3 ++- > tests/hash:net6,port.t.list0 | 3 ++- > tests/hash:net6,port.t.list1 | 3 ++- > tests/hash:net6.t.list0 | 3 ++- > tests/hash:net6.t.list1 | 3 ++- > tests/iphash.t.list0 | 3 ++- > tests/iphash.t.list1 | 3 ++- > tests/ipmarkhash.t.list0 | 3 ++- > tests/ipmarkhash.t.list1 | 3 ++- > tests/ipporthash.t.list0 | 3 ++- > tests/ipporthash.t.list1 | 3 ++- > tests/ipportiphash.t.list0 | 3 ++- > tests/ipportiphash.t.list1 | 3 ++- > tests/iptables.sh | 2 +- > tests/nethash.t.list0 | 3 ++- > tests/resizet.sh | 2 +- > tests/restore.t.list0 | 3 ++- > tests/restore.t.list1 | 3 ++- > tests/setlist.t.list4 | 12 ++++++++---- > tests/sort.sh | 4 ++-- > 71 files changed, 159 insertions(+), 79 deletions(-) > > diff --git a/include/libipset/utils.h b/include/libipset/utils.h > index 3cd29da..ceedd45 100644 > --- a/include/libipset/utils.h > +++ b/include/libipset/utils.h > @@ -19,6 +19,9 @@ > #define STRCASEQ(a, b) (strcasecmp(a, b) == 0) > #define STRNCASEQ(a, b, n) (strncasecmp(a, b, n) == 0) > > +/* Match set type names */ > +#define MATCH_TYPENAME(a, b) STRNEQ(a, b, strlen(b)) > + > /* Stringify tokens */ > #define _STR(c) #c > #define STR(c) _STR(c) > diff --git a/kernel/net/netfilter/ipset/ip_set_hash_gen.h b/kernel/net/netfilter/ipset/ip_set_hash_gen.h > index 878d35f..bfa1fc7 100644 > --- a/kernel/net/netfilter/ipset/ip_set_hash_gen.h > +++ b/kernel/net/netfilter/ipset/ip_set_hash_gen.h > @@ -1068,7 +1068,8 @@ mtype_head(struct ip_set *set, struct sk_buff *skb) > goto nla_put_failure; > #endif > if (nla_put_net32(skb, IPSET_ATTR_REFERENCES, htonl(set->ref - 1)) || > - nla_put_net32(skb, IPSET_ATTR_MEMSIZE, htonl(memsize))) > + nla_put_net32(skb, IPSET_ATTR_MEMSIZE, htonl(memsize)) || > + nla_put_net32(skb, IPSET_ATTR_ELEMENTS, htonl(h->elements))) > goto nla_put_failure; > if (unlikely(ip_set_put_flags(skb, set))) > goto nla_put_failure; > diff --git a/lib/errcode.c b/lib/errcode.c > index 8eb275b..3881121 100644 > --- a/lib/errcode.c > +++ b/lib/errcode.c > @@ -148,8 +148,6 @@ static const struct ipset_errcode_table list_errcode_table[] = { > { }, > }; > > -#define MATCH_TYPENAME(a, b) STRNEQ(a, b, strlen(b)) > - > /** > * ipset_errcode - interpret a kernel error code > * @session: session structure > diff --git a/lib/session.c b/lib/session.c > index 013d9d8..be45a87 100644 > --- a/lib/session.c > +++ b/lib/session.c > @@ -931,6 +931,10 @@ list_create(struct ipset_session *session, struct nlattr *nla[]) > safe_dprintf(session, ipset_print_number, IPSET_OPT_MEMSIZE); > safe_snprintf(session, "\nReferences: "); > safe_dprintf(session, ipset_print_number, IPSET_OPT_REFERENCES); > + if (MATCH_TYPENAME(type->name , "hash:")) { > + safe_snprintf(session, "\nNumber of Entries: "); > + safe_dprintf(session, ipset_print_number, IPSET_OPT_ELEMENTS); > + } > safe_snprintf(session, > session->envopts & IPSET_ENV_LIST_HEADER ? > "\n" : "\nMembers:\n"); > @@ -940,10 +944,16 @@ list_create(struct ipset_session *session, struct nlattr *nla[]) > safe_dprintf(session, ipset_print_number, IPSET_OPT_MEMSIZE); > safe_snprintf(session, "</memsize>\n<references>"); > safe_dprintf(session, ipset_print_number, IPSET_OPT_REFERENCES); > + safe_snprintf(session, "</references>\n"); > + if (MATCH_TYPENAME(type->name , "hash:")) { > + safe_snprintf(session, "<numentries>"); > + safe_dprintf(session, ipset_print_number, IPSET_OPT_ELEMENTS); > + safe_snprintf(session, "</numentries>\n"); > + } > safe_snprintf(session, > session->envopts & IPSET_ENV_LIST_HEADER ? > - "</references>\n</header>\n" : > - "</references>\n</header>\n<members>\n"); > + "</header>\n" : > + "</header>\n<members>\n"); > break; > default: > break; > diff --git a/tests/check_cidrs.sh b/tests/check_cidrs.sh > index 38f735f..2206b18 100755 > --- a/tests/check_cidrs.sh > +++ b/tests/check_cidrs.sh > @@ -10,14 +10,14 @@ $ipset n test hash:net > for x in `seq 1 32`; do > $ipset a test 10.0.0.0/$x > n=`$ipset l test | wc -l` > - n=$((n - 7)) > + n=$((n - 8)) > test $n -eq $x || exit 1 > done > for x in `seq 32 -1 1`; do > $ipset d test 10.0.0.0/$x > n=`$ipset l test | wc -l` > # We deleted one element > - n=$((n - 7 + 1)) > + n=$((n - 8 + 1)) > test $n -eq $x || exit 1 > done > $ipset x test > diff --git a/tests/comment.t.list2 b/tests/comment.t.list2 > index 76d0cea..d751822 100644 > --- a/tests/comment.t.list2 > +++ b/tests/comment.t.list2 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:net,net > Header: family inet hashsize 128 maxelem 65536 comment > -Size in memory: 3392 > +Size in memory: 1288 > References: 0 > +Number of Entries: 4 > Members: > 1.1.1.1,1.1.1.2 comment "text 1.1.1.1/32,1.1.1.2/32" > 192.168.68.64/27,192.168.129.64/27 comment "text 192.168.68.69/27,192.168.129.69/27" > diff --git a/tests/comment.t.list21 b/tests/comment.t.list21 > index a40889e..739639f 100644 > --- a/tests/comment.t.list21 > +++ b/tests/comment.t.list21 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip > Header: family inet hashsize 1024 maxelem 65536 timeout x comment > -Size in memory: 101400 > +Size in memory: 95168 > References: 0 > +Number of Entries: 512 > Members: > 2.0.0.0 timeout x comment "text message 0" > 2.0.0.1 timeout x comment "text message 1" > diff --git a/tests/comment.t.list22 b/tests/comment.t.list22 > index 1ae1bf1..458ab57 100644 > --- a/tests/comment.t.list22 > +++ b/tests/comment.t.list22 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip > Header: family inet hashsize 1024 maxelem 65536 timeout x comment > -Size in memory: 100152 > +Size in memory: 98256 > References: 0 > +Number of Entries: 512 > Members: > 2.0.1.0 timeout x comment "text message 0" > 2.0.1.1 timeout x comment "text message 1" > diff --git a/tests/comment.t.list3 b/tests/comment.t.list3 > index d460bf5..1bd0ba7 100644 > --- a/tests/comment.t.list3 > +++ b/tests/comment.t.list3 > @@ -1,22 +1,25 @@ > Name: a > Type: hash:ip > Header: family inet hashsize 1024 maxelem 65536 > -Size in memory: 16536 > +Size in memory: 128 > References: 1 > +Number of Entries: 0 > Members: > > Name: b > Type: hash:ip > Header: family inet hashsize 1024 maxelem 65536 > -Size in memory: 16536 > +Size in memory: 128 > References: 1 > +Number of Entries: 0 > Members: > > Name: c > Type: hash:ip > Header: family inet hashsize 1024 maxelem 65536 > -Size in memory: 16536 > +Size in memory: 128 > References: 1 > +Number of Entries: 0 > Members: > > Name: test > diff --git a/tests/hash:ip,mark.t.list0 b/tests/hash:ip,mark.t.list0 > index 715654c..fbdb56b 100644 > --- a/tests/hash:ip,mark.t.list0 > +++ b/tests/hash:ip,mark.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip,mark > Header: family inet markmask 0xffffffff hashsize 1024 maxelem 65536 timeout x > -Size in memory: 8836 > +Size in memory: 640 > References: 0 > +Number of Entries: 4 > Members: > 2.0.0.0,0x00000005 timeout x > 2.0.0.1,0x00000005 timeout x > diff --git a/tests/hash:ip,mark.t.list1 b/tests/hash:ip,mark.t.list1 > index 093c94f..784bc7a 100644 > --- a/tests/hash:ip,mark.t.list1 > +++ b/tests/hash:ip,mark.t.list1 > @@ -1,6 +1,7 @@ > Name: test > Type: hash:ip,mark > Header: family inet markmask 0xffffffff hashsize 1024 maxelem 65536 timeout 5 > -Size in memory: 8836 > +Size in memory: 640 > References: 0 > +Number of Entries: 4 > Members: > diff --git a/tests/hash:ip,port,ip.t.list0 b/tests/hash:ip,port,ip.t.list0 > index 7218937..df811ce 100644 > --- a/tests/hash:ip,port,ip.t.list0 > +++ b/tests/hash:ip,port,ip.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip,port,ip > Header: family inet hashsize 1024 maxelem 65536 timeout x > -Size in memory: 8720 > +Size in memory: 840 > References: 0 > +Number of Entries: 4 > Members: > 2.0.0.0,tcp:5,1.1.1.1 timeout x > 2.0.0.1,tcp:5,1.1.1.1 timeout x > diff --git a/tests/hash:ip,port,ip.t.list1 b/tests/hash:ip,port,ip.t.list1 > index 78ad1fd..d00c9d7 100644 > --- a/tests/hash:ip,port,ip.t.list1 > +++ b/tests/hash:ip,port,ip.t.list1 > @@ -1,6 +1,7 @@ > Name: test > Type: hash:ip,port,ip > Header: family inet hashsize 1024 maxelem 65536 timeout 5 > -Size in memory: 8304 > +Size in memory: 840 > References: 0 > +Number of Entries: 4 > Members: > diff --git a/tests/hash:ip,port,net.t.list0 b/tests/hash:ip,port,net.t.list0 > index c214ead..ea0e963 100644 > --- a/tests/hash:ip,port,net.t.list0 > +++ b/tests/hash:ip,port,net.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip,port,net > Header: family inet hashsize 1024 maxelem 65536 timeout x > -Size in memory: 8720 > +Size in memory: 1096 > References: 0 > +Number of Entries: 4 > Members: > 2.0.0.0,tcp:5,192.168.0.0/25 timeout x > 2.0.0.1,tcp:5,192.168.0.0/24 timeout x > diff --git a/tests/hash:ip,port.t.list0 b/tests/hash:ip,port.t.list0 > index fb9c57b..24b8b99 100644 > --- a/tests/hash:ip,port.t.list0 > +++ b/tests/hash:ip,port.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip,port > Header: family inet hashsize 1024 maxelem 65536 timeout x > -Size in memory: 8592 > +Size in memory: 640 > References: 0 > +Number of Entries: 4 > Members: > 2.0.0.0,tcp:5 timeout x > 2.0.0.1,tcp:5 timeout x > diff --git a/tests/hash:ip,port.t.list1 b/tests/hash:ip,port.t.list1 > index eab115c..7a82514 100644 > --- a/tests/hash:ip,port.t.list1 > +++ b/tests/hash:ip,port.t.list1 > @@ -1,6 +1,7 @@ > Name: test > Type: hash:ip,port > Header: family inet hashsize 1024 maxelem 65536 timeout 5 > -Size in memory: 8304 > +Size in memory: 640 > References: 0 > +Number of Entries: 4 > Members: > diff --git a/tests/hash:ip,port.t.list2 b/tests/hash:ip,port.t.list2 > index 7e7f3ad..2e7cf42 100644 > --- a/tests/hash:ip,port.t.list2 > +++ b/tests/hash:ip,port.t.list2 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip,port > Header: family inet hashsize 1024 maxelem 65536 > -Size in memory: 8432 > +Size in memory: 320 > References: 0 > +Number of Entries: 3 > Members: > 2.0.0.1,tcp:80 > 2.0.0.1,udp:80 > diff --git a/tests/hash:ip.t.list0 b/tests/hash:ip.t.list0 > index 3d13afc..4f6f241 100644 > --- a/tests/hash:ip.t.list0 > +++ b/tests/hash:ip.t.list0 > @@ -1,7 +1,8 @@ > Name: test > Type: hash:ip > Header: family inet hashsize 128 maxelem 65536 timeout 5 > -Size in memory: 1208 > +Size in memory: 352 > References: 0 > +Number of Entries: 2 > Members: > 192.168.68.69 timeout 0 > diff --git a/tests/hash:ip.t.list1 b/tests/hash:ip.t.list1 > index ffd4f72..45b5e04 100644 > --- a/tests/hash:ip.t.list1 > +++ b/tests/hash:ip.t.list1 > @@ -1,7 +1,8 @@ > Name: test > Type: hash:ip > Header: family inet hashsize 128 maxelem 65536 netmask 24 timeout 5 > -Size in memory: 1352 > +Size in memory: 464 > References: 0 > +Number of Entries: 3 > Members: > 200.100.10.0 timeout 0 > diff --git a/tests/hash:ip.t.list2 b/tests/hash:ip.t.list2 > index 274cf47..dc74248 100644 > --- a/tests/hash:ip.t.list2 > +++ b/tests/hash:ip.t.list2 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip > Header: family inet hashsize 128 maxelem 65536 timeout x > -Size in memory: 1280 > +Size in memory: 352 > References: 0 > +Number of Entries: 2 > Members: > 192.168.68.69 timeout x > 2.0.0.1 timeout x > diff --git a/tests/hash:ip.t.list3 b/tests/hash:ip.t.list3 > index 5077710..95eb07b 100644 > --- a/tests/hash:ip.t.list3 > +++ b/tests/hash:ip.t.list3 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip > Header: family inet hashsize 128 maxelem 65536 netmask 24 timeout x > -Size in memory: 1352 > +Size in memory: 464 > References: 0 > +Number of Entries: 3 > Members: > 192.168.68.0 timeout x > 2.0.0.0 timeout x > diff --git a/tests/hash:ip6,mark.t.list0 b/tests/hash:ip6,mark.t.list0 > index f905b2a..625497d 100644 > --- a/tests/hash:ip6,mark.t.list0 > +++ b/tests/hash:ip6,mark.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip,mark > Header: family inet6 markmask 0xffffffff hashsize 1024 maxelem 65536 timeout x > -Size in memory: 9316 > +Size in memory: 1088 > References: 0 > +Number of Entries: 4 > Members: > 2:1::,0x00000080 timeout x > 2:1::1,0x00000080 timeout x > diff --git a/tests/hash:ip6,mark.t.list1 b/tests/hash:ip6,mark.t.list1 > index d40faed..c562b8d 100644 > --- a/tests/hash:ip6,mark.t.list1 > +++ b/tests/hash:ip6,mark.t.list1 > @@ -1,6 +1,7 @@ > Name: test > Type: hash:ip,mark > Header: family inet6 markmask 0xffffffff hashsize 1024 maxelem 65536 timeout 5 > -Size in memory: 9316 > +Size in memory: 1088 > References: 0 > +Number of Entries: 4 > Members: > diff --git a/tests/hash:ip6,port,ip6.t.list0 b/tests/hash:ip6,port,ip6.t.list0 > index 41ac1c0..c60599b 100644 > --- a/tests/hash:ip6,port,ip6.t.list0 > +++ b/tests/hash:ip6,port,ip6.t.list0 > @@ -1,8 +1,10 @@ > Name: test > Type: hash:ip,port,ip > Header: family inet6 hashsize 1024 maxelem 65536 timeout x > -Size in memory: 9104 > +Size in memory: 1608 > References: 0 > +Size in memory: 9104 > +Number of Entries: 4 > Members: > 2:1::,tcp:128,2:2:2::2 timeout x > 2:1::1,tcp:128,2:2:2::2 timeout x > diff --git a/tests/hash:ip6,port,ip6.t.list1 b/tests/hash:ip6,port,ip6.t.list1 > index 7a3a4ad..01d83ae 100644 > --- a/tests/hash:ip6,port,ip6.t.list1 > +++ b/tests/hash:ip6,port,ip6.t.list1 > @@ -1,6 +1,7 @@ > Name: test > Type: hash:ip,port,ip > Header: family inet6 hashsize 1024 maxelem 65536 timeout 5 > -Size in memory: 8304 > +Size in memory: 1608 > References: 0 > +Number of Entries: 4 > Members: > diff --git a/tests/hash:ip6,port,net6.t.list0 b/tests/hash:ip6,port,net6.t.list0 > index 78472ff..a1e71a2 100644 > --- a/tests/hash:ip6,port,net6.t.list0 > +++ b/tests/hash:ip6,port,net6.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip,port,net > Header: family inet6 hashsize 1024 maxelem 65536 > -Size in memory: 9928 > +Size in memory: 1864 > References: 0 > +Number of Entries: 4 > Members: > 2:1::,tcp:128,::/12 > 2:1::1,tcp:128,::/12 > diff --git a/tests/hash:ip6,port.t.list0 b/tests/hash:ip6,port.t.list0 > index 5edbaac..cfed8c4 100644 > --- a/tests/hash:ip6,port.t.list0 > +++ b/tests/hash:ip6,port.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip,port > Header: family inet6 hashsize 1024 maxelem 65536 timeout x > -Size in memory: 8848 > +Size in memory: 1088 > References: 0 > +Number of Entries: 4 > Members: > 2:1::,tcp:128 timeout x > 2:1::1,tcp:128 timeout x > diff --git a/tests/hash:ip6,port.t.list1 b/tests/hash:ip6,port.t.list1 > index bf31179..638f685 100644 > --- a/tests/hash:ip6,port.t.list1 > +++ b/tests/hash:ip6,port.t.list1 > @@ -1,6 +1,7 @@ > Name: test > Type: hash:ip,port > Header: family inet6 hashsize 1024 maxelem 65536 timeout 5 > -Size in memory: 8304 > +Size in memory: 1088 > References: 0 > +Number of Entries: 4 > Members: > diff --git a/tests/hash:ip6.t.list0 b/tests/hash:ip6.t.list0 > index df81e38..a64a38f 100644 > --- a/tests/hash:ip6.t.list0 > +++ b/tests/hash:ip6.t.list0 > @@ -1,7 +1,8 @@ > Name: test > Type: hash:ip > Header: family inet6 hashsize 128 maxelem 65536 timeout 5 > -Size in memory: 1240 > +Size in memory: 512 > References: 0 > +Number of Entries: 2 > Members: > 192:168:68::69 timeout 0 > diff --git a/tests/hash:ip6.t.list1 b/tests/hash:ip6.t.list1 > index c3b1c30..50227dd 100644 > --- a/tests/hash:ip6.t.list1 > +++ b/tests/hash:ip6.t.list1 > @@ -1,7 +1,8 @@ > Name: test > Type: hash:ip > Header: family inet6 hashsize 128 maxelem 65536 netmask 64 timeout 5 > -Size in memory: 1448 > +Size in memory: 704 > References: 0 > +Number of Entries: 3 > Members: > 200:100:10:: timeout 0 > diff --git a/tests/hash:ip6.t.list2 b/tests/hash:ip6.t.list2 > index 1989efd..d7fd068 100644 > --- a/tests/hash:ip6.t.list2 > +++ b/tests/hash:ip6.t.list2 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip > Header: family inet6 hashsize 128 maxelem 65536 timeout x > -Size in memory: 1344 > +Size in memory: 512 > References: 0 > +Number of Entries: 2 > Members: > 192:168:68::69 timeout x > 2::1 timeout x > diff --git a/tests/hash:ip6.t.list3 b/tests/hash:ip6.t.list3 > index ece96d6..9a03f31 100644 > --- a/tests/hash:ip6.t.list3 > +++ b/tests/hash:ip6.t.list3 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip > Header: family inet6 hashsize 128 maxelem 65536 netmask 64 timeout x > -Size in memory: 1448 > +Size in memory: 704 > References: 0 > +Number of Entries: 3 > Members: > 192:168:68:: timeout x > 200:100:10:: timeout x > diff --git a/tests/hash:mac.t.list0 b/tests/hash:mac.t.list0 > index c2bbfd6..885f558 100644 > --- a/tests/hash:mac.t.list0 > +++ b/tests/hash:mac.t.list0 > @@ -1,7 +1,8 @@ > Name: test > Type: hash:mac > Header: hashsize 128 maxelem 65536 timeout 5 > -Size in memory: 2488 > +Size in memory: 384 > References: 0 > +Number of Entries: 2 > Members: > 00:0A:00:00:00:00 timeout 0 > diff --git a/tests/hash:mac.t.list1 b/tests/hash:mac.t.list1 > index 185f35f..cd48b8e 100644 > --- a/tests/hash:mac.t.list1 > +++ b/tests/hash:mac.t.list1 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:mac > Header: hashsize 1024 maxelem 65536 skbinfo > -Size in memory: 17304 > +Size in memory: 1088 > References: 0 > +Number of Entries: 6 > Members: > 01:02:03:04:05:06 skbmark 0x123456 > 01:02:03:04:05:07 skbmark 0x1234ab/0xffff > diff --git a/tests/hash:mac.t.list2 b/tests/hash:mac.t.list2 > index 2bec98d..aef2669 100644 > --- a/tests/hash:mac.t.list2 > +++ b/tests/hash:mac.t.list2 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:mac > Header: hashsize 128 maxelem 65536 timeout x > -Size in memory: 2488 > +Size in memory: 384 > References: 0 > +Number of Entries: 2 > Members: > 00:00:00:00:02:00 timeout x > 00:0A:00:00:00:00 timeout x > diff --git a/tests/hash:mac.t.list3 b/tests/hash:mac.t.list3 > index ab0bf9e..e35f058 100644 > --- a/tests/hash:mac.t.list3 > +++ b/tests/hash:mac.t.list3 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:mac > Header: hashsize 1024 maxelem 2 skbinfo > -Size in memory: 632 > +Size in memory: 448 > References: 0 > +Number of Entries: 2 > Members: > 01:02:03:04:05:06 skbprio 1:10 > 01:02:03:04:05:07 skbprio 1:12 skbqueue 8 > diff --git a/tests/hash:net,iface.t b/tests/hash:net,iface.t > index 21ba1c7..c19de2b 100644 > --- a/tests/hash:net,iface.t > +++ b/tests/hash:net,iface.t > @@ -131,7 +131,7 @@ > # Add clashing elements > 0 (set -e; for x in `seq 0 63`; do ipset add test 10.0.0.0/16,eth$x; done) > # Check listing > -0 n=`ipset list test | grep -v Revision: | wc -l` && test $n -eq 70 > +0 n=`ipset list test | grep -v Revision: | wc -l` && test $n -eq 71 > # Delete test set > 0 ipset destroy test > # Create test set with timeout support > diff --git a/tests/hash:net,iface.t.list0 b/tests/hash:net,iface.t.list0 > index 4bf10fe..4bd53cc 100644 > --- a/tests/hash:net,iface.t.list0 > +++ b/tests/hash:net,iface.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:net,iface > Header: family inet hashsize 128 maxelem 65536 > -Size in memory: 2928 > +Size in memory: 928 > References: 0 > +Number of Entries: 4 > Members: > 1.1.1.1,eth0 > 192.168.68.64/27,eth1 > diff --git a/tests/hash:net,iface.t.list1 b/tests/hash:net,iface.t.list1 > index de56129..f46e6ad 100644 > --- a/tests/hash:net,iface.t.list1 > +++ b/tests/hash:net,iface.t.list1 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:net,iface > Header: family inet hashsize 1024 maxelem 65536 > -Size in memory: 18512 > +Size in memory: 3872 > References: 0 > +Number of Entries: 27 > Members: > 192.0.0.0/10,eth10 > 192.0.0.0/11,eth11 > diff --git a/tests/hash:net,iface.t.list2 b/tests/hash:net,iface.t.list2 > index fbd502c..f19bc7a 100644 > --- a/tests/hash:net,iface.t.list2 > +++ b/tests/hash:net,iface.t.list2 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:net,iface > Header: family inet hashsize 1024 maxelem 65536 > -Size in memory: 17168 > +Size in memory: 928 > References: 0 > +Number of Entries: 4 > Members: > 10.2.0.0/24,eth0 > 10.2.1.0/29,eth0 > diff --git a/tests/hash:net,net.t.list0 b/tests/hash:net,net.t.list0 > index b759316..cc2784e 100644 > --- a/tests/hash:net,net.t.list0 > +++ b/tests/hash:net,net.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:net,net > Header: family inet hashsize 128 maxelem 65536 timeout x > -Size in memory: 3040 > +Size in memory: 1288 > References: 0 > +Number of Entries: 4 > Members: > 1.1.1.1,1.1.1.2 timeout x > 192.168.68.64/27,192.168.129.64/27 timeout x > diff --git a/tests/hash:net,net.t.list1 b/tests/hash:net,net.t.list1 > index d27b4a4..5a154d3 100644 > --- a/tests/hash:net,net.t.list1 > +++ b/tests/hash:net,net.t.list1 > @@ -1,6 +1,7 @@ > Name: test > Type: hash:net,net > Header: family inet hashsize 128 maxelem 65536 timeout 5 > -Size in memory: 3040 > +Size in memory: 1288 > References: 0 > +Number of Entries: 4 > Members: > diff --git a/tests/hash:net,net.t.list2 b/tests/hash:net,net.t.list2 > index adf26ff..07a288a 100644 > --- a/tests/hash:net,net.t.list2 > +++ b/tests/hash:net,net.t.list2 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:net,net > Header: family inet hashsize 1024 maxelem 65536 > -Size in memory: 17664 > +Size in memory: 2056 > References: 0 > +Number of Entries: 16 > Members: > 10.2.0.0/24,10.3.0.0/24 > 10.2.0.0/24,10.3.1.0/29 > diff --git a/tests/hash:net,port,net.t.list0 b/tests/hash:net,port,net.t.list0 > index 0d90e62..19c91ad 100644 > --- a/tests/hash:net,port,net.t.list0 > +++ b/tests/hash:net,port,net.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:net,port,net > Header: family inet hashsize 1024 maxelem 65536 timeout x > -Size in memory: 17672 > +Size in memory: 1288 > References: 0 > +Number of Entries: 4 > Members: > 2.0.0.0/24,tcp:5,192.168.0.0/24 timeout x > 2.0.0.0/24,tcp:5,192.168.0.0/25 timeout x > diff --git a/tests/hash:net,port.t.list0 b/tests/hash:net,port.t.list0 > index e28b4a3..6cf4326 100644 > --- a/tests/hash:net,port.t.list0 > +++ b/tests/hash:net,port.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:net,port > Header: family inet hashsize 128 maxelem 65536 timeout x > -Size in memory: 2072 > +Size in memory: 1024 > References: 0 > +Number of Entries: 5 > Members: > 1.1.1.1,tcp:5 timeout x > 192.168.68.64/27,tcp:8 timeout x > diff --git a/tests/hash:net,port.t.list1 b/tests/hash:net,port.t.list1 > index 10031e4..d777e4f 100644 > --- a/tests/hash:net,port.t.list1 > +++ b/tests/hash:net,port.t.list1 > @@ -1,6 +1,7 @@ > Name: test > Type: hash:net,port > Header: family inet hashsize 128 maxelem 65536 timeout 5 > -Size in memory: 2000 > +Size in memory: 1024 > References: 0 > +Number of Entries: 4 > Members: > diff --git a/tests/hash:net.t.list0 b/tests/hash:net.t.list0 > index a71fa74..5060479 100644 > --- a/tests/hash:net.t.list0 > +++ b/tests/hash:net.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:net > Header: family inet hashsize 128 maxelem 65536 timeout x > -Size in memory: 1672 > +Size in memory: 896 > References: 0 > +Number of Entries: 4 > Members: > 1.1.1.1 timeout x > 192.168.68.64/27 timeout x > diff --git a/tests/hash:net.t.list1 b/tests/hash:net.t.list1 > index 7ea6afc..9d4ed0f 100644 > --- a/tests/hash:net.t.list1 > +++ b/tests/hash:net.t.list1 > @@ -1,6 +1,7 @@ > Name: test > Type: hash:net > Header: family inet hashsize 128 maxelem 65536 timeout 5 > -Size in memory: 1672 > +Size in memory: 895 > References: 0 > +Number of Entries: 4 > Members: > diff --git a/tests/hash:net.t.list2 b/tests/hash:net.t.list2 > index bc81b5e..f064c43 100644 > --- a/tests/hash:net.t.list2 > +++ b/tests/hash:net.t.list2 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:net > Header: family inet hashsize 1024 maxelem 65536 > -Size in memory: 17016 > +Size in memory: 640 > References: 0 > +Number of Entries: 4 > Members: > 10.2.0.0/24 > 10.2.1.0/29 > diff --git a/tests/hash:net6,net6.t.list0 b/tests/hash:net6,net6.t.list0 > index ea78bbb..6f04003 100644 > --- a/tests/hash:net6,net6.t.list0 > +++ b/tests/hash:net6,net6.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:net,net > Header: family inet6 hashsize 128 maxelem 65536 timeout x > -Size in memory: 4672 > +Size in memory: 3144 > References: 0 > +Number of Entries: 4 > Members: > 192:160::/27,172:16:68::/48 timeout x > 1:1:1::1,2:2:2::2 timeout x > diff --git a/tests/hash:net6,net6.t.list1 b/tests/hash:net6,net6.t.list1 > index 0e1b7d2..9107e33 100644 > --- a/tests/hash:net6,net6.t.list1 > +++ b/tests/hash:net6,net6.t.list1 > @@ -1,6 +1,7 @@ > Name: test > Type: hash:net,net > Header: family inet6 hashsize 128 maxelem 65536 timeout 5 > -Size in memory: 4672 > +Size in memory: 3144 > References: 0 > +Number of Entries: 4 > Members: > diff --git a/tests/hash:net6,port,net6.t.list0 b/tests/hash:net6,port,net6.t.list0 > index 8a927ec..589c0b7 100644 > --- a/tests/hash:net6,port,net6.t.list0 > +++ b/tests/hash:net6,port,net6.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:net,port,net > Header: family inet6 hashsize 1024 maxelem 65536 > -Size in memory: 18824 > +Size in memory: 2440 > References: 0 > +Number of Entries: 4 > Members: > 2:1::,tcp:128,::/12 > 2:1::1,tcp:128,::/12 > diff --git a/tests/hash:net6,port.t.list0 b/tests/hash:net6,port.t.list0 > index f0a27b4..b66ad2c 100644 > --- a/tests/hash:net6,port.t.list0 > +++ b/tests/hash:net6,port.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:net,port > Header: family inet6 hashsize 128 maxelem 65536 timeout x > -Size in memory: 2328 > +Size in memory: 2352 > References: 0 > +Number of Entries: 5 > Members: > 192:160::/27,ipv6-icmp:echo-request timeout x > 192:168:68::95,ipv6-icmp:port-unreachable timeout x > diff --git a/tests/hash:net6,port.t.list1 b/tests/hash:net6,port.t.list1 > index e5e90a4..5043e0a 100644 > --- a/tests/hash:net6,port.t.list1 > +++ b/tests/hash:net6,port.t.list1 > @@ -1,7 +1,8 @@ > Name: test > Type: hash:net,port > Header: family inet6 hashsize 128 maxelem 65536 timeout 5 > -Size in memory: 2328 > +Size in memory: 2352 > References: 0 > +Number of Entries: 5 > Members: > 1:1:1::1,tcp:8 timeout 0 > diff --git a/tests/hash:net6.t.list0 b/tests/hash:net6.t.list0 > index 52b0ce5..beae54b 100644 > --- a/tests/hash:net6.t.list0 > +++ b/tests/hash:net6.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:net > Header: family inet6 hashsize 128 maxelem 65536 timeout x > -Size in memory: 2696 > +Size in memory: 2112 > References: 0 > +Number of Entries: 4 > Members: > 192:160::/27 timeout x > 1:1:1::1 timeout x > diff --git a/tests/hash:net6.t.list1 b/tests/hash:net6.t.list1 > index e92da52..cd3b3b3 100644 > --- a/tests/hash:net6.t.list1 > +++ b/tests/hash:net6.t.list1 > @@ -1,6 +1,7 @@ > Name: test > Type: hash:net > Header: family inet6 hashsize 128 maxelem 65536 timeout 5 > -Size in memory: 2696 > +Size in memory: 2112 > References: 0 > +Number of Entries: 4 > Members: > diff --git a/tests/iphash.t.list0 b/tests/iphash.t.list0 > index 2302485..a74d1e3 100644 > --- a/tests/iphash.t.list0 > +++ b/tests/iphash.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip > Header: family inet hashsize 128 maxelem 65536 > -Size in memory: 1184 > +Size in memory: 224 > References: 0 > +Number of Entries: 2 > Members: > 192.168.68.69 > 2.0.0.1 > diff --git a/tests/iphash.t.list1 b/tests/iphash.t.list1 > index ea5d2a1..fc470a5 100644 > --- a/tests/iphash.t.list1 > +++ b/tests/iphash.t.list1 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip > Header: family inet hashsize 128 maxelem 65536 netmask 24 > -Size in memory: 1184 > +Size in memory: 224 > References: 0 > +Number of Entries: 2 > Members: > 192.168.68.0 > 2.0.0.0 > diff --git a/tests/ipmarkhash.t.list0 b/tests/ipmarkhash.t.list0 > index 1157c69..35caa4d 100644 > --- a/tests/ipmarkhash.t.list0 > +++ b/tests/ipmarkhash.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip,mark > Header: family inet markmask 0xffffffff hashsize 1024 maxelem 65536 > -Size in memory: 8516 > +Size in memory: 384 > References: 0 > +Number of Entries: 4 > Members: > 2.0.0.0,0x00000005 > 2.0.0.1,0x00000005 > diff --git a/tests/ipmarkhash.t.list1 b/tests/ipmarkhash.t.list1 > index 5455be9..5cc4935 100644 > --- a/tests/ipmarkhash.t.list1 > +++ b/tests/ipmarkhash.t.list1 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip,mark > Header: family inet markmask 0xffffffff hashsize 1024 maxelem 65536 > -Size in memory: 8468 > +Size in memory: 384 > References: 0 > +Number of Entries: 4 > Members: > 1.255.255.255,0x00000005 > 2.0.0.0,0x00000005 > diff --git a/tests/ipporthash.t.list0 b/tests/ipporthash.t.list0 > index 20c805d..9d33a41 100644 > --- a/tests/ipporthash.t.list0 > +++ b/tests/ipporthash.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip,port > Header: family inet hashsize 1024 maxelem 65536 > -Size in memory: 8464 > +Size in memory: 384 > References: 0 > +Number of Entries: 4 > Members: > 2.0.0.0,tcp:5 > 2.0.0.1,tcp:5 > diff --git a/tests/ipporthash.t.list1 b/tests/ipporthash.t.list1 > index 0834a00..709dcf7 100644 > --- a/tests/ipporthash.t.list1 > +++ b/tests/ipporthash.t.list1 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip,port > Header: family inet hashsize 1024 maxelem 65536 > -Size in memory: 8464 > +Size in memory: 384 > References: 0 > +Number of Entries: 4 > Members: > 1.255.255.255,tcp:5 > 2.0.0.0,tcp:5 > diff --git a/tests/ipportiphash.t.list0 b/tests/ipportiphash.t.list0 > index fc881ad..3e4dc05 100644 > --- a/tests/ipportiphash.t.list0 > +++ b/tests/ipportiphash.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip,port,ip > Header: family inet hashsize 1024 maxelem 65536 > -Size in memory: 8528 > +Size in memory: 456 > References: 0 > +Number of Entries: 4 > Members: > 2.0.0.0,tcp:5,1.1.1.1 > 2.0.0.1,tcp:5,1.1.1.1 > diff --git a/tests/ipportiphash.t.list1 b/tests/ipportiphash.t.list1 > index 9a7d1f0..343d397 100644 > --- a/tests/ipportiphash.t.list1 > +++ b/tests/ipportiphash.t.list1 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:ip,port,ip > Header: family inet hashsize 1024 maxelem 65536 > -Size in memory: 8416 > +Size in memory: 296 > References: 0 > +Number of Entries: 2 > Members: > 2.0.0.0,tcp:5,1.1.1.1 > 2.0.255.255,tcp:128,2.2.2.2 > diff --git a/tests/iptables.sh b/tests/iptables.sh > index 7ea90e0..7273066 100755 > --- a/tests/iptables.sh > +++ b/tests/iptables.sh > @@ -1,6 +1,6 @@ > #!/bin/sh > > -# set -x > +set -x > set -e > > ipset=${IPSET_BIN:-../src/ipset} > diff --git a/tests/nethash.t.list0 b/tests/nethash.t.list0 > index 1a157e9..2e7695d 100644 > --- a/tests/nethash.t.list0 > +++ b/tests/nethash.t.list0 > @@ -1,8 +1,9 @@ > Name: test > Type: hash:net > Header: family inet hashsize 128 maxelem 65536 > -Size in memory: 1544 > +Size in memory: 640 > References: 0 > +Number of Entries: 4 > Members: > 1.1.1.1 > 192.168.68.64/27 > diff --git a/tests/resizet.sh b/tests/resizet.sh > index 7dc309f..eed4abf 100755 > --- a/tests/resizet.sh > +++ b/tests/resizet.sh > @@ -1,6 +1,6 @@ > #!/bin/sh > > -# set -x > +#set -x > set -e > > ipset=${IPSET_BIN:-../src/ipset} > diff --git a/tests/restore.t.list0 b/tests/restore.t.list0 > index 65aa8b8..21387ba 100644 > --- a/tests/restore.t.list0 > +++ b/tests/restore.t.list0 > @@ -1,8 +1,9 @@ > Name: a > Type: hash:ip > Header: family inet6 hashsize 1024 maxelem 65536 > -Size in memory: 16704 > +Size in memory: 416 > References: 0 > +Number of Entries: 3 > Members: > 3::3 > 4::4 > diff --git a/tests/restore.t.list1 b/tests/restore.t.list1 > index 0602ab6..cdf9a02 100644 > --- a/tests/restore.t.list1 > +++ b/tests/restore.t.list1 > @@ -1,8 +1,9 @@ > Name: b > Type: hash:ip > Header: family inet6 hashsize 1024 maxelem 65536 > -Size in memory: 16704 > +Size in memory: 416 > References: 0 > +Number of Entries: 3 > Members: > 1::1 > 2::2 > diff --git a/tests/setlist.t.list4 b/tests/setlist.t.list4 > index bce5824..ef17470 100644 > --- a/tests/setlist.t.list4 > +++ b/tests/setlist.t.list4 > @@ -1,29 +1,33 @@ > Name: a > Type: hash:ip > Header: family inet hashsize 1024 maxelem 65536 > -Size in memory: 16504 > +Size in memory: 128 > References: 1 > +Number of Entries: 0 > Members: > > Name: b > Type: hash:ip > Header: family inet hashsize 1024 maxelem 65536 > -Size in memory: 16504 > +Size in memory: 128 > References: 0 > +Number of Entries: 0 > Members: > > Name: c > Type: hash:ip > Header: family inet hashsize 1024 maxelem 65536 > -Size in memory: 16504 > +Size in memory: 128 > References: 0 > +Number of Entries: 0 > Members: > > Name: d > Type: hash:ip > Header: family inet hashsize 1024 maxelem 65536 > -Size in memory: 16504 > +Size in memory: 128 > References: 0 > +Number of Entries: 0 > Members: > > Name: test > diff --git a/tests/sort.sh b/tests/sort.sh > index 69aebd5..c5edad1 100755 > --- a/tests/sort.sh > +++ b/tests/sort.sh > @@ -1,5 +1,5 @@ > #!/bin/sh > > -head -n 6 $1 > .foo > -tail -n +7 $1 | grep '[[:alnum:]]' | sort >> .foo > +head -n 7 $1 > .foo > +tail -n +8 $1 | grep '[[:alnum:]]' | sort >> .foo > rm $1 > -- > 1.9.1 > - E-mail : kadlec@xxxxxxxxxxxxxxxxx, kadlecsik.jozsef@xxxxxxxxxxxxx PGP key : http://www.kfki.hu/~kadlec/pgp_public_key.txt Address : Wigner Research Centre for Physics, Hungarian Academy of Sciences H-1525 Budapest 114, POB. 49, Hungary -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html