From 3eb14fd93093c5e084d3ac1c4b0171cf80fb264f Mon Sep 17 00:00:00 2001 From: Florian Westphal Date: Mon, 1 Feb 2021 22:44:25 +0100 Subject: tests: add icmp/6 test where dependency should be left alone These tests fail: nft should leave the type as-is. Signed-off-by: Florian Westphal --- tests/py/ip/icmp.t | 2 ++ tests/py/ip/icmp.t.json | 28 ++++++++++++++++++++++++++++ tests/py/ip/icmp.t.payload.ip | 6 ++++++ tests/py/ip6/icmpv6.t | 2 ++ tests/py/ip6/icmpv6.t.json | 28 ++++++++++++++++++++++++++++ tests/py/ip6/icmpv6.t.payload.ip6 | 7 +++++++ 6 files changed, 73 insertions(+) (limited to 'tests/py') diff --git a/tests/py/ip/icmp.t b/tests/py/ip/icmp.t index c22b55eb..11f3662e 100644 --- a/tests/py/ip/icmp.t +++ b/tests/py/ip/icmp.t @@ -86,3 +86,5 @@ icmp gateway != { 33-55};ok icmp gateway != 34;ok icmp gateway != { 333, 334};ok +icmp code 1 icmp type 2;ok;icmp type 2 icmp code host-unreachable +icmp code != 1 icmp type 2 icmp mtu 5;fail diff --git a/tests/py/ip/icmp.t.json b/tests/py/ip/icmp.t.json index 9691f072..12b53b0f 100644 --- a/tests/py/ip/icmp.t.json +++ b/tests/py/ip/icmp.t.json @@ -1843,3 +1843,31 @@ } } ] + +# icmp code 1 icmp type 2 +[ + { + "match": { + "left": { + "payload": { + "field": "type", + "protocol": "icmp" + } + }, + "op": "==", + "right": 2 + } + }, + { + "match": { + "left": { + "payload": { + "field": "code", + "protocol": "icmp" + } + }, + "op": "==", + "right": "host-unreachable" + } + } +] diff --git a/tests/py/ip/icmp.t.payload.ip b/tests/py/ip/icmp.t.payload.ip index d75d12a0..97464a08 100644 --- a/tests/py/ip/icmp.t.payload.ip +++ b/tests/py/ip/icmp.t.payload.ip @@ -787,3 +787,9 @@ ip test-ip4 input [ lookup reg 1 set __set%d ] [ immediate reg 0 accept ] +# icmp code 1 icmp type 2 +ip + [ meta load l4proto => reg 1 ] + [ cmp eq reg 1 0x00000001 ] + [ payload load 2b @ transport header + 0 => reg 1 ] + [ cmp eq reg 1 0x00000102 ] diff --git a/tests/py/ip6/icmpv6.t b/tests/py/ip6/icmpv6.t index 8b411a8b..d07c34bd 100644 --- a/tests/py/ip6/icmpv6.t +++ b/tests/py/ip6/icmpv6.t @@ -92,3 +92,5 @@ icmpv6 max-delay {33, 55, 67, 88};ok icmpv6 max-delay != {33, 55, 67, 88};ok icmpv6 max-delay {33-55};ok icmpv6 max-delay != {33-55};ok + +icmpv6 type parameter-problem icmpv6 code no-route;ok diff --git a/tests/py/ip6/icmpv6.t.json b/tests/py/ip6/icmpv6.t.json index ffc4931c..e2b25a65 100644 --- a/tests/py/ip6/icmpv6.t.json +++ b/tests/py/ip6/icmpv6.t.json @@ -1315,3 +1315,31 @@ } } ] + +# icmpv6 type parameter-problem icmpv6 code no-route +[ + { + "match": { + "left": { + "payload": { + "field": "type", + "protocol": "icmpv6" + } + }, + "op": "==", + "right": "parameter-problem" + } + }, + { + "match": { + "left": { + "payload": { + "field": "code", + "protocol": "icmpv6" + } + }, + "op": "==", + "right": "no-route" + } + } +] diff --git a/tests/py/ip6/icmpv6.t.payload.ip6 b/tests/py/ip6/icmpv6.t.payload.ip6 index 171b7ead..448779d1 100644 --- a/tests/py/ip6/icmpv6.t.payload.ip6 +++ b/tests/py/ip6/icmpv6.t.payload.ip6 @@ -682,3 +682,10 @@ ip6 test-ip6 input [ payload load 2b @ transport header + 4 => reg 1 ] [ lookup reg 1 set __set%d 0x1 ] +# icmpv6 type parameter-problem icmpv6 code no-route +ip6 + [ meta load l4proto => reg 1 ] + [ cmp eq reg 1 0x0000003a ] + [ payload load 2b @ transport header + 0 => reg 1 ] + [ cmp eq reg 1 0x00000004 ] + -- cgit v1.2.3