summaryrefslogtreecommitdiffstats
path: root/tests/py/inet/map.t.payload
diff options
context:
space:
mode:
authorFlorian Westphal <fw@strlen.de>2017-05-25 09:14:58 +0200
committerFlorian Westphal <fw@strlen.de>2017-05-25 09:16:38 +0200
commitbb6a7f201a817652dd2c795539236c9319a23ad7 (patch)
tree1d56b003ba39a44ef0acca8f777389b7eccad394 /tests/py/inet/map.t.payload
parent1e6ae0e42bdc161d178277c336886e18c259caf5 (diff)
parent5f46b18745d18c486e959c93da649c18c8b10fe0 (diff)
Merge branch 'meta_l4_dependency'
Currently nft inserts different types of dependencies for l4 protocols, depending on the family. For inet, nft inserts 'meta l4proto' to e.g. check for tcp, for ip, nft uses 'ip protocol'. Both are fine. The ip6 family however uses 'ip6 nexthdr', and thats a problem because e.g. tcp dport 22 will not match packets that use ipv6 extension headers. The series switches both ipv6 and ipv4 to use meta l4 instead so ipv6 will always check the last transport header value. We could ignore ip as only ipv6 uses extension headers. However, switching ipv4 as well makes things a bit simpler because nft then creates the same l4 dependency for all families. Acked-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'tests/py/inet/map.t.payload')
-rw-r--r--tests/py/inet/map.t.payload23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/py/inet/map.t.payload b/tests/py/inet/map.t.payload
new file mode 100644
index 00000000..16225cbd
--- /dev/null
+++ b/tests/py/inet/map.t.payload
@@ -0,0 +1,23 @@
+# mark set ip saddr map { 10.2.3.2 : 0x0000002a, 10.2.3.1 : 0x00000017}
+__map%d test-inet b
+__map%d test-inet 0
+ element 0203020a : 0000002a 0 [end] element 0103020a : 00000017 0 [end]
+inet test-inet input
+ [ meta load nfproto => reg 1 ]
+ [ cmp eq reg 1 0x00000002 ]
+ [ payload load 4b @ network header + 12 => reg 1 ]
+ [ lookup reg 1 set __map%d dreg 1 ]
+ [ meta set mark with reg 1 ]
+
+# mark set ip hdrlength map { 5 : 0x00000017, 4 : 0x00000001}
+__map%d test-inet b
+__map%d test-inet 0
+ element 00000005 : 00000017 0 [end] element 00000004 : 00000001 0 [end]
+inet test-inet input
+ [ meta load nfproto => reg 1 ]
+ [ cmp eq reg 1 0x00000002 ]
+ [ payload load 1b @ network header + 0 => reg 1 ]
+ [ bitwise reg 1 = (reg=1 & 0x0000000f ) ^ 0x00000000 ]
+ [ lookup reg 1 set __map%d dreg 1 ]
+ [ meta set mark with reg 1 ]
+