summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric B Munson <emunson@akamai.com>2015-05-29 11:36:25 -0400
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2015-06-19 23:30:06 +0200
commiteb9af8fe6d4776242fea84f5228b46d903539146 (patch)
treed7578d91c40b1c228ddf7e354683362e7042e7c3
parent01a13aa4fe0cb668fc535d38d6f9383433923874 (diff)
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 <emunson@akamai.com> Cc: Pablo Neira Ayuso <pablo@netfilter.org> Cc: Josh Hunt <johunt@akamai.com> Cc: netfilter-devel@vger.kernel.org Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
-rw-r--r--include/libipset/utils.h3
-rw-r--r--kernel/net/netfilter/ipset/ip_set_hash_gen.h3
-rw-r--r--lib/errcode.c2
-rw-r--r--lib/session.c14
-rwxr-xr-xtests/check_cidrs.sh4
-rw-r--r--tests/comment.t.list23
-rw-r--r--tests/comment.t.list213
-rw-r--r--tests/comment.t.list223
-rw-r--r--tests/comment.t.list312
-rw-r--r--tests/hash:ip,mark.t.list03
-rw-r--r--tests/hash:ip,mark.t.list13
-rw-r--r--tests/hash:ip,port,ip.t.list03
-rw-r--r--tests/hash:ip,port,ip.t.list13
-rw-r--r--tests/hash:ip,port,net.t.list03
-rw-r--r--tests/hash:ip,port.t.list03
-rw-r--r--tests/hash:ip,port.t.list13
-rw-r--r--tests/hash:ip,port.t.list23
-rw-r--r--tests/hash:ip.t.list03
-rw-r--r--tests/hash:ip.t.list13
-rw-r--r--tests/hash:ip.t.list23
-rw-r--r--tests/hash:ip.t.list33
-rw-r--r--tests/hash:ip6,mark.t.list03
-rw-r--r--tests/hash:ip6,mark.t.list13
-rw-r--r--tests/hash:ip6,port,ip6.t.list04
-rw-r--r--tests/hash:ip6,port,ip6.t.list13
-rw-r--r--tests/hash:ip6,port,net6.t.list03
-rw-r--r--tests/hash:ip6,port.t.list03
-rw-r--r--tests/hash:ip6,port.t.list13
-rw-r--r--tests/hash:ip6.t.list03
-rw-r--r--tests/hash:ip6.t.list13
-rw-r--r--tests/hash:ip6.t.list23
-rw-r--r--tests/hash:ip6.t.list33
-rw-r--r--tests/hash:mac.t.list03
-rw-r--r--tests/hash:mac.t.list13
-rw-r--r--tests/hash:mac.t.list23
-rw-r--r--tests/hash:mac.t.list33
-rw-r--r--tests/hash:net,iface.t2
-rw-r--r--tests/hash:net,iface.t.list03
-rw-r--r--tests/hash:net,iface.t.list13
-rw-r--r--tests/hash:net,iface.t.list23
-rw-r--r--tests/hash:net,net.t.list03
-rw-r--r--tests/hash:net,net.t.list13
-rw-r--r--tests/hash:net,net.t.list23
-rw-r--r--tests/hash:net,port,net.t.list03
-rw-r--r--tests/hash:net,port.t.list03
-rw-r--r--tests/hash:net,port.t.list13
-rw-r--r--tests/hash:net.t.list03
-rw-r--r--tests/hash:net.t.list13
-rw-r--r--tests/hash:net.t.list23
-rw-r--r--tests/hash:net6,net6.t.list03
-rw-r--r--tests/hash:net6,net6.t.list13
-rw-r--r--tests/hash:net6,port,net6.t.list03
-rw-r--r--tests/hash:net6,port.t.list03
-rw-r--r--tests/hash:net6,port.t.list13
-rw-r--r--tests/hash:net6.t.list03
-rw-r--r--tests/hash:net6.t.list13
-rw-r--r--tests/iphash.t.list03
-rw-r--r--tests/iphash.t.list13
-rw-r--r--tests/ipmarkhash.t.list03
-rw-r--r--tests/ipmarkhash.t.list13
-rw-r--r--tests/ipporthash.t.list03
-rw-r--r--tests/ipporthash.t.list13
-rw-r--r--tests/ipportiphash.t.list03
-rw-r--r--tests/ipportiphash.t.list13
-rwxr-xr-xtests/iptables.sh2
-rw-r--r--tests/nethash.t.list03
-rwxr-xr-xtests/resizet.sh2
-rw-r--r--tests/restore.t.list03
-rw-r--r--tests/restore.t.list13
-rw-r--r--tests/setlist.t.list415
-rwxr-xr-xtests/sort.sh4
71 files changed, 163 insertions, 81 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 f8e82c2..2b59b20 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 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..2650755 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..90a7e9b 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..973b344 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..15926f8 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..673678a 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 715654c..3866bf5 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..a15cb52 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..57adef1 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..c889014 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..44c53c5 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..49e3033 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..4442ad6 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..624d050 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..d166f77 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..db6827e 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..6cd2bf4 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..500abbc 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..be7c069 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..377fa79 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..6fc6771 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..3d42c1c 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..ad8ea8f 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..926c4ec 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..2260fa6 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..30e0c33 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..337b194 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..46a92f7 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..c6e2990 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..824dd30 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..0c971ff 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..166f266 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..4154342 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..e29a7d6 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..00f7d80 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..4f5cc90 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..4b806ea 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..262440b 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..139b3e2 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..9f20e7d 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..fbfab7f 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..2e38e19 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..e22f183 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..d96a658 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..893ac9d 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..1f021e5 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..ecc76b6 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..4b9f8f8 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..2d3596c 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..dc12d8f 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..ad7133a 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..20a4950 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..4d75711 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..18ec027 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..9ebf116 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..af39998 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..902160f 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..d298cc0 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..bde5356 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..d5cc29e 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..0aeb852 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..3c73ab3 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..e2c1f8e 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..6b115d9 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 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