From f94c2f69102fc5249ee18565fa6ad3bd4b82441e Mon Sep 17 00:00:00 2001 From: Florian Westphal Date: Thu, 19 Oct 2017 01:58:47 +0200 Subject: 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 --- tests/py/inet/icmpX.t | 2 ++ tests/py/inet/icmpX.t.payload | 10 ++++++++++ 2 files changed, 12 insertions(+) (limited to 'tests') 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 ] -- cgit v1.2.3