summaryrefslogtreecommitdiffstats
path: root/tests/shell/testcases/sets/0043concatenated_ranges_1
blob: bab189c56d8c436bef86fb228d656dbd797ed732 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/sh -e
#
# 0043concatenated_ranges_1 - Insert and list subnets of different sizes

check() {
	$NFT add element "${1}" t s "{ ${2} . ${3} }"
	[ "$( $NFT list set "${1}" t s | grep -c "${2} . ${3}" )" = 1 ]
}

$NFT add table ip6 t
$NFT add table ip  t

$NFT add set ip6 t s '{ type ipv6_addr . ipv6_addr ; flags interval ; }'
$NFT add set ip  t s '{ type ipv4_addr . ipv4_addr ; flags interval ; }'

for n in $(seq 32 127); do
	h="$(printf %x "${n}")"
	check ip6 "2001:db8::/${n}" "2001:db8:${h}::-2001:db8:${h}::${h}:1"
done

for n in $(seq 24 31); do
	check ip  "192.0.2.0/${n}"  "192.0.2.$((n * 3))-192.0.2.$((n * 3 + 2))"
done