]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
tests: py: add bit-shift tests.
authorJeremy Sowden <jeremy@azazel.net>
Mon, 3 Feb 2020 11:20:23 +0000 (11:20 +0000)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 7 Feb 2020 15:57:30 +0000 (16:57 +0100)
Add a couple of Python test-cases for setting the CT mark to a bitwise
expression derived from the packet mark and vice versa.

Signed-off-by: Jeremy Sowden <jeremy@azazel.net>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
tests/py/any/ct.t
tests/py/any/ct.t.json
tests/py/any/ct.t.payload
tests/py/inet/meta.t
tests/py/inet/meta.t.json
tests/py/inet/meta.t.payload

index ebc086445567e7b2bc3c8a60c97fbf1f4bae36d2..f65d275987cd3cc1e24a2dc181ef0e5d5754bc4d 100644 (file)
@@ -57,6 +57,7 @@ ct mark set 0x11333 and 0x11;ok;ct mark set 0x00000011
 ct mark set 0x12 or 0x11;ok;ct mark set 0x00000013
 ct mark set 0x11;ok;ct mark set 0x00000011
 ct mark set mark;ok;ct mark set meta mark
+ct mark set (meta mark | 0x10) << 8;ok;ct mark set (meta mark | 0x00000010) << 8
 ct mark set mark map { 1 : 10, 2 : 20, 3 : 30 };ok;ct mark set meta mark map { 0x00000003 : 0x0000001e, 0x00000002 : 0x00000014, 0x00000001 : 0x0000000a}
 
 ct mark set {0x11333, 0x11};fail
index 8d56db2aaedb686422d18965645155f458a32415..59ac27c3055c9d4e2282b8e896cd42a6ed76c3ac 100644 (file)
     }
 ]
 
+# ct mark set (meta mark | 0x10) << 8
+[
+    {
+        "mangle": {
+            "key": {
+                "ct": {
+                    "key": "mark"
+                }
+            },
+            "value": {
+                "<<": [
+                    {
+                        "|": [
+                            {
+                                "meta": {
+                                    "key": "mark"
+                                }
+                            },
+                            16
+                        ]
+                    },
+                    8
+                ]
+            }
+        }
+    }
+]
+
 # ct mark set mark map { 1 : 10, 2 : 20, 3 : 30 }
 [
     {
index bdc6a70e3672e0ade2b0cd4a25c95b9b9cc1e2ca..6615912578044d1d21f5ac3f39c2a57eaec2b1df 100644 (file)
@@ -329,6 +329,27 @@ ip test-ip4 output
   [ meta load mark => reg 1 ]
   [ ct set mark with reg 1 ]
 
+# ct mark set (meta mark | 0x10) << 8
+ip test-ip4 output
+  [ meta load mark => reg 1 ]
+  [ bitwise reg 1 = (reg=1 & 0xffffffef ) ^ 0x00000010 ]
+  [ bitwise reg 1 = ( reg 1 << 0x00000008 ) ]
+  [ ct set mark with reg 1 ]
+
+# ct mark set (meta mark | 0x10) << 8
+ip6 test-ip6 output
+  [ meta load mark => reg 1 ]
+  [ bitwise reg 1 = (reg=1 & 0xffffffef ) ^ 0x00000010 ]
+  [ bitwise reg 1 = ( reg 1 << 0x00000008 ) ]
+  [ ct set mark with reg 1 ]
+
+# ct mark set (meta mark | 0x10) << 8
+inet test-inet output
+  [ meta load mark => reg 1 ]
+  [ bitwise reg 1 = (reg=1 & 0xffffffef ) ^ 0x00000010 ]
+  [ bitwise reg 1 = ( reg 1 << 0x00000008 ) ]
+  [ ct set mark with reg 1 ]
+
 # ct mark set mark map { 1 : 10, 2 : 20, 3 : 30 }
 __map%d test-ip4 b
 __map%d test-ip4 0
index df32332f062185cacf93755e2ca9d27e9eb9bb3b..3638898b5dbb4e5fd247408f9999fad49a419087 100644 (file)
@@ -16,3 +16,4 @@ meta ipsec exists;ok
 meta secpath missing;ok;meta ipsec missing
 meta ibrname "br0";fail
 meta obrname "br0";fail
+meta mark set ct mark >> 8;ok
index 5501f0bec6edaf4c15e71d83111e17851961d261..5c0e7d2e0e4293dc937379d5df127e4b143f4d2e 100644 (file)
     }
 ]
 
+# meta mark set ct mark >> 8
+[
+    {
+        "mangle": {
+            "key": {
+                "meta": {
+                    "key": "mark"
+                }
+            },
+            "value": {
+                ">>": [
+                    {
+                        "ct": {
+                            "key": "mark"
+                        }
+                    },
+                    8
+                ]
+            }
+        }
+    }
+]
index d7ff7e2d41fa742327800a84c09c7eeb8a051a38..6ccf6d24210aba4e05b8f44dff44580e66d6e015 100644 (file)
@@ -73,3 +73,9 @@ inet test-inet input
 inet test-inet input
   [ meta load secpath => reg 1 ]
   [ cmp eq reg 1 0x00000000 ]
+
+# meta mark set ct mark >> 8
+inet test-inet input
+  [ ct load mark => reg 1 ]
+  [ bitwise reg 1 = ( reg 1 >> 0x00000008 ) ]
+  [ meta set mark with reg 1 ]