From eb9af8fe6d4776242fea84f5228b46d903539146 Mon Sep 17 00:00:00 2001 From: Eric B Munson Date: Fri, 29 May 2015 11:36:25 -0400 Subject: [PATCH] Add element count to hash headers 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 bulk of this patch changes the expected test suite to account for the change in output. Signed-off-by: Eric B Munson Cc: Pablo Neira Ayuso Cc: Josh Hunt Cc: netfilter-devel@vger.kernel.org Signed-off-by: Jozsef Kadlecsik --- 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 | 12 ++++++++---- 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 | 15 ++++++++++----- tests/sort.sh | 4 ++-- 71 files changed, 163 insertions(+), 81 deletions(-) diff --git a/include/libipset/utils.h b/include/libipset/utils.h index 3cd29da5..ceedd459 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 f8e82c2a..2b59b203 100644 --- a/kernel/net/netfilter/ipset/ip_set_hash_gen.h +++ b/kernel/net/netfilter/ipset/ip_set_hash_gen.h @@ -1075,7 +1075,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 8eb275bf..38811211 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 013d9d87..2650755a 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, "\n"); safe_dprintf(session, ipset_print_number, IPSET_OPT_REFERENCES); + safe_snprintf(session, "\n"); + if (MATCH_TYPENAME(type->name , "hash:")) { + safe_snprintf(session, ""); + safe_dprintf(session, ipset_print_number, IPSET_OPT_ELEMENTS); + safe_snprintf(session, "\n"); + } safe_snprintf(session, session->envopts & IPSET_ENV_LIST_HEADER ? - "\n\n" : - "\n\n\n"); + "\n" : + "\n\n"); break; default: break; diff --git a/tests/check_cidrs.sh b/tests/check_cidrs.sh index 38f735fc..2206b185 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 76d0ceaa..90a7e9bf 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 a40889eb..973b3443 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 1ae1bf1a..15926f88 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 d460bf5b..673678a0 100644 --- a/tests/comment.t.list3 +++ b/tests/comment.t.list3 @@ -1,29 +1,33 @@ Name: a Type: hash:ip Header: family inet hashsize 1024 maxelem 65536 -Size in memory: 16536 +Size in memory: 152 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: 152 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: 152 References: 1 +Number of entries: 0 Members: Name: test Type: list:set Header: size 8 comment -Size in memory: 264 +Size in memory: 288 References: 0 +Number of entries: 3 Members: a comment "a set comment" b comment "b set comment" diff --git a/tests/hash:ip,mark.t.list0 b/tests/hash:ip,mark.t.list0 index 715654c6..3866bf54 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 093c94f5..a15cb520 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 7218937c..57adef1a 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 78ad1fd1..c8890149 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 c214eadb..44c53c5b 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 fb9c57b8..49e30334 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 eab115cc..4442ad63 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 7e7f3adb..624d0505 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 3d13afcf..d166f77c 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 ffd4f728..db6827ee 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 274cf47a..6cd2bf45 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 50777103..500abbc7 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 f905b2af..be7c0699 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 d40faed2..377fa792 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 41ac1c0d..6fc67711 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 7a3a4adc..3d42c1c4 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 78472ffd..ad8ea8f5 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 5edbaac6..926c4ec9 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 bf311792..2260fa68 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 df81e382..30e0c334 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 c3b1c303..337b1942 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 1989efd9..46a92f78 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 ece96d64..c6e29906 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 c2bbfd6f..824dd304 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 185f35f3..0c971ffd 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 2bec98d4..166f266c 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 ab0bf9e0..41543421 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 21ba1c7a..c19de2b5 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 4bf10fe9..e29a7d6d 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 de561299..00f7d807 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 fbd502c9..4f5cc900 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 b759316f..4b806ea8 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 d27b4a44..262440b2 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 adf26ff1..139b3e2b 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 0d90e627..9f20e7d7 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 e28b4a38..fbfab7f9 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 10031e4b..2e38e199 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 a71fa740..e22f183f 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 7ea6afc5..d96a6588 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 bc81b5e6..893ac9d8 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 ea78bbb3..1f021e51 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 0e1b7d2e..ecc76b66 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 8a927ec7..4b9f8f8b 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 f0a27b44..2d3596c6 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 e5e90a46..dc12d8f9 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 52b0ce53..ad7133aa 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 e92da529..20a49500 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 2302485a..4d757112 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 ea5d2a19..18ec0270 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 1157c697..9ebf116b 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 5455be90..af399986 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 20c805dd..902160f6 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 0834a001..d298cc09 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 fc881ada..bde5356a 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 9a7d1f0f..d5cc29ec 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 7ea90e02..72730661 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 1a157e98..0aeb8522 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 7dc309f1..eed4abf2 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 65aa8b84..3c73ab35 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 0602ab6a..e2c1f8e9 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 bce58248..6b115d9d 100644 --- a/tests/setlist.t.list4 +++ b/tests/setlist.t.list4 @@ -1,35 +1,40 @@ Name: a Type: hash:ip Header: family inet hashsize 1024 maxelem 65536 -Size in memory: 16504 +Size in memory: 152 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: 152 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: 152 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: 152 References: 0 +Number of entries: 0 Members: Name: test Type: list:set Header: size 8 -Size in memory: 112 +Size in memory: 184 References: 0 +Number of entries: 1 Members: a diff --git a/tests/sort.sh b/tests/sort.sh index 69aebd5f..c5edad13 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 -- 2.47.2