# Create dummy set 0 ipset -N dummy list:set # Create base set foo 0 ipset -N foo ipmap --from 2.0.0.1 --to 2.1.0.0 # Create base set bar 0 ipset -N bar iphash # Create setlist kind of set 0 ipset -N test setlist # Swap test and dumy sets 0 ipset -W test dummy # Destroy dummy set 0 ipset -X dummy # Add foo set to setlist 0 ipset -A test foo # Test foo set in setlist 0 ipset -T test foo # Test nonexistent set in setlist 1 ipset -T test nonexistent # Try to delete foo set 1 ipset -X foo # Add bar set to setlist, after foo 0 ipset -A test bar # Test bar,after,foo 0 ipset -T test bar,after,foo # Test foo,before,bar 0 ipset -T test foo,before,bar # Test bar,before,foo 1 ipset -T test bar,before,foo # Test foo,after,bar 1 ipset -T test foo,after,bar # Save sets 0 ipset -S > setlist.t.r # Delete bar,before,foo 1 ipset -D test bar,before,foo # Delete foo,after,bar 1 ipset -D test foo,after,bar # Delete bar,after,foo 0 ipset -D test bar,after,foo # Flush test set 0 ipset -F test # Delete test set 0 ipset -X test # Delete all sets 0 ipset -X # Restore saved sets 0 ipset -R < setlist.t.r # List set 0 ipset -L test | grep -v Revision: > .foo # Check listing 0 diff -u -I 'Size in memory.*' .foo setlist.t.list0 # Flush all sets 0 ipset -F # Delete all sets 0 ipset -X && rm setlist.t.r # Create sets a, b, c to check before/after in all combinations 0 ipset restore < setlist.t.before # Add set a to test set 0 ipset add test b # Add set c after b 0 ipset add test c after b # Add set a before b 0 ipset add test a before b # List test set 0 ipset list test | grep -v Revision: > .foo # Check listing 0 diff -u -I 'Size in memory.*' .foo setlist.t.list1 # Test a set before b 0 ipset test test a before b # Test c set after b 0 ipset test test c after b # Delete b set before c 0 ipset del test b before c # List test set 0 ipset list test | grep -v Revision: > .foo # Check listing 0 diff -u -I 'Size in memory.*' .foo setlist.t.list2 # Delete c set after a 0 ipset del test c after a # List test set 0 ipset list test | grep -v Revision: > .foo # Check listing 0 diff -u -I 'Size in memory.*' .foo setlist.t.list3 # List all sets 0 ipset list | grep -v Revision: > .foo # Check listing 0 diff -u -I 'Size in memory.*' .foo setlist.t.list4 # Flush sets 0 ipset flush # Destroy sets 0 ipset destroy # Restore list:set with timeout 0 ipset -R < setlist.t.restore # Add set "before" last one 0 ipset add test e before d # Check reference number of the pushed off set 0 ref=`ipset list d | grep References | sed 's/References: //'` && test $ref -eq 0 # Try to add already added set 1 ipset add test a # Check reference number of added set 0 ref=`ipset list a | grep References | sed 's/References: //'` && test $ref -eq 1 # Try to add already added set with exist flag 0 ipset add test a -! # Check reference number of added set 0 ref=`ipset list a | grep References | sed 's/References: //'` && test $ref -eq 1 # Delete set from the set 0 ipset del test a # Check reference number of deleted set 0 ref=`ipset list a | grep References | sed 's/References: //'` && test $ref -eq 0 # Add element to set a 0 ipset add a 1.1.1.1 # Swap sets 0 ipset swap a b # Check reference number of deleted set 0 ref=`ipset list a | grep References | sed 's/References: //'` && test $ref -eq 0 # Check reference number of member set 0 ref=`ipset list b | grep References | sed 's/References: //'` && test $ref -eq 1 # Check element in member set 0 ipset test b 1.1.1.1 # Sleep 10s so that entries can time out 0 sleep 10 # Check reference numbers of the sets 0 ref=`ipset list | grep 'References: 1' | wc -l` && test $ref -eq 0 # Flush test set 0 ipset flush test # Add element with 1s timeout 0 ipset add test a timeout 1 # Readd element with 3s timeout 0 ipset add test a timeout 3 -exist # Sleep 2s # Check readded element 0 ipset test test a # Flush all sets 0 ipset flush # Delete test set 0 ipset x test # Counters: create set 0 ipset n test list:set counters # Counters: add element with packet, byte counters 0 ipset a test a packets 5 bytes 3456 # Counters: check counters 0 ./check_counters test a 5 3456 # Counters: delete element 0 ipset d test a # Counters: add element with packet, byte counters 0 ipset a test b packets 12 bytes 9876 # Counters: check counters 0 ./check_counters test b 12 9876 # Counters: update counters 0 ipset -! a test b packets 13 bytes 12479 # Counters: check counters 0 ./check_counters test b 13 12479 # Counters: flush test set 0 ipset f test # Counters: destroy set 0 ipset x test # Counters and timeout: create set 0 ipset n test list:set counters timeout 600 # Counters and timeout: add element with packet, byte counters 0 ipset a test a packets 5 bytes 3456 # Counters and timeout: check counters 0 ./check_extensions test a 600 5 3456 # Counters and timeout: add element with packet, byte counters 0 ipset a test b packets 12 bytes 9876 # Counters and timeout: check counters 0 ./check_extensions test b 600 12 9876 # Counters and timeout: update counters 0 ipset -! a test b packets 13 bytes 12479 # Counters and timeout: check counters 0 ./check_extensions test b 600 13 12479 # Counters and timeout: update timeout 0 ipset -! a test b timeout 700 # Counters and timeout: check counters 0 ./check_extensions test b 700 13 12479 # Counters and timeout: flush 0 ipset f test # Counters and timeout: destroy sets 0 ipset x # Counters: require sendip skip which sendip >/dev/null # Counters: create set 0 ipset n a hash:ip counters # Counters: create list set 0 ipset n test list:set counters # Counters: add elemet with zero counters 0 ipset a a 10.255.255.64 # Counters: add set to test set 0 ipset a test a # Counters: generate packets 0 ./check_sendip_packets -4 src 5 # Counters: check counters 0 ./check_counters a 10.255.255.64 5 $((5*40)) # Counters: check counters in list set 0 ./check_counters test a 5 $((5*40)) # Counters: flush sets 0 ipset f # Counters: destroy sets 0 ipset x # Counters and timeout: create set 0 ipset n a hash:ip counters timeout 600 # Counters and timeout: create list set 0 ipset n test list:set counters timeout 600 # Counters and timeout: add elemet with zero counters 0 ipset a a 10.255.255.64 # Counters: add set to test set 0 ipset a test a # Counters and timeout: generate packets 0 ./check_sendip_packets -4 src 6 # Counters and timeout: check counters 0 ./check_extensions a 10.255.255.64 600 6 $((6*40)) # Counters and timeout: check counters in list set 0 ./check_extensions test a 600 6 $((6*40)) # Counters and timeout: flush sets 0 ipset f # Counters and timeout: destroy sets 0 ipset x # eof