summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorFlorian Westphal <fw@strlen.de>2018-08-29 11:37:40 +0200
committerFlorian Westphal <fw@strlen.de>2018-08-29 23:53:54 +0200
commitbb594473acd532aee6a268a6b27fd529ac71d4b5 (patch)
tree45b2c657c37b7a94baa20a5f3562b94042b7f72f /tests
parent92029c1282958aad13eb8602c67b73caf2a08a09 (diff)
src: tproxy: relax family restrictions
evaluation step currently prohibits tproxy ip to 1.2.3.4 in ip family, and tproxy ip6 to dead::1 in ip6. This seems an arbitrary limitation, just accept this. The current restriction would make json output support harder than needed, as the tproxy expression generated from json path would have to special-case the table its currently in, rather than just using the family attribute in the json output. We obviously still reject the family in case it mismatches the table family (e.g., can't use ip address in ip6 table). Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'tests')
-rw-r--r--tests/py/ip/tproxy.t4
-rw-r--r--tests/py/ip/tproxy.t.payload14
-rw-r--r--tests/py/ip6/tproxy.t6
-rw-r--r--tests/py/ip6/tproxy.t.payload11
4 files changed, 20 insertions, 15 deletions
diff --git a/tests/py/ip/tproxy.t b/tests/py/ip/tproxy.t
index 6e959f47..dbd8f5e9 100644
--- a/tests/py/ip/tproxy.t
+++ b/tests/py/ip/tproxy.t
@@ -9,6 +9,6 @@ tproxy to :50080;fail
meta l4proto 17 tproxy to 192.0.2.1;ok
meta l4proto 6 tproxy to 192.0.2.1:50080;ok
ip protocol 6 tproxy to :50080;ok
-meta l4proto 17 tproxy ip to 192.0.2.1;fail
-meta l4proto 6 tproxy ip to 192.0.2.1:50080;fail
+meta l4proto 17 tproxy ip to 192.0.2.1;ok;meta l4proto 17 tproxy to 192.0.2.1
+meta l4proto 6 tproxy ip to 192.0.2.1:50080;ok;meta l4proto 6 tproxy to 192.0.2.1:50080
ip protocol 6 tproxy ip to :50080;fail
diff --git a/tests/py/ip/tproxy.t.payload b/tests/py/ip/tproxy.t.payload
index 9a899a8d..035651f4 100644
--- a/tests/py/ip/tproxy.t.payload
+++ b/tests/py/ip/tproxy.t.payload
@@ -20,3 +20,17 @@ ip x y
[ immediate reg 1 0x0000a0c3 ]
[ tproxy ip port reg 1 ]
+# meta l4proto 17 tproxy ip to 192.0.2.1
+ip x y
+ [ meta load l4proto => reg 1 ]
+ [ cmp eq reg 1 0x00000011 ]
+ [ immediate reg 1 0x010200c0 ]
+ [ tproxy ip addr reg 1 ]
+
+# meta l4proto 6 tproxy ip to 192.0.2.1:50080
+ip x y
+ [ meta load l4proto => reg 1 ]
+ [ cmp eq reg 1 0x00000006 ]
+ [ immediate reg 1 0x010200c0 ]
+ [ immediate reg 2 0x0000a0c3 ]
+ [ tproxy ip addr reg 1 port reg 2 ]
diff --git a/tests/py/ip6/tproxy.t b/tests/py/ip6/tproxy.t
index dcd2bd8f..4e48d81f 100644
--- a/tests/py/ip6/tproxy.t
+++ b/tests/py/ip6/tproxy.t
@@ -9,8 +9,6 @@ tproxy to :50080;fail
meta l4proto 6 tproxy to [2001:db8::1];ok
meta l4proto 17 tproxy to [2001:db8::1]:50080;ok
meta l4proto 6 tproxy to :50080;ok
-meta l4proto 6 tproxy ip6 to [2001:db8::1];fail
-meta l4proto 17 tproxy ip6 to [2001:db8::1]:50080;fail
+meta l4proto 6 tproxy ip6 to [2001:db8::1];ok;meta l4proto 6 tproxy to [2001:db8::1]
+meta l4proto 17 tproxy ip6 to [2001:db8::1]:50080;ok;meta l4proto 17 tproxy to [2001:db8::1]:50080
meta l4proto 6 tproxy ip6 to :50080;fail
-
-
diff --git a/tests/py/ip6/tproxy.t.payload b/tests/py/ip6/tproxy.t.payload
index d03beee4..c78c8a1d 100644
--- a/tests/py/ip6/tproxy.t.payload
+++ b/tests/py/ip6/tproxy.t.payload
@@ -20,14 +20,14 @@ ip6 x y
[ immediate reg 1 0x0000a0c3 ]
[ tproxy ip6 port reg 1 ]
-# meta l4proto 6 tproxy to [2001:db8::1]
+# meta l4proto 6 tproxy ip6 to [2001:db8::1]
ip6 x y
[ meta load l4proto => reg 1 ]
[ cmp eq reg 1 0x00000006 ]
[ immediate reg 1 0xb80d0120 0x00000000 0x00000000 0x01000000 ]
[ tproxy ip6 addr reg 1 ]
-# meta l4proto 17 tproxy to [2001:db8::1]:50080
+# meta l4proto 17 tproxy ip6 to [2001:db8::1]:50080
ip6 x y
[ meta load l4proto => reg 1 ]
[ cmp eq reg 1 0x00000011 ]
@@ -35,10 +35,3 @@ ip6 x y
[ immediate reg 2 0x0000a0c3 ]
[ tproxy ip6 addr reg 1 port reg 2 ]
-# meta l4proto 6 tproxy to :50080
-ip6 x y
- [ meta load l4proto => reg 1 ]
- [ cmp eq reg 1 0x00000006 ]
- [ immediate reg 1 0x0000a0c3 ]
- [ tproxy ip6 port reg 1 ]
-