From: Florian Westphal Date: Wed, 18 Oct 2017 23:58:47 +0000 (+0200) Subject: tests: add test case that checks icmp6 in-ipv4 X-Git-Tag: v0.8.1~36 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f94c2f69102fc5249ee18565fa6ad3bd4b82441e;p=thirdparty%2Fnftables.git tests: add test case that checks icmp6 in-ipv4 nft does not handle this correctly. This test fails. In: inet input ip protocol ipv6-icmp meta l4proto ipv6-icmp icmpv6 type 1 Out: meta l4proto 58 icmpv6 type destination-unreachable which loses the "ipv4" dependency, i.e. listing should show the rule as-is. Signed-off-by: Florian Westphal --- diff --git a/tests/py/inet/icmpX.t b/tests/py/inet/icmpX.t index aebaf099..43ac0909 100644 --- a/tests/py/inet/icmpX.t +++ b/tests/py/inet/icmpX.t @@ -6,3 +6,5 @@ ip protocol icmp icmp type echo-request;ok;icmp type echo-request icmp type echo-request;ok ip6 nexthdr icmpv6 icmpv6 type echo-request;ok;ip6 nexthdr 58 icmpv6 type echo-request icmpv6 type echo-request;ok +# must not remove 'ip protocol' dependency, this explicitly matches icmpv6-in-ipv4. +ip protocol ipv6-icmp meta l4proto ipv6-icmp icmpv6 type 1;ok;ip protocol 58 meta l4proto 58 icmpv6 type destination-unreachable diff --git a/tests/py/inet/icmpX.t.payload b/tests/py/inet/icmpX.t.payload index 7c5f6f01..9a761eef 100644 --- a/tests/py/inet/icmpX.t.payload +++ b/tests/py/inet/icmpX.t.payload @@ -34,3 +34,13 @@ inet test-inet input [ payload load 1b @ transport header + 0 => reg 1 ] [ cmp eq reg 1 0x00000080 ] +# ip protocol ipv6-icmp meta l4proto ipv6-icmp icmpv6 type 1 +inet filter input + [ meta load nfproto => reg 1 ] + [ cmp eq reg 1 0x00000002 ] + [ payload load 1b @ network header + 9 => reg 1 ] + [ cmp eq reg 1 0x0000003a ] + [ meta load l4proto => reg 1 ] + [ cmp eq reg 1 0x0000003a ] + [ payload load 1b @ transport header + 0 => reg 1 ] + [ cmp eq reg 1 0x00000001 ]