a2ea441692
- Install an improved sample config - Fix permissions of osf-related configs - rule: Fix for potential off-by-one in cmd_add_loc() - netlink_delinearize: Fix suspicious calloc() call - netlink: Avoid memleak in error path of netlink_delinearize_obj() - netlink: Avoid memleak in error path of netlink_delinearize_table() - netlink: Avoid memleak in error path of netlink_delinearize_chain() - netlink: Avoid memleak in error path of netlink_delinearize_set() - json: Drop pointless assignment in exthdr_expr_json() - evaluate: Mark fall through case in str2hooknum() - parser_json: Fix for memleak in tcp option error path - parser_bison: Fix for implicit declaration of isalnum - main: fix nft --help output fallout from 719e4427 - tests: add icmp/6 test where dependency should be left alone - payload: check icmp dependency before removing previous icmp expression Resolves: rhbz#1933117, rhbz#1938823, rhbz#1931790, rhbz#1964987, rhbz#1971600
166 lines
4.5 KiB
Diff
166 lines
4.5 KiB
Diff
From bcd7ef679ca12700970e84fdd8ed38d8f58557ea Mon Sep 17 00:00:00 2001
|
|
From: Florian Westphal <fw@strlen.de>
|
|
Date: Mon, 1 Feb 2021 22:44:25 +0100
|
|
Subject: [PATCH] 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 <fw@strlen.de>
|
|
(cherry picked from commit 3eb14fd93093c5e084d3ac1c4b0171cf80fb264f)
|
|
|
|
Conflicts:
|
|
tests/py/ip/icmp.t.json
|
|
tests/py/ip6/icmpv6.t.json
|
|
-> Context change it seems.
|
|
|
|
Signed-off-by: Phil Sutter <psutter@redhat.com>
|
|
---
|
|
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 | 44 +++++++++++++++++++++++++++++++
|
|
tests/py/ip6/icmpv6.t.payload.ip6 | 7 +++++
|
|
6 files changed, 89 insertions(+)
|
|
|
|
diff --git a/tests/py/ip/icmp.t b/tests/py/ip/icmp.t
|
|
index c22b55eb1e3f4..11f3662e2b027 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 965eb10be9edf..2ea5b1a3e5e02 100644
|
|
--- a/tests/py/ip/icmp.t.json
|
|
+++ b/tests/py/ip/icmp.t.json
|
|
@@ -1424,3 +1424,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 d75d12a061252..97464a08379e3 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 8b411a8bf4392..d07c34bd939dc 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 f6cfbf172f562..be2f1b462bb18 100644
|
|
--- a/tests/py/ip6/icmpv6.t.json
|
|
+++ b/tests/py/ip6/icmpv6.t.json
|
|
@@ -1300,3 +1300,47 @@
|
|
}
|
|
]
|
|
|
|
+# icmpv6 type packet-too-big icmpv6 mtu 1280
|
|
+[
|
|
+ {
|
|
+ "match": {
|
|
+ "left": {
|
|
+ "payload": {
|
|
+ "field": "mtu",
|
|
+ "protocol": "icmpv6"
|
|
+ }
|
|
+ },
|
|
+ "op": "==",
|
|
+ "right": 1280
|
|
+ }
|
|
+ }
|
|
+]
|
|
+
|
|
+# 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 171b7eade6d3e..448779d16922c 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 ]
|
|
+
|
|
--
|
|
2.31.1
|
|
|