]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
Revert "tests: py: remove single-value-anon-set test cases"
authorPablo Neira Ayuso <pablo@netfilter.org>
Fri, 24 May 2019 18:54:37 +0000 (20:54 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 24 May 2019 19:14:12 +0000 (21:14 +0200)
This reverts commit d03bcb669c0c645190df9bd166f53380bcac7862.

68 files changed:
tests/py/any/ct.t
tests/py/any/ct.t.json
tests/py/any/ct.t.payload
tests/py/any/meta.t
tests/py/any/meta.t.json
tests/py/any/meta.t.payload
tests/py/arp/arp.t
tests/py/arp/arp.t.json
tests/py/arp/arp.t.payload
tests/py/inet/ah.t
tests/py/inet/ah.t.json
tests/py/inet/ah.t.payload
tests/py/inet/comp.t
tests/py/inet/comp.t.json
tests/py/inet/comp.t.payload
tests/py/inet/dccp.t
tests/py/inet/dccp.t.json
tests/py/inet/dccp.t.payload
tests/py/inet/esp.t
tests/py/inet/esp.t.json
tests/py/inet/esp.t.payload
tests/py/inet/sctp.t
tests/py/inet/sctp.t.json
tests/py/inet/sctp.t.payload
tests/py/inet/tcp.t
tests/py/inet/tcp.t.json
tests/py/inet/tcp.t.payload
tests/py/inet/udp.t
tests/py/inet/udp.t.json
tests/py/inet/udp.t.payload
tests/py/inet/udplite.t
tests/py/inet/udplite.t.json
tests/py/inet/udplite.t.payload
tests/py/ip/icmp.t
tests/py/ip/icmp.t.json
tests/py/ip/icmp.t.payload.ip
tests/py/ip/ip.t
tests/py/ip/ip.t.json
tests/py/ip/ip.t.payload.bridge
tests/py/ip/ip.t.payload.inet
tests/py/ip/ip.t.payload.netdev
tests/py/ip6/dst.t
tests/py/ip6/dst.t.json
tests/py/ip6/dst.t.payload.inet
tests/py/ip6/dst.t.payload.ip6
tests/py/ip6/frag.t
tests/py/ip6/frag.t.json
tests/py/ip6/frag.t.payload.inet
tests/py/ip6/frag.t.payload.ip6
tests/py/ip6/hbh.t
tests/py/ip6/hbh.t.json
tests/py/ip6/hbh.t.payload.inet
tests/py/ip6/hbh.t.payload.ip6
tests/py/ip6/icmpv6.t
tests/py/ip6/icmpv6.t.json
tests/py/ip6/icmpv6.t.payload.ip6
tests/py/ip6/ip6.t
tests/py/ip6/ip6.t.json
tests/py/ip6/ip6.t.payload.inet
tests/py/ip6/ip6.t.payload.ip6
tests/py/ip6/mh.t
tests/py/ip6/mh.t.json
tests/py/ip6/mh.t.payload.inet
tests/py/ip6/mh.t.payload.ip6
tests/py/ip6/rt.t
tests/py/ip6/rt.t.json
tests/py/ip6/rt.t.payload.inet
tests/py/ip6/rt.t.payload.ip6

index 0a31ac55572daeae8728fd5d937e141899d91b8d..b5c13524408f3a2026f0259025165232ad3e5434 100644 (file)
@@ -73,6 +73,8 @@ ct expiration 33-45;ok;ct expiration 33s-45s
 ct expiration != 33-45;ok;ct expiration != 33s-45s
 ct expiration {33, 55, 67, 88};ok;ct expiration { 1m7s, 33s, 55s, 1m28s}
 ct expiration != {33, 55, 67, 88};ok;ct expiration != { 1m7s, 33s, 55s, 1m28s}
+ct expiration {33-55};ok;ct expiration { 33s-55s}
+ct expiration != {33-55};ok;ct expiration != { 33s-55s}
 
 ct helper "ftp";ok
 ct helper "12345678901234567";fail
index 64fdd0fa08e4fc0e96a78f8917a89175bd9a5dd2..45e48f224957fa7c312ac6dac55164055b14e4ca 100644 (file)
     }
 ]
 
+# ct expiration {33-55}
+[
+    {
+        "match": {
+            "left": {
+                "ct": {
+                    "key": "expiration"
+                }
+            },
+            "op": "==",
+            "right": {
+                "set": [
+                    {
+                        "range": [ 33, 55 ]
+                    }
+                ]
+            }
+        }
+    }
+]
+
+# ct expiration != {33-55}
+[
+    {
+        "match": {
+            "left": {
+                "ct": {
+                    "key": "expiration"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    {
+                        "range": [ 33, 55 ]
+                    }
+                ]
+            }
+        }
+    }
+]
+
 # ct helper "ftp"
 [
     {
index 672b242666b7115e05a23381a93decbcbd25716a..9338466d5df415d5146a2ef363e44ede07e3775c 100644 (file)
@@ -283,6 +283,24 @@ ip test-ip4 output
   [ ct load expiration => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ct expiration {33-55}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element e8800000  : 0 [end]     element d9d60000  : 1 [end]
+ip test-ip4 output
+  [ ct load expiration => reg 1 ]
+  [ byteorder reg 1 = hton(reg 1, 4, 4) ]
+  [ lookup reg 1 set __set%d ]
+
+# ct expiration != {33-55}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element e8800000  : 0 [end]     element d9d60000  : 1 [end]
+ip test-ip4 output
+  [ ct load expiration => reg 1 ]
+  [ byteorder reg 1 = hton(reg 1, 4, 4) ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ct helper "ftp"
 ip test-ip4 output
   [ ct load helper => reg 1 ]
index 3d3ddad94aa30aebc5d88a9c35b01f550a1afcdf..d69b8b4eaf0bf5e38942eab31b2bd9ad16a69cf9 100644 (file)
@@ -17,6 +17,8 @@ meta length { 33, 55, 67, 88};ok
 meta length { 33-55, 67-88};ok
 meta length { 33-55, 56-88, 100-120};ok;meta length { 33-88, 100-120}
 meta length != { 33, 55, 67, 88};ok
+meta length { 33-55};ok
+meta length != { 33-55};ok
 
 meta protocol { ip, arp, ip6, vlan };ok;meta protocol { ip6, ip, vlan, arp}
 meta protocol != {ip, arp, ip6, vlan};ok
@@ -29,6 +31,7 @@ meta l4proto 33-45;ok
 meta l4proto != 33-45;ok
 meta l4proto { 33, 55, 67, 88};ok;meta l4proto { 33, 55, 67, 88}
 meta l4proto != { 33, 55, 67, 88};ok
+meta l4proto { 33-55};ok
 meta l4proto != { 33-55};ok
 
 meta priority root;ok
@@ -79,6 +82,7 @@ meta iiftype ppp;ok
 meta oif "lo" accept;ok;oif "lo" accept
 meta oif != "lo" accept;ok;oif != "lo" accept
 meta oif {"lo"} accept;ok;oif {"lo"} accept
+meta oif != {"lo"} accept;ok;oif != {"lo"} accept
 
 meta oifname "dummy0";ok;oifname "dummy0"
 meta oifname != "dummy0";ok;oifname != "dummy0"
@@ -101,6 +105,8 @@ meta skuid gt 3000 accept;ok;meta skuid > 3000 accept
 meta skuid eq 3000 accept;ok;meta skuid 3000 accept
 meta skuid 3001-3005 accept;ok;meta skuid 3001-3005 accept
 meta skuid != 2001-2005 accept;ok;meta skuid != 2001-2005 accept
+meta skuid { 2001-2005} accept;ok;meta skuid { 2001-2005} accept
+meta skuid != { 2001-2005} accept;ok;meta skuid != { 2001-2005} accept
 
 meta skgid {"bin", "root", "daemon"} accept;ok;meta skgid { 0, 1, 2} accept
 meta skgid != {"bin", "root", "daemon"} accept;ok;meta skgid != { 1, 0, 2} accept
@@ -111,6 +117,8 @@ meta skgid gt 3000 accept;ok;meta skgid > 3000 accept
 meta skgid eq 3000 accept;ok;meta skgid 3000 accept
 meta skgid 2001-2005 accept;ok;meta skgid 2001-2005 accept
 meta skgid != 2001-2005 accept;ok;meta skgid != 2001-2005 accept
+meta skgid { 2001-2005} accept;ok;meta skgid { 2001-2005} accept
+meta skgid != { 2001-2005} accept;ok;meta skgid != { 2001-2005} accept
 
 # BUG: meta nftrace 2 and meta nftrace 1
 # $ sudo nft add rule ip test input meta nftrace 2
@@ -165,6 +173,8 @@ meta iifgroup 0;ok;iifgroup "default"
 meta iifgroup != 0;ok;iifgroup != "default"
 meta iifgroup "default";ok;iifgroup "default"
 meta iifgroup != "default";ok;iifgroup != "default"
+meta iifgroup {"default"};ok;iifgroup {"default"}
+meta iifgroup != {"default"};ok;iifgroup != {"default"}
 meta iifgroup { 11,33};ok;iifgroup { 11,33}
 meta iifgroup {11-33};ok;iifgroup {11-33}
 meta iifgroup != { 11,33};ok;iifgroup != { 11,33}
@@ -173,7 +183,12 @@ meta oifgroup 0;ok;oifgroup "default"
 meta oifgroup != 0;ok;oifgroup != "default"
 meta oifgroup "default";ok;oifgroup "default"
 meta oifgroup != "default";ok;oifgroup != "default"
+meta oifgroup {"default"};ok;oifgroup {"default"}
+meta oifgroup != {"default"};ok;oifgroup != {"default"}
 meta oifgroup { 11,33};ok;oifgroup { 11,33}
+meta oifgroup {11-33};ok;oifgroup {11-33}
+meta oifgroup != { 11,33};ok;oifgroup != { 11,33}
+meta oifgroup != {11-33};ok;oifgroup != {11-33}
 
 meta cgroup 1048577;ok;meta cgroup 1048577
 meta cgroup != 1048577;ok;meta cgroup != 1048577
@@ -181,6 +196,8 @@ meta cgroup { 1048577, 1048578 };ok;meta cgroup { 1048577, 1048578}
 meta cgroup != { 1048577, 1048578};ok;meta cgroup != { 1048577, 1048578}
 meta cgroup 1048577-1048578;ok;meta cgroup 1048577-1048578
 meta cgroup != 1048577-1048578;ok;meta cgroup != 1048577-1048578
+meta cgroup {1048577-1048578};ok;meta cgroup { 1048577-1048578}
+meta cgroup != { 1048577-1048578};ok;meta cgroup != { 1048577-1048578}
 
 meta iif . meta oif { "lo" . "lo" };ok;iif . oif { "lo" . "lo" }
 meta iif . meta oif . meta mark { "lo" . "lo" . 0x0000000a };ok;iif . oif . meta mark { "lo" . "lo" . 0x0000000a }
index e4d22fa749b52f23eea4bd24b711ada9982aaa94..2cf91cdae60e826f348d7b47179432c0445ae910 100644 (file)
     }
 ]
 
+# meta length { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "meta": { "key": "length" }
+            },
+            "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# meta length != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "meta": { "key": "length" }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # meta protocol { ip, arp, ip6, vlan }
 [
     {
     }
 ]
 
+# meta l4proto { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "meta": { "key": "l4proto" }
+            },
+            "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # meta l4proto != { 33-55}
 [
     {
     }
 ]
 
+# meta oif != {"lo"} accept
+[
+    {
+        "match": {
+            "left": {
+                "meta": { "key": "oif" }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    "lo"
+                ]
+            }
+        }
+    },
+    {
+        "accept": null
+    }
+]
+
 # meta oifname "dummy0"
 [
     {
     }
 ]
 
+# meta skuid { 2001-2005} accept
+[
+    {
+        "match": {
+            "left": {
+                "meta": { "key": "skuid" }
+            },
+            "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 2001, 2005 ] }
+                ]
+            }
+        }
+    },
+    {
+        "accept": null
+    }
+]
+
+# meta skuid != { 2001-2005} accept
+[
+    {
+        "match": {
+            "left": {
+                "meta": { "key": "skuid" }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 2001, 2005 ] }
+                ]
+            }
+        }
+    },
+    {
+        "accept": null
+    }
+]
+
 # meta skgid {"bin", "root", "daemon"} accept
 [
     {
     }
 ]
 
+# meta skgid { 2001-2005} accept
+[
+    {
+        "match": {
+            "left": {
+                "meta": { "key": "skgid" }
+            },
+            "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 2001, 2005 ] }
+                ]
+            }
+        }
+    },
+    {
+        "accept": null
+    }
+]
+
+# meta skgid != { 2001-2005} accept
+[
+    {
+        "match": {
+            "left": {
+                "meta": { "key": "skgid" }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 2001, 2005 ] }
+                ]
+            }
+        }
+    },
+    {
+        "accept": null
+    }
+]
+
 # meta mark set 0xffffffc8 xor 0x16
 [
     {
     }
 ]
 
+# meta oifgroup {11-33}
+[
+    {
+        "match": {
+            "left": {
+                "meta": { "key": "oifgroup" }
+            },
+            "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 11, 33 ] }
+                ]
+            }
+        }
+    }
+]
+
 # meta oifgroup != { 11,33}
 [
     {
index 2fb3524306632df858b66fb8dac8d1a1187238c9..b32770f508e7cfca8869dbaa02e99e9e90d7f8c2 100644 (file)
@@ -34,6 +34,15 @@ ip test-ip4 input
   [ meta load len => reg 1 ]
   [ lookup reg 1 set __set%d ]
 
+# meta length { 33-55}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 21000000  : 0 [end]     element 38000000  : 1 [end]
+ip test-ip4 input
+  [ meta load len => reg 1 ]
+  [ byteorder reg 1 = hton(reg 1, 4, 4) ]
+  [ lookup reg 1 set __set%d ]
+
 # meta length { 33-55, 67-88}
 __set%d test-ip4 7
 __set%d test-ip4 0
@@ -60,6 +69,15 @@ ip test-ip4 input
   [ meta load len => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# meta length != { 33-55}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 21000000  : 0 [end]     element 38000000  : 1 [end]
+ip test-ip4 input
+  [ meta load len => reg 1 ]
+  [ byteorder reg 1 = hton(reg 1, 4, 4) ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # meta protocol { ip, arp, ip6, vlan }
 __set%d test-ip4 3
 __set%d test-ip4 0
@@ -125,6 +143,15 @@ ip test-ip4 input
   [ meta load l4proto => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# meta l4proto { 33-55}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip test-ip4 input
+  [ meta load l4proto => reg 1 ]
+  [ byteorder reg 1 = hton(reg 1, 2, 1) ]
+  [ lookup reg 1 set __set%d ]
+
 # meta l4proto != { 33-55}
 __set%d test-ip4 7
 __set%d test-ip4 0
@@ -293,6 +320,15 @@ ip test-ip4 input
   [ lookup reg 1 set __set%d ]
   [ immediate reg 0 accept ]
 
+# meta oif != {"lo"} accept
+__set%d test-ip4 3
+__set%d test-ip4 0
+       element 00000001  : 0 [end]
+ip test-ip4 input
+  [ meta load oif => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+  [ immediate reg 0 accept ]
+
 # meta oifname "dummy0"
 ip test-ip4 input
   [ meta load oifname => reg 1 ]
@@ -410,6 +446,26 @@ ip test-ip4 input
   [ range neq reg 1 0xd1070000 0xd5070000 ]
   [ immediate reg 0 accept ]
 
+# meta skuid { 2001-2005} accept
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element d1070000  : 0 [end]     element d6070000  : 1 [end]
+ip test-ip4 input
+  [ meta load skuid => reg 1 ]
+  [ byteorder reg 1 = hton(reg 1, 4, 4) ]
+  [ lookup reg 1 set __set%d ]
+  [ immediate reg 0 accept ]
+
+# meta skuid != { 2001-2005} accept
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element d1070000  : 0 [end]     element d6070000  : 1 [end]
+ip test-ip4 input
+  [ meta load skuid => reg 1 ]
+  [ byteorder reg 1 = hton(reg 1, 4, 4) ]
+  [ lookup reg 1 set __set%d 0x1 ]
+  [ immediate reg 0 accept ]
+
 # meta skgid {"bin", "root", "daemon"} accept
 __set%d test-ip4 3
 __set%d test-ip4 0
@@ -473,6 +529,26 @@ ip test-ip4 input
   [ range neq reg 1 0xd1070000 0xd5070000 ]
   [ immediate reg 0 accept ]
 
+# meta skgid { 2001-2005} accept
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element d1070000  : 0 [end]     element d6070000  : 1 [end]
+ip test-ip4 input
+  [ meta load skgid => reg 1 ]
+  [ byteorder reg 1 = hton(reg 1, 4, 4) ]
+  [ lookup reg 1 set __set%d ]
+  [ immediate reg 0 accept ]
+
+# meta skgid != { 2001-2005} accept
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element d1070000  : 0 [end]     element d6070000  : 1 [end]
+ip test-ip4 input
+  [ meta load skgid => reg 1 ]
+  [ byteorder reg 1 = hton(reg 1, 4, 4) ]
+  [ lookup reg 1 set __set%d 0x1 ]
+  [ immediate reg 0 accept ]
+
 # meta mark set 0xffffffc8 xor 0x16
 ip test-ip4 input
   [ immediate reg 1 0xffffffde ]
@@ -659,6 +735,14 @@ ip test-ip4 input
   [ meta load iifgroup => reg 1 ]
   [ lookup reg 1 set __set%d ]
 
+# meta iifgroup != {"default"}
+__set%d test-ip4 3
+__set%d test-ip4 0
+       element 00000000  : 0 [end]
+ip test-ip4 input
+  [ meta load iifgroup => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # meta iifgroup { 11,33}
 __set%d test-ip4 3
 __set%d test-ip4 0
@@ -713,6 +797,14 @@ ip test-ip4 input
   [ meta load oifgroup => reg 1 ]
   [ cmp neq reg 1 0x00000000 ]
 
+# meta oifgroup {"default"}
+__set%d test-ip4 3
+__set%d test-ip4 0
+       element 00000000  : 0 [end]
+ip test-ip4 input
+  [ meta load oifgroup => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
 # meta oifgroup != {"default"}
 __set%d test-ip4 3
 __set%d test-ip4 0
@@ -738,6 +830,23 @@ ip test-ip4 input
   [ byteorder reg 1 = hton(reg 1, 4, 4) ]
   [ lookup reg 1 set __set%d ]
 
+# meta oifgroup != { 11,33}
+__set%d test-ip4 3
+__set%d test-ip4 0
+       element 0000000b  : 0 [end]     element 00000021  : 0 [end]
+ip test-ip4 input
+  [ meta load oifgroup => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
+# meta oifgroup != {11-33}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 0b000000  : 0 [end]     element 22000000  : 1 [end]
+ip test-ip4 input
+  [ meta load oifgroup => reg 1 ]
+  [ byteorder reg 1 = hton(reg 1, 4, 4) ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # meta cgroup 1048577
 ip test-ip4 input
   [ meta load cgroup => reg 1 ]
index 12afacf13f9ae68c8f553497f098cbbfee3eb67b..d62cc546f24d5a814b561162ad90313549872fbf 100644 (file)
@@ -13,6 +13,8 @@ arp htype 33-45;ok
 arp htype != 33-45;ok
 arp htype { 33, 55, 67, 88};ok
 arp htype != { 33, 55, 67, 88};ok
+arp htype { 33-55};ok
+arp htype != { 33-55};ok
 
 arp ptype 0x0800;ok;arp ptype ip
 
@@ -22,6 +24,8 @@ arp hlen 33-45;ok
 arp hlen != 33-45;ok
 arp hlen { 33, 55, 67, 88};ok
 arp hlen != { 33, 55, 67, 88};ok
+arp hlen { 33-55};ok
+arp hlen != { 33-55};ok
 
 arp plen 22;ok
 arp plen != 233;ok
@@ -29,6 +33,8 @@ arp plen 33-45;ok
 arp plen != 33-45;ok
 arp plen { 33, 55, 67, 88};ok
 arp plen != { 33, 55, 67, 88};ok
+arp plen { 33-55};ok
+arp plen != {33-55};ok
 
 arp operation {nak, inreply, inrequest, rreply, rrequest, reply, request};ok
 arp operation != {nak, inreply, inrequest, rreply, rrequest, reply, request};ok
index b1ff4cd5527e629f280f5851691d046b81b337be..4b0439e6edd58ac58d9edf332fdc7e3f26927781 100644 (file)
     }
 ]
 
+# arp htype { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "htype",
+                    "protocol": "arp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# arp htype != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "htype",
+                    "protocol": "arp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # arp ptype 0x0800
 [
     {
     }
 ]
 
+# arp hlen { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "hlen",
+                    "protocol": "arp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# arp hlen != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "hlen",
+                    "protocol": "arp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # arp plen 22
 [
     {
     }
 ]
 
+# arp plen { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "plen",
+                    "protocol": "arp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# arp plen != {33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "plen",
+                    "protocol": "arp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # arp operation {nak, inreply, inrequest, rreply, rrequest, reply, request}
 [
     {
index 524a5406612ffee2c647554455cebe981dd804e7..33e7341716d198c6fd71c4fdce9f3e93c3381144 100644 (file)
@@ -45,6 +45,22 @@ arp test-arp input
   [ payload load 2b @ network header + 0 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# arp htype { 33-55}
+__set%d test-arp 7
+__set%d test-arp 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+arp test-arp input
+  [ payload load 2b @ network header + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# arp htype != { 33-55}
+__set%d test-arp 7
+__set%d test-arp 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+arp test-arp input
+  [ payload load 2b @ network header + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # arp ptype 0x0800
 arp test-arp input
   [ payload load 2b @ network header + 2 => reg 1 ]
@@ -87,6 +103,22 @@ arp test-arp input
   [ payload load 1b @ network header + 4 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# arp hlen { 33-55}
+__set%d test-arp 7
+__set%d test-arp 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+arp test-arp input
+  [ payload load 1b @ network header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# arp hlen != { 33-55}
+__set%d test-arp 7
+__set%d test-arp 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+arp test-arp input
+  [ payload load 1b @ network header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # arp plen 22
 arp test-arp input
   [ payload load 1b @ network header + 5 => reg 1 ]
@@ -124,6 +156,22 @@ arp test-arp input
   [ payload load 1b @ network header + 5 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# arp plen { 33-55}
+__set%d test-arp 7
+__set%d test-arp 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+arp test-arp input
+  [ payload load 1b @ network header + 5 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# arp plen != {33-55}
+__set%d test-arp 7
+__set%d test-arp 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+arp test-arp input
+  [ payload load 1b @ network header + 5 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # arp operation {nak, inreply, inrequest, rreply, rrequest, reply, request}
 __set%d test-arp 3
 __set%d test-arp 0
index 31791cd285b8088543a5a6b5b070cbcf9507105d..8544d9dd3f47de05c01b63df8210e4030e117e82 100644 (file)
@@ -22,6 +22,8 @@
 
 ah hdrlength 11-23;ok
 ah hdrlength != 11-23;ok
+ah hdrlength { 11-23};ok
+ah hdrlength != { 11-23};ok
 ah hdrlength {11, 23, 44 };ok
 ah hdrlength != {11, 23, 44 };ok
 
@@ -31,6 +33,8 @@ ah reserved 33-45;ok
 ah reserved != 33-45;ok
 ah reserved {23, 100};ok
 ah reserved != {23, 100};ok
+ah reserved { 33-55};ok
+ah reserved != { 33-55};ok
 
 ah spi 111;ok
 ah spi != 111;ok
@@ -38,11 +42,15 @@ ah spi 111-222;ok
 ah spi != 111-222;ok
 ah spi {111, 122};ok
 ah spi != {111, 122};ok
+ah spi { 111-122};ok
+ah spi != { 111-122};ok
 
 # sequence
 ah sequence 123;ok
 ah sequence != 123;ok
 ah sequence {23, 25, 33};ok
 ah sequence != {23, 25, 33};ok
+ah sequence { 23-33};ok
+ah sequence != { 23-33};ok
 ah sequence 23-33;ok
 ah sequence != 23-33;ok
index 217280b6c367abb9a6b550ceab640405d6f016c1..4efdb0dd1395ebe703e3994d767d45dbc9cdcef0 100644 (file)
     }
 ]
 
+# ah hdrlength { 11-23}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "hdrlength",
+                    "protocol": "ah"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 11, 23 ] }
+                ]
+            }
+        }
+    }
+]
+
+# ah hdrlength != { 11-23}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "hdrlength",
+                    "protocol": "ah"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 11, 23 ] }
+                ]
+            }
+        }
+    }
+]
+
 # ah hdrlength {11, 23, 44 }
 [
     {
     }
 ]
 
+# ah reserved { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "reserved",
+                    "protocol": "ah"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# ah reserved != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "reserved",
+                    "protocol": "ah"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # ah spi 111
 [
     {
     }
 ]
 
+# ah spi { 111-122}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "spi",
+                    "protocol": "ah"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 111, 122 ] }
+                ]
+            }
+        }
+    }
+]
+
+# ah spi != { 111-122}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "spi",
+                    "protocol": "ah"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 111, 122 ] }
+                ]
+            }
+        }
+    }
+]
+
 # ah sequence 123
 [
     {
     }
 ]
 
+# ah sequence { 23-33}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sequence",
+                    "protocol": "ah"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 23, 33 ] }
+                ]
+            }
+        }
+    }
+]
+
+# ah sequence != { 23-33}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sequence",
+                    "protocol": "ah"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 23, 33 ] }
+                ]
+            }
+        }
+    }
+]
+
 # ah sequence 23-33
 [
     {
index 7ddd72d57363d099cbab88835d602db803ab557a..5ec5fba184faab3aef6168a5b4803021b9bdadee 100644 (file)
@@ -13,6 +13,26 @@ inet test-inet input
   [ payload load 1b @ transport header + 1 => reg 1 ]
   [ range neq reg 1 0x0000000b 0x00000017 ]
 
+# ah hdrlength { 11-23}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 0000000b  : 0 [end]     element 00000018  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000033 ]
+  [ payload load 1b @ transport header + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ah hdrlength != { 11-23}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 0000000b  : 0 [end]     element 00000018  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000033 ]
+  [ payload load 1b @ transport header + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ah hdrlength {11, 23, 44 }
 __set%d test-inet 3
 __set%d test-inet 0
@@ -82,6 +102,26 @@ inet test-inet input
   [ payload load 2b @ transport header + 2 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ah reserved { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000033 ]
+  [ payload load 2b @ transport header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ah reserved != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000033 ]
+  [ payload load 2b @ transport header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ah spi 111
 inet test-inet input
   [ meta load l4proto => reg 1 ]
@@ -131,6 +171,26 @@ inet test-inet input
   [ payload load 4b @ transport header + 4 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ah spi { 111-122}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 6f000000  : 0 [end]     element 7b000000  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000033 ]
+  [ payload load 4b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ah spi != { 111-122}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 6f000000  : 0 [end]     element 7b000000  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000033 ]
+  [ payload load 4b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ah sequence 123
 inet test-inet input
   [ meta load l4proto => reg 1 ]
@@ -165,6 +225,26 @@ inet test-inet input
   [ payload load 4b @ transport header + 8 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ah sequence { 23-33}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 17000000  : 0 [end]     element 22000000  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000033 ]
+  [ payload load 4b @ transport header + 8 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ah sequence != { 23-33}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 17000000  : 0 [end]     element 22000000  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000033 ]
+  [ payload load 4b @ transport header + 8 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ah sequence 23-33
 inet test-inet input
   [ meta load l4proto => reg 1 ]
index ec9924ff1c71b0f290c9b0783b1a57804e562049..0df1813900ab8d4e117ae96880ba8f48dbb39356 100644 (file)
@@ -20,6 +20,8 @@ comp flags 0x33-0x45;ok
 comp flags != 0x33-0x45;ok
 comp flags {0x33, 0x55, 0x67, 0x88};ok
 comp flags != {0x33, 0x55, 0x67, 0x88};ok
+comp flags { 0x33-0x55};ok
+comp flags != { 0x33-0x55};ok
 
 comp cpi 22;ok
 comp cpi != 233;ok
@@ -27,3 +29,5 @@ comp cpi 33-45;ok
 comp cpi != 33-45;ok
 comp cpi {33, 55, 67, 88};ok
 comp cpi != {33, 55, 67, 88};ok
+comp cpi { 33-55};ok
+comp cpi != { 33-55};ok
index 48ec5d214caf17b5a2acbec1a21bd1e8cb4b6855..b9b24f98c7abf551c7ace0161a5a59f14fde5a68 100644 (file)
     }
 ]
 
+# comp flags { 0x33-0x55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "flags",
+                    "protocol": "comp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ "0x33", "0x55" ] }
+                ]
+            }
+        }
+    }
+]
+
+# comp flags != { 0x33-0x55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "flags",
+                    "protocol": "comp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ "0x33", "0x55" ] }
+                ]
+            }
+        }
+    }
+]
+
 # comp cpi 22
 [
     {
         }
     }
 ]
+
+# comp cpi { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "cpi",
+                    "protocol": "comp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# comp cpi != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "cpi",
+                    "protocol": "comp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
index 024e47cd99ed17eb816c5cf0dd01118060b5efd2..dec38aea6c5aab011266a6a687478960ecb647a2 100644 (file)
@@ -54,6 +54,26 @@ inet test-inet input
   [ payload load 1b @ transport header + 1 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# comp flags { 0x33-0x55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000033  : 0 [end]     element 00000056  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x0000006c ]
+  [ payload load 1b @ transport header + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# comp flags != { 0x33-0x55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000033  : 0 [end]     element 00000056  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x0000006c ]
+  [ payload load 1b @ transport header + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # comp cpi 22
 inet test-inet input
   [ meta load l4proto => reg 1 ]
@@ -103,3 +123,23 @@ inet test-inet input
   [ payload load 2b @ transport header + 2 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# comp cpi { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x0000006c ]
+  [ payload load 2b @ transport header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# comp cpi != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x0000006c ]
+  [ payload load 2b @ transport header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
index 1bfee853f0cbb3a2ee3db433c0683583a7510152..f0dd788b8b36e014eb0da8bb9c91d18520116eac 100644 (file)
@@ -11,13 +11,18 @@ dccp sport != 21-35;ok
 dccp sport {23, 24, 25};ok
 dccp sport != {23, 24, 25};ok
 
+dccp sport { 20-50 };ok
 dccp sport ftp-data - re-mail-ck;ok;dccp sport 20-50
 dccp sport 20-50;ok
+dccp sport { 20-50};ok
+dccp sport != { 20-50};ok
 
 # dccp dport 21-35;ok
 # dccp dport != 21-35;ok
 dccp dport {23, 24, 25};ok
 dccp dport != {23, 24, 25};ok
+dccp dport { 20-50};ok
+dccp dport != { 20-50};ok
 
 dccp type {request, response, data, ack, dataack, closereq, close, reset, sync, syncack};ok
 dccp type != {request, response, data, ack, dataack, closereq, close, reset, sync, syncack};ok
index 76df530e036d74e9c60661159b605f80f2b0ccde..9260fbc5ee00f036f961a0306f4cc2150418940d 100644 (file)
     }
 ]
 
+# dccp sport { 20-50 }
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sport",
+                    "protocol": "dccp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 20, 50 ] }
+                ]
+            }
+        }
+    }
+]
+
 # dccp sport ftp-data - re-mail-ck
 [
     {
     }
 ]
 
+# dccp sport { 20-50}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sport",
+                    "protocol": "dccp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 20, 50 ] }
+                ]
+            }
+        }
+    }
+]
+
+# dccp sport != { 20-50}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sport",
+                    "protocol": "dccp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 20, 50 ] }
+                ]
+            }
+        }
+    }
+]
+
 # dccp dport {23, 24, 25}
 [
     {
     }
 ]
 
+# dccp dport { 20-50}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "dport",
+                    "protocol": "dccp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 20, 50 ] }
+                ]
+            }
+        }
+    }
+]
+
+# dccp dport != { 20-50}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "dport",
+                    "protocol": "dccp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 20, 50 ] }
+                ]
+            }
+        }
+    }
+]
+
 # dccp type {request, response, data, ack, dataack, closereq, close, reset, sync, syncack}
 [
     {
index 2303f0a7a6acf4b6c8533334c7a764eccf0e8f42..b5a48f403259b91945260c405b147d51d9c57aa3 100644 (file)
@@ -33,6 +33,16 @@ inet test-inet input
   [ payload load 2b @ transport header + 0 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# dccp sport { 20-50 }
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00001400  : 0 [end]     element 00003300  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000021 ]
+  [ payload load 2b @ transport header + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
 # dccp sport ftp-data - re-mail-ck
 inet test-inet input
   [ meta load l4proto => reg 1 ]
@@ -49,6 +59,26 @@ inet test-inet input
   [ cmp gte reg 1 0x00001400 ]
   [ cmp lte reg 1 0x00003200 ]
 
+# dccp sport { 20-50}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00001400  : 0 [end]     element 00003300  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000021 ]
+  [ payload load 2b @ transport header + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# dccp sport != { 20-50}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00001400  : 0 [end]     element 00003300  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000021 ]
+  [ payload load 2b @ transport header + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # dccp dport {23, 24, 25}
 __set%d test-ip4 3
 __set%d test-ip4 0
@@ -69,6 +99,26 @@ inet test-inet input
   [ payload load 2b @ transport header + 2 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# dccp dport { 20-50}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00001400  : 0 [end]     element 00003300  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000021 ]
+  [ payload load 2b @ transport header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# dccp dport != { 20-50}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00001400  : 0 [end]     element 00003300  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000021 ]
+  [ payload load 2b @ transport header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # dccp type {request, response, data, ack, dataack, closereq, close, reset, sync, syncack}
 __set%d test-inet 3
 __set%d test-inet 0
index 58e9f884724b95f87ba899d0a984ee1da445aa14..e79eeada71849d30ea9a40eabd1b2d3f278d6948 100644 (file)
@@ -12,9 +12,13 @@ esp spi 111-222;ok
 esp spi != 111-222;ok
 esp spi { 100, 102};ok
 esp spi != { 100, 102};ok
+esp spi { 100-102};ok
+- esp spi {100-102};ok
 
 esp sequence 22;ok
 esp sequence 22-24;ok
 esp sequence != 22-24;ok
 esp sequence { 22, 24};ok
 esp sequence != { 22, 24};ok
+esp sequence { 22-25};ok
+esp sequence != { 22-25};ok
index d887f1af38253cbbd61383eb2c00455e09ef6f37..84ea9eeaf2fdfe03e3c5fc5d4ce01efc199f76ed 100644 (file)
     }
 ]
 
+# esp spi { 100-102}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "spi",
+                    "protocol": "esp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 100, 102 ] }
+                ]
+            }
+        }
+    }
+]
+
 # esp sequence 22
 [
     {
         }
     }
 ]
+
+# esp sequence { 22-25}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sequence",
+                    "protocol": "esp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 22, 25 ] }
+                ]
+            }
+        }
+    }
+]
+
+# esp sequence != { 22-25}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sequence",
+                    "protocol": "esp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 22, 25 ] }
+                ]
+            }
+        }
+    }
+]
+
index 0353b056bb66d6463a4a1e18a3ef2934e89f8f7d..ad68530be19aa3681560d5e521271be861538a09 100644 (file)
@@ -47,6 +47,26 @@ inet test-inet input
   [ payload load 4b @ transport header + 0 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# esp spi { 100-102}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 64000000  : 0 [end]     element 67000000  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000032 ]
+  [ payload load 4b @ transport header + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# esp spi != { 100-102}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 64000000  : 0 [end]     element 67000000  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000032 ]
+  [ payload load 4b @ transport header + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # esp sequence 22
 inet test-inet input
   [ meta load l4proto => reg 1 ]
@@ -89,3 +109,23 @@ inet test-inet input
   [ payload load 4b @ transport header + 4 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# esp sequence { 22-25}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 16000000  : 0 [end]     element 1a000000  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000032 ]
+  [ payload load 4b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# esp sequence != { 22-25}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 16000000  : 0 [end]     element 1a000000  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000032 ]
+  [ payload load 4b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
index fc6050b15aa4c2e9e436a21122ec0263eda0c5ea..5188b57e650856811ed8085f5c33ab0ce5912f92 100644 (file)
@@ -12,6 +12,8 @@ sctp sport 23-44;ok
 sctp sport != 23-44;ok
 sctp sport { 23, 24, 25};ok
 sctp sport != { 23, 24, 25};ok
+sctp sport { 23-44};ok
+sctp sport != { 23-44};ok
 
 sctp dport 23;ok
 sctp dport != 23;ok
@@ -19,6 +21,8 @@ sctp dport 23-44;ok
 sctp dport != 23-44;ok
 sctp dport { 23, 24, 25};ok
 sctp dport != { 23, 24, 25};ok
+sctp dport { 23-44};ok
+sctp dport != { 23-44};ok
 
 sctp checksum 1111;ok
 sctp checksum != 11;ok
@@ -26,6 +30,8 @@ sctp checksum 21-333;ok
 sctp checksum != 32-111;ok
 sctp checksum { 22, 33, 44};ok
 sctp checksum != { 22, 33, 44};ok
+sctp checksum { 22-44};ok
+sctp checksum != { 22-44};ok
 
 sctp vtag 22;ok
 sctp vtag != 233;ok
@@ -33,3 +39,5 @@ sctp vtag 33-45;ok
 sctp vtag != 33-45;ok
 sctp vtag {33, 55, 67, 88};ok
 sctp vtag != {33, 55, 67, 88};ok
+sctp vtag { 33-55};ok
+sctp vtag != { 33-55};ok
index b4a2dc081b937c20b3c358959621a6840b5f3beb..2684b0349a71b17c461425a51da42eee04c04967 100644 (file)
     }
 ]
 
+# sctp sport { 23-44}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sport",
+                    "protocol": "sctp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 23, 44 ] }
+                ]
+            }
+        }
+    }
+]
+
+# sctp sport != { 23-44}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sport",
+                    "protocol": "sctp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 23, 44 ] }
+                ]
+            }
+        }
+    }
+]
+
 # sctp dport 23
 [
     {
     }
 ]
 
+# sctp dport { 23-44}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "dport",
+                    "protocol": "sctp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 23, 44 ] }
+                ]
+            }
+        }
+    }
+]
+
+# sctp dport != { 23-44}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "dport",
+                    "protocol": "sctp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 23, 44 ] }
+                ]
+            }
+        }
+    }
+]
+
 # sctp checksum 1111
 [
     {
     }
 ]
 
+# sctp checksum { 22-44}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "checksum",
+                    "protocol": "sctp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 22, 44 ] }
+                ]
+            }
+        }
+    }
+]
+
+# sctp checksum != { 22-44}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "checksum",
+                    "protocol": "sctp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 22, 44 ] }
+                ]
+            }
+        }
+    }
+]
+
 # sctp vtag 22
 [
     {
         }
     }
 ]
+
+# sctp vtag { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "vtag",
+                    "protocol": "sctp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# sctp vtag != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "vtag",
+                    "protocol": "sctp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
index cd24c2784d4b68ab1668334c8048724210beb076..ecfcc7252a066fceb37fe3cb284af3dfad0b6604 100644 (file)
@@ -47,6 +47,26 @@ inet test-inet input
   [ payload load 2b @ transport header + 0 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# sctp sport { 23-44}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00001700  : 0 [end]     element 00002d00  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000084 ]
+  [ payload load 2b @ transport header + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# sctp sport != { 23-44}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00001700  : 0 [end]     element 00002d00  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000084 ]
+  [ payload load 2b @ transport header + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # sctp dport 23
 inet test-inet input
   [ meta load l4proto => reg 1 ]
@@ -96,6 +116,26 @@ inet test-inet input
   [ payload load 2b @ transport header + 2 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# sctp dport { 23-44}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00001700  : 0 [end]     element 00002d00  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000084 ]
+  [ payload load 2b @ transport header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# sctp dport != { 23-44}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00001700  : 0 [end]     element 00002d00  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000084 ]
+  [ payload load 2b @ transport header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # sctp checksum 1111
 inet test-inet input
   [ meta load l4proto => reg 1 ]
@@ -145,6 +185,26 @@ inet test-inet input
   [ payload load 4b @ transport header + 8 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# sctp checksum { 22-44}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 16000000  : 0 [end]     element 2d000000  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000084 ]
+  [ payload load 4b @ transport header + 8 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# sctp checksum != { 22-44}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 16000000  : 0 [end]     element 2d000000  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000084 ]
+  [ payload load 4b @ transport header + 8 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # sctp vtag 22
 inet test-inet input
   [ meta load l4proto => reg 1 ]
@@ -194,3 +254,23 @@ inet test-inet input
   [ payload load 4b @ transport header + 4 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# sctp vtag { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 21000000  : 0 [end]     element 38000000  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000084 ]
+  [ payload load 4b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# sctp vtag != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 21000000  : 0 [end]     element 38000000  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000084 ]
+  [ payload load 4b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
index 2be745e9fe9e534e819e9adb2e0f6e2684175c92..e0a83e2b4152f3c534e426971145bbc889048991 100644 (file)
@@ -14,6 +14,8 @@ tcp dport 33-45;ok
 tcp dport != 33-45;ok
 tcp dport { 33, 55, 67, 88};ok
 tcp dport != { 33, 55, 67, 88};ok
+tcp dport { 33-55};ok
+tcp dport != { 33-55};ok
 tcp dport {telnet, http, https} accept;ok;tcp dport { 443, 23, 80} accept
 tcp dport vmap { 22 : accept, 23 : drop };ok
 tcp dport vmap { 25:accept, 28:drop };ok
@@ -28,6 +30,8 @@ tcp sport 33-45;ok
 tcp sport != 33-45;ok
 tcp sport { 33, 55, 67, 88};ok
 tcp sport != { 33, 55, 67, 88};ok
+tcp sport { 33-55};ok
+tcp sport != { 33-55};ok
 tcp sport vmap { 25:accept, 28:drop };ok
 
 tcp sport 8080 drop;ok
@@ -43,6 +47,8 @@ tcp sequence 33-45;ok
 tcp sequence != 33-45;ok
 tcp sequence { 33, 55, 67, 88};ok
 tcp sequence != { 33, 55, 67, 88};ok
+tcp sequence { 33-55};ok
+tcp sequence != { 33-55};ok
 
 tcp ackseq 42949672 drop;ok
 tcp ackseq 22;ok
@@ -51,6 +57,8 @@ tcp ackseq 33-45;ok
 tcp ackseq != 33-45;ok
 tcp ackseq { 33, 55, 67, 88};ok
 tcp ackseq != { 33, 55, 67, 88};ok
+tcp ackseq { 33-55};ok
+tcp ackseq != { 33-55};ok
 
 - tcp doff 22;ok
 - tcp doff != 233;ok
@@ -58,6 +66,8 @@ tcp ackseq != { 33, 55, 67, 88};ok
 - tcp doff != 33-45;ok
 - tcp doff { 33, 55, 67, 88};ok
 - tcp doff != { 33, 55, 67, 88};ok
+- tcp doff { 33-55};ok
+- tcp doff != { 33-55};ok
 
 # BUG reserved
 # BUG: It is accepted but it is not shown then. tcp reserver
@@ -77,6 +87,8 @@ tcp window 33-45;ok
 tcp window != 33-45;ok
 tcp window { 33, 55, 67, 88};ok
 tcp window != { 33, 55, 67, 88};ok
+tcp window { 33-55};ok
+tcp window != { 33-55};ok
 
 tcp checksum 22;ok
 tcp checksum != 233;ok
@@ -84,6 +96,8 @@ tcp checksum 33-45;ok
 tcp checksum != 33-45;ok
 tcp checksum { 33, 55, 67, 88};ok
 tcp checksum != { 33, 55, 67, 88};ok
+tcp checksum { 33-55};ok
+tcp checksum != { 33-55};ok
 
 tcp urgptr 1234 accept;ok
 tcp urgptr 22;ok
@@ -92,5 +106,7 @@ tcp urgptr 33-45;ok
 tcp urgptr != 33-45;ok
 tcp urgptr { 33, 55, 67, 88};ok
 tcp urgptr != { 33, 55, 67, 88};ok
+tcp urgptr { 33-55};ok
+tcp urgptr != { 33-55};ok
 
 tcp doff 8;ok
index c0fe0cf0c95ac8ddd2278dad0a75dbbf6d3685d0..babe5920892592ce8b336ee36eb1b1a5965151a6 100644 (file)
     }
 ]
 
+# tcp dport { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "dport",
+                    "protocol": "tcp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# tcp dport != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "dport",
+                    "protocol": "tcp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # tcp dport {telnet, http, https} accept
 [
     {
     }
 ]
 
+# tcp sport { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sport",
+                    "protocol": "tcp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# tcp sport != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sport",
+                    "protocol": "tcp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # tcp sport vmap { 25:accept, 28:drop }
 [
     {
     }
 ]
 
+# tcp sequence { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sequence",
+                    "protocol": "tcp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# tcp sequence != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sequence",
+                    "protocol": "tcp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # tcp ackseq 42949672 drop
 [
     {
     }
 ]
 
+# tcp ackseq { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "ackseq",
+                    "protocol": "tcp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# tcp ackseq != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "ackseq",
+                    "protocol": "tcp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # tcp flags { fin, syn, rst, psh, ack, urg, ecn, cwr} drop
 [
     {
     }
 ]
 
+# tcp window { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "window",
+                    "protocol": "tcp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# tcp window != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "window",
+                    "protocol": "tcp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # tcp checksum 22
 [
     {
     }
 ]
 
+# tcp checksum { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "checksum",
+                    "protocol": "tcp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# tcp checksum != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "checksum",
+                    "protocol": "tcp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # tcp urgptr 1234 accept
 [
     {
     }
 ]
 
+# tcp urgptr { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "urgptr",
+                    "protocol": "tcp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# tcp urgptr != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "urgptr",
+                    "protocol": "tcp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # tcp doff 8
 [
     {
index d6779e37defa56be48c21171a0aa95b50414f689..55f1bc2eff87037f9b91c0c82210d8d955e58499 100644 (file)
@@ -47,6 +47,26 @@ inet test-inet input
   [ payload load 2b @ transport header + 2 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# tcp dport { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000006 ]
+  [ payload load 2b @ transport header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# tcp dport != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000006 ]
+  [ payload load 2b @ transport header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # tcp dport {telnet, http, https} accept
 __set%d test-inet 3
 __set%d test-inet 0
@@ -147,6 +167,26 @@ inet test-inet input
   [ payload load 2b @ transport header + 0 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# tcp sport { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000006 ]
+  [ payload load 2b @ transport header + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# tcp sport != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000006 ]
+  [ payload load 2b @ transport header + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # tcp sport vmap { 25:accept, 28:drop }
 __map%d test-inet b
 __map%d test-inet 0
@@ -253,6 +293,26 @@ inet test-inet input
   [ payload load 4b @ transport header + 4 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# tcp sequence { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 21000000  : 0 [end]     element 38000000  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000006 ]
+  [ payload load 4b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# tcp sequence != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 21000000  : 0 [end]     element 38000000  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000006 ]
+  [ payload load 4b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # tcp ackseq 42949672 drop
 inet test-inet input
   [ meta load l4proto => reg 1 ]
@@ -592,6 +652,26 @@ inet test-inet input
   [ payload load 2b @ transport header + 18 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# tcp urgptr { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000006 ]
+  [ payload load 2b @ transport header + 18 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# tcp urgptr != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000006 ]
+  [ payload load 2b @ transport header + 18 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # tcp doff 8
 inet test-inet input
   [ meta load l4proto => reg 1 ]
index c434f2edffb1d7c3dff87b6ec09445942fc6109d..4e3eaa5105dcc564270cc4c87b62d9d8a90d4d87 100644 (file)
@@ -12,6 +12,8 @@ udp sport 50-70 accept;ok
 udp sport != 50-60 accept;ok
 udp sport { 49, 50} drop;ok
 udp sport != { 50, 60} accept;ok
+udp sport { 12-40};ok
+udp sport != { 13-24};ok
 
 udp dport set {1, 2, 3};fail
 
@@ -21,6 +23,8 @@ udp dport 70-75 accept;ok
 udp dport != 50-60 accept;ok
 udp dport { 49, 50} drop;ok
 udp dport != { 50, 60} accept;ok
+udp dport { 70-75} accept;ok
+udp dport != { 50-60} accept;ok
 
 udp length 6666;ok
 udp length != 6666;ok
@@ -28,6 +32,8 @@ udp length 50-65 accept;ok
 udp length != 50-65 accept;ok
 udp length { 50, 65} accept;ok
 udp length != { 50, 65} accept;ok
+udp length { 35-50};ok
+udp length != { 35-50};ok
 
 udp checksum 6666 drop;ok
 udp checksum != { 444, 555} accept;ok
@@ -38,6 +44,8 @@ udp checksum 33-45;ok
 udp checksum != 33-45;ok
 udp checksum { 33, 55, 67, 88};ok
 udp checksum != { 33, 55, 67, 88};ok
+udp checksum { 33-55};ok
+udp checksum != { 33-55};ok
 
 # limit impact to lo
 iif "lo" udp checksum set 0;ok
index 665998ecd3a0bfffc76aafc82c87e6f23e0f6d4e..f8826640834135795beb993abceb623cc12670b8 100644 (file)
     }
 ]
 
+# udp sport { 12-40}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sport",
+                    "protocol": "udp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 12, 40 ] }
+                ]
+            }
+        }
+    }
+]
+
+# udp sport != { 13-24}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sport",
+                    "protocol": "udp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 13, 24 ] }
+                ]
+            }
+        }
+    }
+]
+
 # udp dport 80 accept
 [
     {
     }
 ]
 
+# udp dport { 70-75} accept
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "dport",
+                    "protocol": "udp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 70, 75 ] }
+                ]
+            }
+        }
+    },
+    {
+        "accept": null
+    }
+]
+
+# udp dport != { 50-60} accept
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "dport",
+                    "protocol": "udp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 50, 60 ] }
+                ]
+            }
+        }
+    },
+    {
+        "accept": null
+    }
+]
+
 # udp length 6666
 [
     {
     }
 ]
 
+# udp length { 35-50}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "length",
+                    "protocol": "udp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 35, 50 ] }
+                ]
+            }
+        }
+    }
+]
+
+# udp length != { 35-50}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "length",
+                    "protocol": "udp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 35, 50 ] }
+                ]
+            }
+        }
+    }
+]
+
 # udp checksum 6666 drop
 [
     {
     }
 ]
 
+# udp checksum { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "checksum",
+                    "protocol": "udp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# udp checksum != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "checksum",
+                    "protocol": "udp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # iif "lo" udp checksum set 0
 [
     {
index e6beda7f61fdce49277fb4e64b9099bcfa2c489e..d91eb784ee96be9213f3a03831cbb88f4b9db647 100644 (file)
@@ -53,6 +53,26 @@ inet test-inet input
   [ lookup reg 1 set __set%d 0x1 ]
   [ immediate reg 0 accept ]
 
+# udp sport { 12-40}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000c00  : 0 [end]     element 00002900  : 1 [end]
+inet test-inet input 
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000011 ]
+  [ payload load 2b @ transport header + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# udp sport != { 13-24}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000d00  : 0 [end]     element 00001900  : 1 [end]
+inet test-inet input 
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000011 ]
+  [ payload load 2b @ transport header + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # udp dport 80 accept
 inet test-inet input 
   [ meta load l4proto => reg 1 ]
@@ -108,6 +128,28 @@ inet test-inet input
   [ lookup reg 1 set __set%d 0x1 ]
   [ immediate reg 0 accept ]
 
+# udp dport { 70-75} accept
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00004600  : 0 [end]     element 00004c00  : 1 [end]
+inet test-inet input 
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000011 ]
+  [ payload load 2b @ transport header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+  [ immediate reg 0 accept ]
+
+# udp dport != { 50-60} accept
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00003200  : 0 [end]     element 00003d00  : 1 [end]
+inet test-inet input 
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000011 ]
+  [ payload load 2b @ transport header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+  [ immediate reg 0 accept ]
+
 # udp length 6666
 inet test-inet input 
   [ meta load l4proto => reg 1 ]
@@ -161,6 +203,26 @@ inet test-inet input
   [ lookup reg 1 set __set%d 0x1 ]
   [ immediate reg 0 accept ]
 
+# udp length { 35-50}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002300  : 0 [end]     element 00003300  : 1 [end]
+inet test-inet input 
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000011 ]
+  [ payload load 2b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# udp length != { 35-50}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002300  : 0 [end]     element 00003300  : 1 [end]
+inet test-inet input 
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000011 ]
+  [ payload load 2b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # udp checksum 6666 drop
 inet test-inet input 
   [ meta load l4proto => reg 1 ]
@@ -229,6 +291,26 @@ inet test-inet input
   [ payload load 2b @ transport header + 6 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# udp checksum { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input 
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000011 ]
+  [ payload load 2b @ transport header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# udp checksum != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input 
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000011 ]
+  [ payload load 2b @ transport header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # iif "lo" udp checksum set 0
 inet test-inet input
   [ meta load iif => reg 1 ]
index a8fdc8eae72ce2e6032706cb84a445d2a8a549d9..7c22acb977f3ed71541e8ddc22a699ca9fb8a3a6 100644 (file)
@@ -12,6 +12,8 @@ udplite sport 50-70 accept;ok
 udplite sport != 50-60 accept;ok
 udplite sport { 49, 50} drop;ok
 udplite sport != { 49, 50} accept;ok
+udplite sport { 12-40};ok
+udplite sport != { 12-40};ok
 
 udplite dport 80 accept;ok
 udplite dport != 60 accept;ok
@@ -19,6 +21,8 @@ udplite dport 70-75 accept;ok
 udplite dport != 50-60 accept;ok
 udplite dport { 49, 50} drop;ok
 udplite dport != { 49, 50} accept;ok
+udplite dport { 70-75} accept;ok
+udplite dport != { 70-75} accept;ok
 
 - udplite csumcov 6666;ok
 - udplite csumcov != 6666;ok
@@ -26,6 +30,8 @@ udplite dport != { 49, 50} accept;ok
 - udplite csumcov != 50-65 accept;ok
 - udplite csumcov { 50, 65} accept;ok
 - udplite csumcov != { 50, 65} accept;ok
+- udplite csumcov { 35-50};ok
+- udplite csumcov != { 35-50};ok
 
 udplite checksum 6666 drop;ok
 udplite checksum != { 444, 555} accept;ok
@@ -35,3 +41,5 @@ udplite checksum 33-45;ok
 udplite checksum != 33-45;ok
 udplite checksum { 33, 55, 67, 88};ok
 udplite checksum != { 33, 55, 67, 88};ok
+udplite checksum { 33-55};ok
+udplite checksum != { 33-55};ok
index 1bd4b2766a26a964bd3ba93113cc5b172ce57ee6..f56bee47fe030fde532042b795dd62b4d17d98f0 100644 (file)
     }
 ]
 
+# udplite sport { 12-40}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sport",
+                    "protocol": "udplite"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 12, 40 ] }
+                ]
+            }
+        }
+    }
+]
+
+# udplite sport != { 12-40}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sport",
+                    "protocol": "udplite"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 12, 40 ] }
+                ]
+            }
+        }
+    }
+]
+
 # udplite dport 80 accept
 [
     {
     }
 ]
 
+# udplite dport { 70-75} accept
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "dport",
+                    "protocol": "udplite"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 70, 75 ] }
+                ]
+            }
+        }
+    },
+    {
+        "accept": null
+    }
+]
+
+# udplite dport != { 70-75} accept
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "dport",
+                    "protocol": "udplite"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 70, 75 ] }
+                ]
+            }
+        }
+    },
+    {
+        "accept": null
+    }
+]
+
 # udplite checksum 6666 drop
 [
     {
         }
     }
 ]
+
+# udplite checksum { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "checksum",
+                    "protocol": "udplite"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# udplite checksum != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "checksum",
+                    "protocol": "udplite"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
index de9d09edf5eea788edb24c9b0cb01efc9c9bcc60..eb3dc075249d2104831b829f6a8a5b3c0576fbd6 100644 (file)
@@ -53,6 +53,26 @@ inet test-inet input
   [ lookup reg 1 set __set%d 0x1 ]
   [ immediate reg 0 accept ]
 
+# udplite sport { 12-40}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00000c00  : 0 [end]     element 00002900  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000088 ]
+  [ payload load 2b @ transport header + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# udplite sport != { 12-40}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00000c00  : 0 [end]     element 00002900  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000088 ]
+  [ payload load 2b @ transport header + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # udplite dport 80 accept
 inet test-inet input
   [ meta load l4proto => reg 1 ]
@@ -108,6 +128,28 @@ inet test-inet input
   [ lookup reg 1 set __set%d 0x1 ]
   [ immediate reg 0 accept ]
 
+# udplite dport { 70-75} accept
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00004600  : 0 [end]     element 00004c00  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000088 ]
+  [ payload load 2b @ transport header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+  [ immediate reg 0 accept ]
+
+# udplite dport != { 70-75} accept
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00004600  : 0 [end]     element 00004c00  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000088 ]
+  [ payload load 2b @ transport header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+  [ immediate reg 0 accept ]
+
 # udplite checksum 6666 drop
 inet test-inet input
   [ meta load l4proto => reg 1 ]
@@ -176,3 +218,23 @@ inet test-inet input
   [ payload load 2b @ transport header + 6 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# udplite checksum { 33-55}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000088 ]
+  [ payload load 2b @ transport header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# udplite checksum != { 33-55}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000088 ]
+  [ payload load 2b @ transport header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
index 25c2a7d62236e8fdda5fcf21ad61f54aa5750266..6c05fb9d0fbca05fb9545fa3c3a5b13445bbb9d4 100644 (file)
@@ -26,6 +26,8 @@ icmp code 111 accept;ok
 icmp code != 111 accept;ok
 icmp code 33-55;ok
 icmp code != 33-55;ok
+icmp code { 33-55};ok
+icmp code != { 33-55};ok
 icmp code { 2, 4, 54, 33, 56};ok;icmp code { prot-unreachable, 4, 33, 54, 56}
 icmp code != { prot-unreachable, 4, 33, 54, 56};ok
 
@@ -33,6 +35,8 @@ icmp checksum 12343 accept;ok
 icmp checksum != 12343 accept;ok
 icmp checksum 11-343 accept;ok
 icmp checksum != 11-343 accept;ok
+icmp checksum { 11-343} accept;ok
+icmp checksum != { 11-343} accept;ok
 icmp checksum { 1111, 222, 343} accept;ok
 icmp checksum != { 1111, 222, 343} accept;ok
 
@@ -41,6 +45,8 @@ icmp id 22;ok
 icmp id != 233;ok
 icmp id 33-45;ok
 icmp id != 33-45;ok
+icmp id { 33-55};ok
+icmp id != { 33-55};ok
 icmp id { 22, 34, 333};ok
 icmp id != { 22, 34, 333};ok
 
@@ -50,15 +56,21 @@ icmp sequence 33-45;ok
 icmp sequence != 33-45;ok
 icmp sequence { 33, 55, 67, 88};ok
 icmp sequence != { 33, 55, 67, 88};ok
+icmp sequence { 33-55};ok
+icmp sequence != { 33-55};ok
 
 icmp mtu 33;ok
 icmp mtu 22-33;ok
+icmp mtu { 22-33};ok
+icmp mtu != { 22-33};ok
 icmp mtu 22;ok
 icmp mtu != 233;ok
 icmp mtu 33-45;ok
 icmp mtu != 33-45;ok
 icmp mtu { 33, 55, 67, 88};ok
 icmp mtu != { 33, 55, 67, 88};ok
+icmp mtu { 33-55};ok
+icmp mtu != { 33-55};ok
 
 icmp gateway 22;ok
 icmp gateway != 233;ok
@@ -66,5 +78,7 @@ icmp gateway 33-45;ok
 icmp gateway != 33-45;ok
 icmp gateway { 33, 55, 67, 88};ok
 icmp gateway != { 33, 55, 67, 88};ok
+icmp gateway { 33-55};ok
+icmp gateway != { 33-55};ok
 icmp gateway != 34;ok
 icmp gateway != { 333, 334};ok
index ed136cdf9cb9801f1111731f4e70545b4978bbfc..4e17274587791e2f881130fdc2aaed8c12d4aa3f 100644 (file)
     }
 ]
 
+# icmp code { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "code",
+                    "protocol": "icmp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# icmp code != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "code",
+                    "protocol": "icmp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # icmp code { 2, 4, 54, 33, 56}
 [
     {
     }
 ]
 
+# icmp checksum { 11-343} accept
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "checksum",
+                    "protocol": "icmp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 11, 343 ] }
+                ]
+            }
+        }
+    },
+    {
+        "accept": null
+    }
+]
+
+# icmp checksum != { 11-343} accept
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "checksum",
+                    "protocol": "icmp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 11, 343 ] }
+                ]
+            }
+        }
+    },
+    {
+        "accept": null
+    }
+]
+
 # icmp checksum { 1111, 222, 343} accept
 [
     {
     }
 ]
 
+# icmp id { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "id",
+                    "protocol": "icmp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# icmp id != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "id",
+                    "protocol": "icmp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # icmp id { 22, 34, 333}
 [
     {
     }
 ]
 
+# icmp sequence { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sequence",
+                    "protocol": "icmp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# icmp sequence != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sequence",
+                    "protocol": "icmp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # icmp mtu 33
 [
     {
     }
 ]
 
+# icmp mtu { 22-33}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "mtu",
+                    "protocol": "icmp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 22, 33 ] }
+                ]
+            }
+        }
+    }
+]
+
+# icmp mtu != { 22-33}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "mtu",
+                    "protocol": "icmp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 22, 33 ] }
+                ]
+            }
+        }
+    }
+]
+
 # icmp mtu 22
 [
     {
     }
 ]
 
+# icmp mtu { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "mtu",
+                    "protocol": "icmp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# icmp mtu != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "mtu",
+                    "protocol": "icmp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # icmp gateway 22
 [
     {
     }
 ]
 
+# icmp gateway { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "gateway",
+                    "protocol": "icmp"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# icmp gateway != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "gateway",
+                    "protocol": "icmp"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # icmp gateway != 34
 [
     {
index b16533f501a48ab93cf48df33a0dc610c59c252b..27f222072d5dcace723494327a4c04e5bb92eaba 100644 (file)
@@ -154,6 +154,26 @@ ip test-ip4 input
   [ payload load 1b @ transport header + 1 => reg 1 ]
   [ range neq reg 1 0x00000021 0x00000037 ]
 
+# icmp code { 33-55}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip test-ip4 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000001 ]
+  [ payload load 1b @ transport header + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# icmp code != { 33-55}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip test-ip4 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000001 ]
+  [ payload load 1b @ transport header + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # icmp code { 2, 4, 54, 33, 56}
 __set%d test-ip4 3
 __set%d test-ip4 0
@@ -207,6 +227,28 @@ ip test-ip4 input
   [ range neq reg 1 0x00000b00 0x00005701 ]
   [ immediate reg 0 accept ]
 
+# icmp checksum { 11-343} accept
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00000b00  : 0 [end]     element 00005801  : 1 [end]
+ip test-ip4 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000001 ]
+  [ payload load 2b @ transport header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+  [ immediate reg 0 accept ]
+
+# icmp checksum != { 11-343} accept
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00000b00  : 0 [end]     element 00005801  : 1 [end]
+ip test-ip4 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000001 ]
+  [ payload load 2b @ transport header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+  [ immediate reg 0 accept ]
+
 # icmp checksum { 1111, 222, 343} accept
 __set%d test-ip4 3
 __set%d test-ip4 0
@@ -266,6 +308,26 @@ ip test-ip4 input
   [ payload load 2b @ transport header + 4 => reg 1 ]
   [ range neq reg 1 0x00002100 0x00002d00 ]
 
+# icmp id { 33-55}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+ip test-ip4 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000001 ]
+  [ payload load 2b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# icmp id != { 33-55}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+ip test-ip4 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000001 ]
+  [ payload load 2b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # icmp id { 22, 34, 333}
 __set%d test-ip4 3
 __set%d test-ip4 0
@@ -335,6 +397,26 @@ ip test-ip4 input
   [ payload load 2b @ transport header + 6 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# icmp sequence { 33-55}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+ip test-ip4 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000001 ]
+  [ payload load 2b @ transport header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# icmp sequence != { 33-55}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+ip test-ip4 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000001 ]
+  [ payload load 2b @ transport header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # icmp mtu 33
 ip test-ip4 input
   [ meta load l4proto => reg 1 ]
@@ -350,6 +432,26 @@ ip test-ip4 input
   [ cmp gte reg 1 0x00001600 ]
   [ cmp lte reg 1 0x00002100 ]
 
+# icmp mtu { 22-33}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00001600  : 0 [end]     element 00002200  : 1 [end]
+ip test-ip4 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000001 ]
+  [ payload load 2b @ transport header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# icmp mtu != { 22-33}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00001600  : 0 [end]     element 00002200  : 1 [end]
+ip test-ip4 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000001 ]
+  [ payload load 2b @ transport header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # icmp mtu 22
 ip test-ip4 input
   [ meta load l4proto => reg 1 ]
@@ -399,6 +501,26 @@ ip test-ip4 input
   [ payload load 2b @ transport header + 6 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# icmp mtu { 33-55}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+ip test-ip4 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000001 ]
+  [ payload load 2b @ transport header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# icmp mtu != { 33-55}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+ip test-ip4 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000001 ]
+  [ payload load 2b @ transport header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # icmp gateway 22
 ip test-ip4 input
   [ meta load l4proto => reg 1 ]
@@ -448,6 +570,26 @@ ip test-ip4 input
   [ payload load 4b @ transport header + 4 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# icmp gateway { 33-55}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 21000000  : 0 [end]     element 38000000  : 1 [end]
+ip test-ip4 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000001 ]
+  [ payload load 4b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# icmp gateway != { 33-55}
+__set%d test-ip4 7
+__set%d test-ip4 0
+       element 00000000  : 1 [end]     element 21000000  : 0 [end]     element 38000000  : 1 [end]
+ip test-ip4 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x00000001 ]
+  [ payload load 4b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # icmp gateway != 34
 ip test-ip4 input
   [ meta load l4proto => reg 1 ]
index a667680a9a7b578169973e5d399ebca67be7a76b..0421d01bf6e49f960d3aedb0866927d2562fb99f 100644 (file)
@@ -39,6 +39,8 @@ ip length 333-435;ok
 ip length != 333-453;ok
 ip length { 333, 553, 673, 838};ok
 ip length != { 333, 553, 673, 838};ok
+ip length { 333-535};ok
+ip length != { 333-535};ok
 
 ip id 22;ok
 ip id != 233;ok
@@ -46,6 +48,8 @@ ip id 33-45;ok
 ip id != 33-45;ok
 ip id { 33, 55, 67, 88};ok
 ip id != { 33, 55, 67, 88};ok
+ip id { 33-55};ok
+ip id != { 33-55};ok
 
 ip frag-off 222 accept;ok
 ip frag-off != 233;ok
@@ -53,6 +57,8 @@ ip frag-off 33-45;ok
 ip frag-off != 33-45;ok
 ip frag-off { 33, 55, 67, 88};ok
 ip frag-off != { 33, 55, 67, 88};ok
+ip frag-off { 33-55};ok
+ip frag-off != { 33-55};ok
 
 ip ttl 0 drop;ok
 ip ttl 233;ok
@@ -60,6 +66,8 @@ ip ttl 33-55;ok
 ip ttl != 45-50;ok
 ip ttl {43, 53, 45 };ok
 ip ttl != {43, 53, 45 };ok
+ip ttl { 33-55};ok
+ip ttl != { 33-55};ok
 
 ip protocol tcp;ok;ip protocol 6
 ip protocol != tcp;ok;ip protocol != 6
@@ -76,6 +84,8 @@ ip checksum 33-45;ok
 ip checksum != 33-45;ok
 ip checksum { 33, 55, 67, 88};ok
 ip checksum != { 33, 55, 67, 88};ok
+ip checksum { 33-55};ok
+ip checksum != { 33-55};ok
 
 ip saddr set {192.19.1.2, 191.1.22.1};fail
 
@@ -89,6 +99,8 @@ ip daddr 10.0.0.0-10.255.255.255;ok
 ip daddr 172.16.0.0-172.31.255.255;ok
 ip daddr 192.168.3.1-192.168.4.250;ok
 ip daddr != 192.168.0.1-192.168.0.250;ok
+ip daddr { 192.168.0.1-192.168.0.250};ok
+ip daddr != { 192.168.0.1-192.168.0.250};ok
 ip daddr { 192.168.5.1, 192.168.5.2, 192.168.5.3 } accept;ok
 ip daddr != { 192.168.5.1, 192.168.5.2, 192.168.5.3 } accept;ok
 
index 42f936c163b296fdf0d3680537aaf14251c49b6c..3131ab790c04eb32d3474432bad8ca15ba3dd4c2 100644 (file)
     }
 ]
 
+# ip length { 333-535}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "length",
+                    "protocol": "ip"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 333, 535 ] }
+                ]
+            }
+        }
+    }
+]
+
+# ip length != { 333-535}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "length",
+                    "protocol": "ip"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 333, 535 ] }
+                ]
+            }
+        }
+    }
+]
+
 # ip id 22
 [
     {
     }
 ]
 
+# ip id { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "id",
+                    "protocol": "ip"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# ip id != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "id",
+                    "protocol": "ip"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # ip frag-off 222 accept
 [
     {
     }
 ]
 
+# ip frag-off { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "frag-off",
+                    "protocol": "ip"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# ip frag-off != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "frag-off",
+                    "protocol": "ip"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # ip ttl 0 drop
 [
     {
     }
 ]
 
+# ip ttl { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "ttl",
+                    "protocol": "ip"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# ip ttl != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "ttl",
+                    "protocol": "ip"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # ip protocol tcp
 [
     {
     }
 ]
 
+# ip checksum { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "checksum",
+                    "protocol": "ip"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# ip checksum != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "checksum",
+                    "protocol": "ip"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # ip saddr 192.168.2.0/24
 [
     {
     }
 ]
 
+# ip daddr { 192.168.0.1-192.168.0.250}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "daddr",
+                    "protocol": "ip"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ "192.168.0.1", "192.168.0.250" ] }
+                ]
+            }
+        }
+    }
+]
+
+# ip daddr != { 192.168.0.1-192.168.0.250}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "daddr",
+                    "protocol": "ip"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ "192.168.0.1", "192.168.0.250" ] }
+                ]
+            }
+        }
+    }
+]
+
 # ip daddr { 192.168.5.1, 192.168.5.2, 192.168.5.3 } accept
 [
     {
index f4996fde8dc8805a2c3b419bf894e8e0bdde74c8..ad1d0aa801d556ff51f59b4719481e154f4ece8a 100644 (file)
@@ -113,6 +113,26 @@ bridge test-bridge input
   [ payload load 2b @ network header + 2 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip length { 333-535}
+__set%d test-bridge 7 size 3
+__set%d test-bridge 0
+       element 00000000  : 1 [end]     element 00004d01  : 0 [end]     element 00001802  : 1 [end]
+bridge test-bridge input 
+  [ payload load 2b @ link header + 12 => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 2b @ network header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip length != { 333-535}
+__set%d test-bridge 7 size 3
+__set%d test-bridge 0
+       element 00000000  : 1 [end]     element 00004d01  : 0 [end]     element 00001802  : 1 [end]
+bridge test-bridge input 
+  [ payload load 2b @ link header + 12 => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 2b @ network header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip id 22
 bridge test-bridge input 
   [ payload load 2b @ link header + 12 => reg 1 ]
@@ -162,6 +182,26 @@ bridge test-bridge input
   [ payload load 2b @ network header + 4 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip id { 33-55}
+__set%d test-bridge 7 size 3
+__set%d test-bridge 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+bridge test-bridge input 
+  [ payload load 2b @ link header + 12 => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 2b @ network header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip id != { 33-55}
+__set%d test-bridge 7 size 3
+__set%d test-bridge 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+bridge test-bridge input 
+  [ payload load 2b @ link header + 12 => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 2b @ network header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip frag-off 222 accept
 bridge test-bridge input 
   [ payload load 2b @ link header + 12 => reg 1 ]
@@ -212,6 +252,26 @@ bridge test-bridge input
   [ payload load 2b @ network header + 6 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip frag-off { 33-55}
+__set%d test-bridge 7 size 3
+__set%d test-bridge 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+bridge test-bridge input 
+  [ payload load 2b @ link header + 12 => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 2b @ network header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip frag-off != { 33-55}
+__set%d test-bridge 7 size 3
+__set%d test-bridge 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+bridge test-bridge input 
+  [ payload load 2b @ link header + 12 => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 2b @ network header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip ttl 0 drop
 bridge test-bridge input 
   [ payload load 2b @ link header + 12 => reg 1 ]
@@ -262,6 +322,26 @@ bridge test-bridge input
   [ payload load 1b @ network header + 8 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip ttl { 33-55}
+__set%d test-bridge 7 size 3
+__set%d test-bridge 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+bridge test-bridge input 
+  [ payload load 2b @ link header + 12 => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 1b @ network header + 8 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip ttl != { 33-55}
+__set%d test-bridge 7 size 3
+__set%d test-bridge 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+bridge test-bridge input 
+  [ payload load 2b @ link header + 12 => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 1b @ network header + 8 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip protocol tcp
 bridge test-bridge input 
   [ payload load 2b @ link header + 12 => reg 1 ]
@@ -362,6 +442,26 @@ bridge test-bridge input
   [ payload load 2b @ network header + 10 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip checksum { 33-55}
+__set%d test-bridge 7 size 3
+__set%d test-bridge 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+bridge test-bridge input 
+  [ payload load 2b @ link header + 12 => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 2b @ network header + 10 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip checksum != { 33-55}
+__set%d test-bridge 7 size 3
+__set%d test-bridge 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+bridge test-bridge input 
+  [ payload load 2b @ link header + 12 => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 2b @ network header + 10 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip saddr 192.168.2.0/24
 bridge test-bridge input 
   [ payload load 2b @ link header + 12 => reg 1 ]
@@ -440,6 +540,26 @@ bridge test-bridge input
   [ payload load 4b @ network header + 16 => reg 1 ]
   [ range neq reg 1 0x0100a8c0 0xfa00a8c0 ]
 
+# ip daddr { 192.168.0.1-192.168.0.250}
+__set%d test-bridge 7 size 3
+__set%d test-bridge 0
+       element 00000000  : 1 [end]     element 0100a8c0  : 0 [end]     element fb00a8c0  : 1 [end]
+bridge test-bridge input 
+  [ payload load 2b @ link header + 12 => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 4b @ network header + 16 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip daddr != { 192.168.0.1-192.168.0.250}
+__set%d test-bridge 7 size 3
+__set%d test-bridge 0
+       element 00000000  : 1 [end]     element 0100a8c0  : 0 [end]     element fb00a8c0  : 1 [end]
+bridge test-bridge input 
+  [ payload load 2b @ link header + 12 => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 4b @ network header + 16 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip daddr { 192.168.5.1, 192.168.5.2, 192.168.5.3 } accept
 __set%d test-bridge 3 size 3
 __set%d test-bridge 0
index e68888cbca0d8442e984062428bb638dac90036a..b9cb28a22e7a8bc2bc76c6fbade8add21ddc4394 100644 (file)
@@ -113,6 +113,26 @@ inet test-inet input
   [ payload load 2b @ network header + 2 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip length { 333-535}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00004d01  : 0 [end]     element 00001802  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x00000002 ]
+  [ payload load 2b @ network header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip length != { 333-535}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00004d01  : 0 [end]     element 00001802  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x00000002 ]
+  [ payload load 2b @ network header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip id 22
 inet test-inet input
   [ meta load nfproto => reg 1 ]
@@ -162,6 +182,26 @@ inet test-inet input
   [ payload load 2b @ network header + 4 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip id { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x00000002 ]
+  [ payload load 2b @ network header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip id != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x00000002 ]
+  [ payload load 2b @ network header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip frag-off 222 accept
 inet test-inet input
   [ meta load nfproto => reg 1 ]
@@ -212,6 +252,26 @@ inet test-inet input
   [ payload load 2b @ network header + 6 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip frag-off { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x00000002 ]
+  [ payload load 2b @ network header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip frag-off != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x00000002 ]
+  [ payload load 2b @ network header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip ttl 0 drop
 inet test-inet input
   [ meta load nfproto => reg 1 ]
@@ -262,6 +322,26 @@ inet test-inet input
   [ payload load 1b @ network header + 8 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip ttl { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x00000002 ]
+  [ payload load 1b @ network header + 8 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip ttl != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x00000002 ]
+  [ payload load 1b @ network header + 8 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip protocol tcp
 inet test-inet input
   [ meta load nfproto => reg 1 ]
@@ -362,6 +442,26 @@ inet test-inet input
   [ payload load 2b @ network header + 10 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip checksum { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x00000002 ]
+  [ payload load 2b @ network header + 10 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip checksum != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x00000002 ]
+  [ payload load 2b @ network header + 10 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip saddr 192.168.2.0/24
 inet test-inet input
   [ meta load nfproto => reg 1 ]
@@ -440,6 +540,26 @@ inet test-inet input
   [ payload load 4b @ network header + 16 => reg 1 ]
   [ range neq reg 1 0x0100a8c0 0xfa00a8c0 ]
 
+# ip daddr { 192.168.0.1-192.168.0.250}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 0100a8c0  : 0 [end]     element fb00a8c0  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x00000002 ]
+  [ payload load 4b @ network header + 16 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip daddr != { 192.168.0.1-192.168.0.250}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 0100a8c0  : 0 [end]     element fb00a8c0  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x00000002 ]
+  [ payload load 4b @ network header + 16 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip daddr { 192.168.5.1, 192.168.5.2, 192.168.5.3 } accept
 __set%d test-inet 3
 __set%d test-inet 0
index bab6fd5c8830b8a22f3876a1aa2ce80b01cada6e..588e5ca2a3e30eacc7cb372b7a0ea6de610fdd7a 100644 (file)
@@ -47,6 +47,26 @@ netdev test-netdev ingress
   [ payload load 2b @ network header + 2 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip length { 333-535}
+__set%d test-netdev 7
+__set%d test-netdev 0
+       element 00000000  : 1 [end]     element 00004d01  : 0 [end]     element 00001802  : 1 [end]
+netdev test-netdev ingress 
+  [ meta load protocol => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 2b @ network header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip length != { 333-535}
+__set%d test-netdev 7
+__set%d test-netdev 0
+       element 00000000  : 1 [end]     element 00004d01  : 0 [end]     element 00001802  : 1 [end]
+netdev test-netdev ingress 
+  [ meta load protocol => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 2b @ network header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip id 22
 netdev test-netdev ingress 
   [ meta load protocol => reg 1 ]
@@ -96,6 +116,26 @@ netdev test-netdev ingress
   [ payload load 2b @ network header + 4 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip id { 33-55}
+__set%d test-netdev 7
+__set%d test-netdev 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+netdev test-netdev ingress 
+  [ meta load protocol => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 2b @ network header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip id != { 33-55}
+__set%d test-netdev 7
+__set%d test-netdev 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+netdev test-netdev ingress 
+  [ meta load protocol => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 2b @ network header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip frag-off 222 accept
 netdev test-netdev ingress 
   [ meta load protocol => reg 1 ]
@@ -112,7 +152,7 @@ netdev test-netdev ingress
   [ cmp neq reg 1 0x0000e900 ]
 
 # ip frag-off 33-45
-netdev test-netdev ingress
+netdev test-netdev ingress 
   [ meta load protocol => reg 1 ]
   [ cmp eq reg 1 0x00000008 ]
   [ payload load 2b @ network header + 6 => reg 1 ]
@@ -120,7 +160,7 @@ netdev test-netdev ingress
   [ cmp lte reg 1 0x00002d00 ]
 
 # ip frag-off != 33-45
-netdev test-netdev ingress
+netdev test-netdev ingress 
   [ meta load protocol => reg 1 ]
   [ cmp eq reg 1 0x00000008 ]
   [ payload load 2b @ network header + 6 => reg 1 ]
@@ -146,6 +186,26 @@ netdev test-netdev ingress
   [ payload load 2b @ network header + 6 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip frag-off { 33-55}
+__set%d test-netdev 7
+__set%d test-netdev 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+netdev test-netdev ingress 
+  [ meta load protocol => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 2b @ network header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip frag-off != { 33-55}
+__set%d test-netdev 7
+__set%d test-netdev 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+netdev test-netdev ingress 
+  [ meta load protocol => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 2b @ network header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip ttl 0 drop
 netdev test-netdev ingress 
   [ meta load protocol => reg 1 ]
@@ -189,6 +249,26 @@ netdev test-netdev ingress
   [ payload load 1b @ network header + 8 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip ttl { 33-55}
+__set%d test-netdev 7
+__set%d test-netdev 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+netdev test-netdev ingress 
+  [ meta load protocol => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 1b @ network header + 8 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip ttl != { 33-55}
+__set%d test-netdev 7
+__set%d test-netdev 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+netdev test-netdev ingress 
+  [ meta load protocol => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 1b @ network header + 8 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip protocol { icmp, esp, ah, comp, udp, udplite, tcp, dccp, sctp} accept
 __set%d test-netdev 3
 __set%d test-netdev 0
@@ -275,6 +355,26 @@ netdev test-netdev ingress
   [ payload load 2b @ network header + 10 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip checksum { 33-55}
+__set%d test-netdev 7
+__set%d test-netdev 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+netdev test-netdev ingress 
+  [ meta load protocol => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 2b @ network header + 10 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip checksum != { 33-55}
+__set%d test-netdev 7
+__set%d test-netdev 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+netdev test-netdev ingress 
+  [ meta load protocol => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 2b @ network header + 10 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip saddr 192.168.2.0/24
 netdev test-netdev ingress 
   [ meta load protocol => reg 1 ]
@@ -346,6 +446,26 @@ netdev test-netdev ingress
   [ payload load 4b @ network header + 16 => reg 1 ]
   [ range neq reg 1 0x0100a8c0 0xfa00a8c0 ]
 
+# ip daddr { 192.168.0.1-192.168.0.250}
+__set%d test-netdev 7
+__set%d test-netdev 0
+       element 00000000  : 1 [end]     element 0100a8c0  : 0 [end]     element fb00a8c0  : 1 [end]
+netdev test-netdev ingress 
+  [ meta load protocol => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 4b @ network header + 16 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip daddr != { 192.168.0.1-192.168.0.250}
+__set%d test-netdev 7
+__set%d test-netdev 0
+       element 00000000  : 1 [end]     element 0100a8c0  : 0 [end]     element fb00a8c0  : 1 [end]
+netdev test-netdev ingress 
+  [ meta load protocol => reg 1 ]
+  [ cmp eq reg 1 0x00000008 ]
+  [ payload load 4b @ network header + 16 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip daddr { 192.168.5.1, 192.168.5.2, 192.168.5.3 } accept
 __set%d test-netdev 3
 __set%d test-netdev 0
index 96deac7f6ed6dc9a580988a24f4a68ff1b932831..9e7c554fa57805f83a6441a917d6f7b4f8fe40c3 100644 (file)
@@ -9,6 +9,8 @@ dst nexthdr 33-45;ok
 dst nexthdr != 33-45;ok
 dst nexthdr { 33, 55, 67, 88};ok
 dst nexthdr != { 33, 55, 67, 88};ok
+dst nexthdr { 33-55};ok
+dst nexthdr != { 33-55};ok
 dst nexthdr { udplite, ipcomp, udp, ah, sctp, esp, dccp, tcp, ipv6-icmp};ok;dst nexthdr { 51, 50, 17, 136, 58, 6, 33, 132, 108}
 dst nexthdr != { udplite, ipcomp, udp, ah, sctp, esp, dccp, tcp, ipv6-icmp};ok;dst nexthdr != { 51, 50, 17, 136, 58, 6, 33, 132, 108}
 dst nexthdr icmp;ok;dst nexthdr 1
@@ -20,3 +22,5 @@ dst hdrlength 33-45;ok
 dst hdrlength != 33-45;ok
 dst hdrlength { 33, 55, 67, 88};ok
 dst hdrlength != { 33, 55, 67, 88};ok
+dst hdrlength { 33-55};ok
+dst hdrlength != { 33-55};ok
index e947a76f4f4a90ae838dd2855ea9935e05467265..1373e1778072789d2e9ebabf35568f947d7510f6 100644 (file)
     }
 ]
 
+# dst nexthdr { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "nexthdr",
+                    "name": "dst"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# dst nexthdr != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "nexthdr",
+                    "name": "dst"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # dst nexthdr { udplite, ipcomp, udp, ah, sctp, esp, dccp, tcp, ipv6-icmp}
 [
     {
         }
     }
 ]
+
+# dst hdrlength { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "hdrlength",
+                    "name": "dst"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# dst hdrlength != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "hdrlength",
+                    "name": "dst"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
index ba272dfd5d5abefba8503060f2f0a2dfea637f48..768b4f1d292e666a9a5efb6def3d87df0cefc488 100644 (file)
@@ -47,6 +47,26 @@ inet test-inet input
   [ exthdr load 1b @ 60 + 0 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# dst nexthdr { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 60 + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# dst nexthdr != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 60 + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # dst nexthdr { udplite, ipcomp, udp, ah, sctp, esp, dccp, tcp, ipv6-icmp}
 __set%d test-inet 3
 __set%d test-inet 0
@@ -130,3 +150,23 @@ ip6 test-ip6 input
   [ exthdr load 1b @ 60 + 1 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# dst hdrlength { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 60 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# dst hdrlength != { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 60 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
index badd92456d643e5780ef8cc72c513277e3128664..56afc126cb3011abff39ed4d81e18923dc13c41c 100644 (file)
@@ -35,6 +35,22 @@ ip6 test-ip6 input
   [ exthdr load 1b @ 60 + 0 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# dst nexthdr { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 1b @ 60 + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# dst nexthdr != { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 1b @ 60 + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # dst nexthdr { udplite, ipcomp, udp, ah, sctp, esp, dccp, tcp, ipv6-icmp}
 __set%d test-ip6 3
 __set%d test-ip6 0
@@ -98,3 +114,20 @@ ip6 test-ip6 input
   [ exthdr load 1b @ 60 + 1 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# dst hdrlength { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 1b @ 60 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# dst hdrlength != { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 1b @ 60 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
+
index 945398dbc7d1228edd55955311d3ba307c1c4d91..e16529ad60b1a7f05af3d672f2dfa59a9388e12e 100644 (file)
@@ -17,6 +17,8 @@ frag reserved 33-45;ok
 frag reserved != 33-45;ok
 frag reserved { 33, 55, 67, 88};ok
 frag reserved != { 33, 55, 67, 88};ok
+frag reserved { 33-55};ok
+frag reserved != { 33-55};ok
 
 frag frag-off 22;ok
 frag frag-off != 233;ok
@@ -24,6 +26,8 @@ frag frag-off 33-45;ok
 frag frag-off != 33-45;ok
 frag frag-off { 33, 55, 67, 88};ok
 frag frag-off != { 33, 55, 67, 88};ok
+frag frag-off { 33-55};ok
+frag frag-off != { 33-55};ok
 
 frag reserved2 1;ok
 frag more-fragments 0;ok
@@ -36,3 +40,5 @@ frag id 33-45;ok
 frag id != 33-45;ok
 frag id { 33, 55, 67, 88};ok
 frag id != { 33, 55, 67, 88};ok
+frag id { 33-55};ok
+frag id != { 33-55};ok
index 6953e872a8f97335b7dbe460e6640bd083687053..b8c06dfb3429ce0420cbc6ecad50774e1af46c10 100644 (file)
     }
 ]
 
+# frag reserved { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "reserved",
+                    "name": "frag"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# frag reserved != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "reserved",
+                    "name": "frag"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # frag frag-off 22
 [
     {
     }
 ]
 
+# frag frag-off { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "frag-off",
+                    "name": "frag"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# frag frag-off != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "frag-off",
+                    "name": "frag"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # frag reserved2 1
 [
     {
         }
     }
 ]
+
+# frag id { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "id",
+                    "name": "frag"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# frag id != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "id",
+                    "name": "frag"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
index 0bf54fdc94745f9d572961581379f471975f6c4a..0630533027c3d319c8d4e1096e36ac7f0e2b0e8e 100644 (file)
@@ -95,6 +95,26 @@ inet test-inet output
   [ exthdr load 1b @ 44 + 1 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# frag reserved { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet output
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 44 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# frag reserved != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet output
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 44 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # frag frag-off 22
 inet test-inet output
   [ meta load nfproto => reg 1 ]
@@ -150,6 +170,28 @@ inet test-inet output
   [ bitwise reg 1 = (reg=1 & 0x0000f8ff ) ^ 0x00000000 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# frag frag-off { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000801  : 0 [end]     element 0000b901  : 1 [end]
+inet test-inet output
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 2b @ 44 + 2 => reg 1 ]
+  [ bitwise reg 1 = (reg=1 & 0x0000f8ff ) ^ 0x00000000 ]
+  [ lookup reg 1 set __set%d ]
+
+# frag frag-off != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000801  : 0 [end]     element 0000b901  : 1 [end]
+inet test-inet output
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 2b @ 44 + 2 => reg 1 ]
+  [ bitwise reg 1 = (reg=1 & 0x0000f8ff ) ^ 0x00000000 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # frag more-fragments 1
 inet test-inet output
   [ meta load nfproto => reg 1 ]
@@ -214,6 +256,26 @@ inet test-inet output
   [ exthdr load 4b @ 44 + 4 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# frag id { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 21000000  : 0 [end]     element 38000000  : 1 [end]
+inet test-inet output
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 4b @ 44 + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# frag id != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 21000000  : 0 [end]     element 38000000  : 1 [end]
+inet test-inet output
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 4b @ 44 + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # frag reserved2 1
 inet test-inet output
   [ meta load nfproto => reg 1 ]
index dd0a6e28c8ba23a5af7067028dc98485a77717c0..6e86b8a9876791744f4ecf0f618f44ea372fb274 100644 (file)
@@ -71,6 +71,22 @@ ip6 test-ip6 output
   [ exthdr load 1b @ 44 + 1 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# frag reserved { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 output
+  [ exthdr load 1b @ 44 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# frag reserved != { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 output
+  [ exthdr load 1b @ 44 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # frag frag-off 22
 ip6 test-ip6 output
   [ exthdr load 2b @ 44 + 2 => reg 1 ]
@@ -114,6 +130,24 @@ ip6 test-ip6 output
   [ bitwise reg 1 = (reg=1 & 0x0000f8ff ) ^ 0x00000000 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# frag frag-off { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000801  : 0 [end]     element 0000b901  : 1 [end]
+ip6 test-ip6 output 
+  [ exthdr load 2b @ 44 + 2 => reg 1 ]
+  [ bitwise reg 1 = (reg=1 & 0x0000f8ff ) ^ 0x00000000 ]
+  [ lookup reg 1 set __set%d ]
+
+# frag frag-off != { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000801  : 0 [end]     element 0000b901  : 1 [end]
+ip6 test-ip6 output 
+  [ exthdr load 2b @ 44 + 2 => reg 1 ]
+  [ bitwise reg 1 = (reg=1 & 0x0000f8ff ) ^ 0x00000000 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # frag more-fragments 1
 ip6 test-ip6 output
   [ exthdr load 1b @ 44 + 3 => reg 1 ]
@@ -162,6 +196,22 @@ ip6 test-ip6 output
   [ exthdr load 4b @ 44 + 4 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# frag id { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 21000000  : 0 [end]     element 38000000  : 1 [end]
+ip6 test-ip6 output
+  [ exthdr load 4b @ 44 + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# frag id != { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 21000000  : 0 [end]     element 38000000  : 1 [end]
+ip6 test-ip6 output
+  [ exthdr load 4b @ 44 + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # frag reserved2 1
 ip6 test-ip6 output
   [ exthdr load 1b @ 44 + 3 => reg 1 ]
index fce5feaee6abef1807a76b1768d18a779b4afe6a..f367a384a0541b228bedad3e6e6c857bab02394e 100644 (file)
@@ -9,6 +9,8 @@ hbh hdrlength 33-45;ok
 hbh hdrlength != 33-45;ok
 hbh hdrlength {33, 55, 67, 88};ok
 hbh hdrlength != {33, 55, 67, 88};ok
+hbh hdrlength { 33-55};ok
+hbh hdrlength != { 33-55};ok
 
 hbh nexthdr {esp, ah, comp, udp, udplite, tcp, dccp, sctp, icmpv6};ok;hbh nexthdr { 58, 136, 51, 50, 6, 17, 132, 33, 108}
 hbh nexthdr != {esp, ah, comp, udp, udplite, tcp, dccp, sctp, icmpv6};ok;hbh nexthdr != { 58, 136, 51, 50, 6, 17, 132, 33, 108}
@@ -18,5 +20,7 @@ hbh nexthdr 33-45;ok
 hbh nexthdr != 33-45;ok
 hbh nexthdr {33, 55, 67, 88};ok
 hbh nexthdr != {33, 55, 67, 88};ok
+hbh nexthdr { 33-55};ok
+hbh nexthdr != { 33-55};ok
 hbh nexthdr ip;ok;hbh nexthdr 0
 hbh nexthdr != ip;ok;hbh nexthdr != 0
index 68670a3ba45e3567f8d3ef24db39dc1122ff1a57..441d3bfe96c39dfe625917424a0903419e3659ac 100644 (file)
     }
 ]
 
+# hbh hdrlength { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "hdrlength",
+                    "name": "hbh"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# hbh hdrlength != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "hdrlength",
+                    "name": "hbh"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # hbh nexthdr {esp, ah, comp, udp, udplite, tcp, dccp, sctp, icmpv6}
 [
     {
     }
 ]
 
+# hbh nexthdr { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "nexthdr",
+                    "name": "hbh"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# hbh nexthdr != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "nexthdr",
+                    "name": "hbh"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # hbh nexthdr ip
 [
     {
index a1847f83f0532d76c69642a7a8dd1bf5f6c59fb9..cf7e35354607c2c2997682f053328265eb42db2d 100644 (file)
@@ -47,6 +47,26 @@ inet test-inet filter-input
   [ exthdr load 1b @ 0 + 1 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# hbh hdrlength { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet filter-input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 0 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# hbh hdrlength != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet filter-input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 0 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # hbh nexthdr {esp, ah, comp, udp, udplite, tcp, dccp, sctp, icmpv6}
 __set%d test-inet 3
 __set%d test-inet 0
@@ -116,6 +136,26 @@ inet test-inet filter-input
   [ exthdr load 1b @ 0 + 0 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# hbh nexthdr { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet filter-input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 0 + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# hbh nexthdr != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet filter-input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 0 + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # hbh nexthdr ip
 inet test-inet filter-input
   [ meta load nfproto => reg 1 ]
index 7fc9062957a45747dfa12a767345b1e3c5168f31..93522c4104c0f639e7b19f6babdbabf263b34ba8 100644 (file)
@@ -35,6 +35,22 @@ ip6 test-ip6 filter-input
   [ exthdr load 1b @ 0 + 1 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# hbh hdrlength { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 filter-input
+  [ exthdr load 1b @ 0 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# hbh hdrlength != { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 filter-input
+  [ exthdr load 1b @ 0 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # hbh nexthdr {esp, ah, comp, udp, udplite, tcp, dccp, sctp, icmpv6}
 __set%d test-ip6 3
 __set%d test-ip6 0
@@ -88,6 +104,22 @@ ip6 test-ip6 filter-input
   [ exthdr load 1b @ 0 + 0 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# hbh nexthdr { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 filter-input
+  [ exthdr load 1b @ 0 + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# hbh nexthdr != { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 filter-input
+  [ exthdr load 1b @ 0 + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # hbh nexthdr ip
 ip6 test-ip6 filter-input
   [ exthdr load 1b @ 0 + 0 => reg 1 ]
index ef38cb86a0c4bbb72b297edbfaf34b7508e88820..8d794115d51e98d029ab73db55da9ded5dd21535 100644 (file)
@@ -32,6 +32,8 @@ icmpv6 code 4;ok;icmpv6 code port-unreachable
 icmpv6 code 3-66;ok
 icmpv6 code {5, 6, 7} accept;ok;icmpv6 code {policy-fail, reject-route, 7} accept
 icmpv6 code != {policy-fail, reject-route, 7} accept;ok
+icmpv6 code { 3-66};ok
+icmpv6 code != { 3-66};ok
 
 icmpv6 checksum 2222 log;ok
 icmpv6 checksum != 2222 log;ok
@@ -39,6 +41,8 @@ icmpv6 checksum 222-226;ok
 icmpv6 checksum != 2222 log;ok
 icmpv6 checksum { 222, 226};ok
 icmpv6 checksum != { 222, 226};ok
+icmpv6 checksum { 222-226};ok
+icmpv6 checksum != { 222-226};ok
 
 # BUG: icmpv6 parameter-problem, pptr, mtu, packet-too-big
 # [ICMP6HDR_PPTR]         = ICMP6HDR_FIELD("parameter-problem", icmp6_pptr),
@@ -66,6 +70,8 @@ icmpv6 mtu 33-45;ok
 icmpv6 mtu != 33-45;ok
 icmpv6 mtu {33, 55, 67, 88};ok
 icmpv6 mtu != {33, 55, 67, 88};ok
+icmpv6 mtu {33-55};ok
+icmpv6 mtu != {33-55};ok
 
 - icmpv6 id 2;ok
 - icmpv6 id != 233;ok
@@ -73,6 +79,8 @@ icmpv6 id 33-45;ok
 icmpv6 id != 33-45;ok
 icmpv6 id {33, 55, 67, 88};ok
 icmpv6 id != {33, 55, 67, 88};ok
+icmpv6 id {33-55};ok
+icmpv6 id != {33-55};ok
 
 icmpv6 sequence 2;ok
 icmpv6 sequence {3, 4, 5, 6, 7} accept;ok
@@ -81,6 +89,8 @@ icmpv6 sequence {2, 4};ok
 icmpv6 sequence != {2, 4};ok
 icmpv6 sequence 2-4;ok
 icmpv6 sequence != 2-4;ok
+icmpv6 sequence { 2-4};ok
+icmpv6 sequence != { 2-4};ok
 
 - icmpv6 max-delay 22;ok
 - icmpv6 max-delay != 233;ok
@@ -88,3 +98,5 @@ icmpv6 max-delay 33-45;ok
 icmpv6 max-delay != 33-45;ok
 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
index 7ada4669aed168b016a3e3f4cf597202dc4f22eb..f6cfbf172f562022b6a2ea4d39fc455ed1406316 100644 (file)
     }
 ]
 
+# icmpv6 code { 3-66}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "code",
+                    "protocol": "icmpv6"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 3, 66 ] }
+                ]
+            }
+        }
+    }
+]
+
+# icmpv6 code != { 3-66}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "code",
+                    "protocol": "icmpv6"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 3, 66 ] }
+                ]
+            }
+        }
+    }
+]
+
 # icmpv6 checksum 2222 log
 [
     {
     }
 ]
 
+# icmpv6 checksum { 222-226}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "checksum",
+                    "protocol": "icmpv6"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 222, 226 ] }
+                ]
+            }
+        }
+    }
+]
+
+# icmpv6 checksum != { 222-226}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "checksum",
+                    "protocol": "icmpv6"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 222, 226 ] }
+                ]
+            }
+        }
+    }
+]
+
 # icmpv6 mtu 22
 [
     {
     }
 ]
 
+# icmpv6 mtu {33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "mtu",
+                    "protocol": "icmpv6"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# icmpv6 mtu != {33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "mtu",
+                    "protocol": "icmpv6"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # icmpv6 id 33-45
 [
     {
     }
 ]
 
+# icmpv6 id {33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "id",
+                    "protocol": "icmpv6"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# icmpv6 id != {33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "id",
+                    "protocol": "icmpv6"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # icmpv6 sequence 2
 [
     {
     }
 ]
 
+# icmpv6 sequence { 2-4}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sequence",
+                    "protocol": "icmpv6"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 2, 4 ] }
+                ]
+            }
+        }
+    }
+]
+
+# icmpv6 sequence != { 2-4}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "sequence",
+                    "protocol": "icmpv6"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 2, 4 ] }
+                ]
+            }
+        }
+    }
+]
+
 # icmpv6 max-delay 33-45
 [
     {
         }
     }
 ]
+
+# icmpv6 max-delay {33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "max-delay",
+                    "name": "icmpv6"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# icmpv6 max-delay != {33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "max-delay",
+                    "name": "icmpv6"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
index 1e4f30d7289517605fad759bad98400580225f76..51d71f4149b568e957b44b7e1f2d8ed64df9ba68 100644 (file)
@@ -231,6 +231,26 @@ ip6 test-ip6 input
   [ lookup reg 1 set __set%d 0x1 ]
   [ immediate reg 0 accept ]
 
+# icmpv6 code { 3-66}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000003  : 0 [end]     element 00000043  : 1 [end]
+ip6 test-ip6 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x0000003a ]
+  [ payload load 1b @ transport header + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# icmpv6 code != { 3-66}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000003  : 0 [end]     element 00000043  : 1 [end]
+ip6 test-ip6 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x0000003a ]
+  [ payload load 1b @ transport header + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # icmpv6 checksum 2222 log
 ip6 test-ip6 input
   [ meta load l4proto => reg 1 ]
@@ -283,6 +303,26 @@ ip6 test-ip6 input
   [ payload load 2b @ transport header + 2 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# icmpv6 checksum { 222-226}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 0000de00  : 0 [end]     element 0000e300  : 1 [end]
+ip6 test-ip6 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x0000003a ]
+  [ payload load 2b @ transport header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# icmpv6 checksum != { 222-226}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 0000de00  : 0 [end]     element 0000e300  : 1 [end]
+ip6 test-ip6 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x0000003a ]
+  [ payload load 2b @ transport header + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # icmpv6 mtu 22
 ip6 test-ip6 input
   [ meta load l4proto => reg 1 ]
@@ -332,6 +372,25 @@ ip6 test-ip6 input
   [ payload load 4b @ transport header + 4 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# icmpv6 mtu {33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 21000000  : 0 [end]     element 38000000  : 1 [end]
+ip6 test-ip6 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x0000003a ]
+  [ payload load 4b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# icmpv6 mtu != {33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 21000000  : 0 [end]     element 38000000  : 1 [end]
+ip6 test-ip6 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x0000003a ]
+  [ payload load 4b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
 
 # icmpv6 id 33-45
 ip6 test-ip6 input
@@ -368,6 +427,26 @@ ip6 test-ip6 input
   [ payload load 2b @ transport header + 4 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# icmpv6 id {33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+ip6 test-ip6 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x0000003a ]
+  [ payload load 2b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# icmpv6 id != {33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+ip6 test-ip6 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x0000003a ]
+  [ payload load 2b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # icmpv6 sequence 2
 ip6 test-ip6 input
   [ meta load l4proto => reg 1 ]
@@ -432,6 +511,26 @@ ip6 test-ip6 input
   [ payload load 2b @ transport header + 6 => reg 1 ]
   [ range neq reg 1 0x00000200 0x00000400 ]
 
+# icmpv6 sequence { 2-4}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000200  : 0 [end]     element 00000500  : 1 [end]
+ip6 test-ip6 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x0000003a ]
+  [ payload load 2b @ transport header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# icmpv6 sequence != { 2-4}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000200  : 0 [end]     element 00000500  : 1 [end]
+ip6 test-ip6 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x0000003a ]
+  [ payload load 2b @ transport header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # icmpv6 max-delay 33-45
 ip6 test-ip6 input
   [ meta load l4proto => reg 1 ]
@@ -467,3 +566,23 @@ ip6 test-ip6 input
   [ payload load 2b @ transport header + 4 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# icmpv6 max-delay {33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+ip6 test-ip6 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x0000003a ]
+  [ payload load 2b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# icmpv6 max-delay != {33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+ip6 test-ip6 input
+  [ meta load l4proto => reg 1 ]
+  [ cmp eq reg 1 0x0000003a ]
+  [ payload load 2b @ transport header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
index fbd0786516d5ac0b669cd44dbe773119105ea4da..8210d22be3d581b7b8a5dc92221a3f4b9e19cbc4 100644 (file)
@@ -24,6 +24,8 @@ ip6 flowlabel != 233;ok
 ip6 flowlabel { 33, 55, 67, 88};ok
 # BUG ip6 flowlabel { 5046528, 2883584, 13522432 }
 ip6 flowlabel != { 33, 55, 67, 88};ok
+ip6 flowlabel { 33-55};ok
+ip6 flowlabel != { 33-55};ok
 ip6 flowlabel vmap { 0 : accept, 2 : continue } ;ok
 
 ip6 length 22;ok
@@ -32,12 +34,16 @@ ip6 length 33-45;ok
 ip6 length != 33-45;ok
 ip6 length { 33, 55, 67, 88};ok
 ip6 length != {33, 55, 67, 88};ok
+ip6 length { 33-55};ok
+ip6 length != { 33-55};ok
 
 ip6 nexthdr {udp, ah, comp, udplite, tcp, dccp, sctp};ok;ip6 nexthdr { 132, 51, 108, 136, 17, 33, 6}
 ip6 nexthdr {esp, ah, comp, udp, udplite, tcp, dccp, sctp, icmpv6};ok;ip6 nexthdr { 6, 136, 108, 33, 50, 17, 132, 58, 51}
 ip6 nexthdr != {esp, ah, comp, udp, udplite, tcp, dccp, sctp, icmpv6};ok;ip6 nexthdr != { 6, 136, 108, 33, 50, 17, 132, 58, 51}
 ip6 nexthdr esp;ok;ip6 nexthdr 50
 ip6 nexthdr != esp;ok;ip6 nexthdr != 50
+ip6 nexthdr { 33-44};ok
+ip6 nexthdr != { 33-44};ok
 ip6 nexthdr 33-44;ok
 ip6 nexthdr != 33-44;ok
 
@@ -47,6 +53,8 @@ ip6 hoplimit 33-45;ok
 ip6 hoplimit != 33-45;ok
 ip6 hoplimit {33, 55, 67, 88};ok
 ip6 hoplimit != {33, 55, 67, 88};ok
+ip6 hoplimit {33-55};ok
+ip6 hoplimit != {33-55};ok
 
 # from src/scanner.l
 # v680         (({hex4}:){7}{hex4})
index 46d347dfa9bf0f01d51b450e338870323041da9a..f898240fb4189960732b6b74d024e2a8bd36c256 100644 (file)
     }
 ]
 
+# ip6 flowlabel { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "flowlabel",
+                    "protocol": "ip6"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# ip6 flowlabel != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "flowlabel",
+                    "protocol": "ip6"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # ip6 flowlabel vmap { 0 : accept, 2 : continue } 
 [
     {
     }
 ]
 
+# ip6 length { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "length",
+                    "protocol": "ip6"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    {
+                        "range": [ 33, 55 ]
+                    }
+                ]
+            }
+        }
+    }
+]
+
+# ip6 length != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "length",
+                    "protocol": "ip6"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # ip6 nexthdr {udp, ah, comp, udplite, tcp, dccp, sctp}
 [
     {
     }
 ]
 
+# ip6 nexthdr { 33-44}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "nexthdr",
+                    "protocol": "ip6"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 44 ] }
+                ]
+            }
+        }
+    }
+]
+
+# ip6 nexthdr != { 33-44}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "nexthdr",
+                    "protocol": "ip6"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 44 ] }
+                ]
+            }
+        }
+    }
+]
+
 # ip6 nexthdr 33-44
 [
     {
     }
 ]
 
+# ip6 hoplimit {33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "hoplimit",
+                    "protocol": "ip6"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# ip6 hoplimit != {33-55}
+[
+    {
+        "match": {
+            "left": {
+                "payload": {
+                    "field": "hoplimit",
+                    "protocol": "ip6"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # ip6 saddr 1234:1234:1234:1234:1234:1234:1234:1234
 [
     {
index d297bf7cde5901fa1720015104a1d4c50a790b45..d015c8efaa2575344e8997b7d29464c3234541ea 100644 (file)
@@ -91,6 +91,28 @@ inet test-inet input
   [ bitwise reg 1 = (reg=1 & 0x00ffff0f ) ^ 0x00000000 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip6 flowlabel { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00210000  : 0 [end]     element 00380000  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ payload load 3b @ network header + 1 => reg 1 ]
+  [ bitwise reg 1 = (reg=1 & 0x00ffff0f ) ^ 0x00000000 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip6 flowlabel != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00210000  : 0 [end]     element 00380000  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ payload load 3b @ network header + 1 => reg 1 ]
+  [ bitwise reg 1 = (reg=1 & 0x00ffff0f ) ^ 0x00000000 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip6 flowlabel vmap { 0 : accept, 2 : continue } 
 __map%d test-inet b size 2
 __map%d test-inet 0
@@ -151,6 +173,26 @@ inet test-inet input
   [ payload load 2b @ network header + 4 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip6 length { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ payload load 2b @ network header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip6 length != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ payload load 2b @ network header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip6 nexthdr {udp, ah, comp, udplite, tcp, dccp, sctp}
 __set%d test-inet 3
 __set%d test-inet 0
@@ -195,6 +237,26 @@ inet test-inet input
   [ payload load 1b @ network header + 6 => reg 1 ]
   [ cmp neq reg 1 0x00000032 ]
 
+# ip6 nexthdr { 33-44}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 0000002d  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ payload load 1b @ network header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip6 nexthdr != { 33-44}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 0000002d  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ payload load 1b @ network header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip6 nexthdr 33-44
 inet test-inet input
   [ meta load nfproto => reg 1 ]
@@ -259,6 +321,26 @@ inet test-inet input
   [ payload load 1b @ network header + 7 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip6 hoplimit {33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ payload load 1b @ network header + 7 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip6 hoplimit != {33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ payload load 1b @ network header + 7 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip6 saddr 1234:1234:1234:1234:1234:1234:1234:1234
 inet test-inet input
   [ meta load nfproto => reg 1 ]
index c78944a425d441adc720a400a48809c6803edc46..b2e8363c01e1fccd0099c6dc26f95e4683bf423c 100644 (file)
@@ -71,6 +71,24 @@ ip6 test-ip6 input
   [ bitwise reg 1 = (reg=1 & 0x00ffff0f ) ^ 0x00000000 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip6 flowlabel { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00210000  : 0 [end]     element 00380000  : 1 [end]
+ip6 test-ip6 input
+  [ payload load 3b @ network header + 1 => reg 1 ]
+  [ bitwise reg 1 = (reg=1 & 0x00ffff0f ) ^ 0x00000000 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip6 flowlabel != { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00210000  : 0 [end]     element 00380000  : 1 [end]
+ip6 test-ip6 input
+  [ payload load 3b @ network header + 1 => reg 1 ]
+  [ bitwise reg 1 = (reg=1 & 0x00ffff0f ) ^ 0x00000000 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip6 flowlabel vmap { 0 : accept, 2 : continue } 
 __map%d test-ip6 b size 2
 __map%d test-ip6 0
@@ -117,6 +135,22 @@ ip6 test-ip6 input
   [ payload load 2b @ network header + 4 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip6 length { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+ip6 test-ip6 input
+  [ payload load 2b @ network header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip6 length != { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+ip6 test-ip6 input
+  [ payload load 2b @ network header + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip6 nexthdr {udp, ah, comp, udplite, tcp, dccp, sctp}
 __set%d test-ip6 3
 __set%d test-ip6 0
@@ -151,6 +185,22 @@ ip6 test-ip6 input
   [ payload load 1b @ network header + 6 => reg 1 ]
   [ cmp neq reg 1 0x00000032 ]
 
+# ip6 nexthdr { 33-44}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 0000002d  : 1 [end]
+ip6 test-ip6 input
+  [ payload load 1b @ network header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip6 nexthdr != { 33-44}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 0000002d  : 1 [end]
+ip6 test-ip6 input
+  [ payload load 1b @ network header + 6 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip6 nexthdr 33-44
 ip6 test-ip6 input
   [ payload load 1b @ network header + 6 => reg 1 ]
@@ -199,6 +249,22 @@ ip6 test-ip6 input
   [ payload load 1b @ network header + 7 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# ip6 hoplimit {33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ payload load 1b @ network header + 7 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# ip6 hoplimit != {33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ payload load 1b @ network header + 7 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # ip6 saddr 1234:1234:1234:1234:1234:1234:1234:1234
 ip6 test-ip6 input
   [ payload load 16b @ network header + 8 => reg 1 ]
index 46f4ba05320cc965c3f6c8e9789bcff5b1911248..2f90372e83a96d3fd27f52dda8f2fa425868e289 100644 (file)
@@ -15,6 +15,8 @@ mh nexthdr 33-45;ok
 mh nexthdr != 33-45;ok
 mh nexthdr { 33, 55, 67, 88 };ok
 mh nexthdr != { 33, 55, 67, 88 };ok
+mh nexthdr { 33-55 };ok
+mh nexthdr != { 33-55 };ok
 
 mh hdrlength 22;ok
 mh hdrlength != 233;ok
@@ -22,6 +24,8 @@ mh hdrlength 33-45;ok
 mh hdrlength != 33-45;ok
 mh hdrlength { 33, 55, 67, 88 };ok
 mh hdrlength != { 33, 55, 67, 88 };ok
+mh hdrlength { 33-55 };ok
+mh hdrlength != { 33-55 };ok
 
 mh type {binding-refresh-request, home-test-init, careof-test-init, home-test, careof-test, binding-update, binding-acknowledgement, binding-error, fast-binding-update, fast-binding-acknowledgement, fast-binding-advertisement, experimental-mobility-header, home-agent-switch-message};ok
 mh type home-agent-switch-message;ok
@@ -33,6 +37,8 @@ mh reserved 33-45;ok
 mh reserved != 33-45;ok
 mh reserved { 33, 55, 67, 88};ok
 mh reserved != { 33, 55, 67, 88};ok
+mh reserved { 33-55};ok
+mh reserved != { 33-55};ok
 
 mh checksum 22;ok
 mh checksum != 233;ok
@@ -40,3 +46,5 @@ mh checksum 33-45;ok
 mh checksum != 33-45;ok
 mh checksum { 33, 55, 67, 88};ok
 mh checksum != { 33, 55, 67, 88};ok
+mh checksum { 33-55};ok
+mh checksum != { 33-55};ok
index 5bc5d4f3a4785269d823045536ef53a7dfb02604..211477d32f5e4c2b41d80fa7c84d5da2bbba4ce9 100644 (file)
     }
 ]
 
+# mh nexthdr { 33-55 }
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "nexthdr",
+                    "name": "mh"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    {
+                        "range": [ 33, 55 ]
+                    }
+                ]
+            }
+        }
+    }
+]
+
+# mh nexthdr != { 33-55 }
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "nexthdr",
+                    "name": "mh"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # mh hdrlength 22
 [
     {
     }
 ]
 
+# mh hdrlength { 33-55 }
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "hdrlength",
+                    "name": "mh"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# mh hdrlength != { 33-55 }
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "hdrlength",
+                    "name": "mh"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # mh type {binding-refresh-request, home-test-init, careof-test-init, home-test, careof-test, binding-update, binding-acknowledgement, binding-error, fast-binding-update, fast-binding-acknowledgement, fast-binding-advertisement, experimental-mobility-header, home-agent-switch-message}
 [
     {
     }
 ]
 
+# mh reserved { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "reserved",
+                    "name": "mh"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# mh reserved != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "reserved",
+                    "name": "mh"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # mh checksum 22
 [
     {
         }
     }
 ]
+
+# mh checksum { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "checksum",
+                    "name": "mh"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# mh checksum != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "checksum",
+                    "name": "mh"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
index 52b475bbc482a4d0da6a6c13d4d519f5c4880595..24335b19cb28c49dc155020a43df144261751918 100644 (file)
@@ -95,6 +95,26 @@ inet test-inet input
   [ exthdr load 1b @ 135 + 0 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# mh nexthdr { 33-55 }
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 135 + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# mh nexthdr != { 33-55 }
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 135 + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # mh hdrlength 22
 inet test-inet input
   [ meta load nfproto => reg 1 ]
@@ -144,6 +164,26 @@ inet test-inet input
   [ exthdr load 1b @ 135 + 1 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# mh hdrlength { 33-55 }
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 135 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# mh hdrlength != { 33-55 }
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 135 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # mh type {binding-refresh-request, home-test-init, careof-test-init, home-test, careof-test, binding-update, binding-acknowledgement, binding-error, fast-binding-update, fast-binding-acknowledgement, fast-binding-advertisement, experimental-mobility-header, home-agent-switch-message}
 __set%d test-inet 3
 __set%d test-inet 0
@@ -217,6 +257,26 @@ inet test-inet input
   [ exthdr load 1b @ 135 + 3 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# mh reserved { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 135 + 3 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# mh reserved != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 135 + 3 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # mh checksum 22
 inet test-inet input
   [ meta load nfproto => reg 1 ]
@@ -266,3 +326,23 @@ inet test-inet input
   [ exthdr load 2b @ 135 + 4 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# mh checksum { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 2b @ 135 + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# mh checksum != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 2b @ 135 + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
index 3e8dffcdd81926767c9a1e639a84912600f04875..d19b6e694cdb8b91a3fbf2f09265e31215a7be4d 100644 (file)
@@ -71,6 +71,22 @@ ip6 test-ip6 input
   [ exthdr load 1b @ 135 + 0 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# mh nexthdr { 33-55 }
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 1b @ 135 + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# mh nexthdr != { 33-55 }
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 1b @ 135 + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # mh hdrlength 22
 ip6 test-ip6 input
   [ exthdr load 1b @ 135 + 1 => reg 1 ]
@@ -108,6 +124,22 @@ ip6 test-ip6 input
   [ exthdr load 1b @ 135 + 1 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# mh hdrlength { 33-55 }
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 1b @ 135 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# mh hdrlength != { 33-55 }
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 1b @ 135 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # mh type {binding-refresh-request, home-test-init, careof-test-init, home-test, careof-test, binding-update, binding-acknowledgement, binding-error, fast-binding-update, fast-binding-acknowledgement, fast-binding-advertisement, experimental-mobility-header, home-agent-switch-message}
 __set%d test-ip6 3
 __set%d test-ip6 0
@@ -163,6 +195,22 @@ ip6 test-ip6 input
   [ exthdr load 1b @ 135 + 3 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# mh reserved { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 1b @ 135 + 3 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# mh reserved != { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 1b @ 135 + 3 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # mh checksum 22
 ip6 test-ip6 input
   [ exthdr load 2b @ 135 + 4 => reg 1 ]
@@ -200,3 +248,19 @@ ip6 test-ip6 input
   [ exthdr load 2b @ 135 + 4 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# mh checksum { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 2b @ 135 + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# mh checksum != { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00002100  : 0 [end]     element 00003800  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 2b @ 135 + 4 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
index c33d38a52332b586b3b987201831f929d40ed377..c3feaabee483c2bfa99178da982b1b77ad3f0d3b 100644 (file)
@@ -15,6 +15,8 @@ rt nexthdr 33-45;ok
 rt nexthdr != 33-45;ok
 rt nexthdr { 33, 55, 67, 88};ok
 rt nexthdr != { 33, 55, 67, 88};ok
+rt nexthdr { 33-55};ok
+rt nexthdr != { 33-55};ok
 
 rt hdrlength 22;ok
 rt hdrlength != 233;ok
@@ -22,6 +24,8 @@ rt hdrlength 33-45;ok
 rt hdrlength != 33-45;ok
 rt hdrlength { 33, 55, 67, 88};ok
 rt hdrlength != { 33, 55, 67, 88};ok
+rt hdrlength { 33-55};ok
+rt hdrlength != { 33-55};ok
 
 rt type 22;ok
 rt type != 233;ok
@@ -29,6 +33,8 @@ rt type 33-45;ok
 rt type != 33-45;ok
 rt type { 33, 55, 67, 88};ok
 rt type != { 33, 55, 67, 88};ok
+rt type { 33-55};ok
+rt type != { 33-55};ok
 
 rt seg-left 22;ok
 rt seg-left != 233;ok
@@ -36,3 +42,5 @@ rt seg-left 33-45;ok
 rt seg-left != 33-45;ok
 rt seg-left { 33, 55, 67, 88};ok
 rt seg-left != { 33, 55, 67, 88};ok
+rt seg-left { 33-55};ok
+rt seg-left != { 33-55};ok
index a5021e04632b8e3bcf0bc89cf57f869119784e09..86a4640213ce263b82d9e01285e243a38e683502 100644 (file)
     }
 ]
 
+# rt nexthdr { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "nexthdr",
+                    "name": "rt"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# rt nexthdr != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "nexthdr",
+                    "name": "rt"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # rt hdrlength 22
 [
     {
     }
 ]
 
+# rt hdrlength { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "hdrlength",
+                    "name": "rt"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# rt hdrlength != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "hdrlength",
+                    "name": "rt"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # rt type 22
 [
     {
     }
 ]
 
+# rt type { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "type",
+                    "name": "rt"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# rt type != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "type",
+                    "name": "rt"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
 # rt seg-left 22
 [
     {
         }
     }
 ]
+
+# rt seg-left { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "seg-left",
+                    "name": "rt"
+                }
+            },
+           "op": "==",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
+# rt seg-left != { 33-55}
+[
+    {
+        "match": {
+            "left": {
+                "exthdr": {
+                    "field": "seg-left",
+                    "name": "rt"
+                }
+            },
+            "op": "!=",
+            "right": {
+                "set": [
+                    { "range": [ 33, 55 ] }
+                ]
+            }
+        }
+    }
+]
+
index 3c05b4eed3fa839dfd4805e8e37edd7a7da09cce..8fb717f063d57b97d5a6ec39e32e3cfc787b06b2 100644 (file)
@@ -95,6 +95,26 @@ inet test-inet input
   [ exthdr load 1b @ 43 + 0 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# rt nexthdr { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 43 + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# rt nexthdr != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 43 + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # rt hdrlength 22
 inet test-inet input
   [ meta load nfproto => reg 1 ]
@@ -144,6 +164,26 @@ inet test-inet input
   [ exthdr load 1b @ 43 + 1 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# rt hdrlength { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 43 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# rt hdrlength != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 43 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # rt type 22
 inet test-inet input
   [ meta load nfproto => reg 1 ]
@@ -193,6 +233,26 @@ inet test-inet input
   [ exthdr load 1b @ 43 + 2 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# rt type { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 43 + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# rt type != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 43 + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # rt seg-left 22
 inet test-inet input
   [ meta load nfproto => reg 1 ]
@@ -242,3 +302,23 @@ inet test-inet input
   [ exthdr load 1b @ 43 + 3 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# rt seg-left { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 43 + 3 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# rt seg-left != { 33-55}
+__set%d test-inet 7
+__set%d test-inet 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+inet test-inet input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x0000000a ]
+  [ exthdr load 1b @ 43 + 3 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
index 738667c65f868eebfb71b275c52bca4511133d16..5a574630c82e499ecc20f91e207f3a527561f6f4 100644 (file)
@@ -71,6 +71,22 @@ ip6 test-ip6 input
   [ exthdr load 1b @ 43 + 0 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# rt nexthdr { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 1b @ 43 + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# rt nexthdr != { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 1b @ 43 + 0 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # rt hdrlength 22
 ip6 test-ip6 input
   [ exthdr load 1b @ 43 + 1 => reg 1 ]
@@ -108,6 +124,22 @@ ip6 test-ip6 input
   [ exthdr load 1b @ 43 + 1 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# rt hdrlength { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 1b @ 43 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# rt hdrlength != { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 1b @ 43 + 1 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # rt type 22
 ip6 test-ip6 input
   [ exthdr load 1b @ 43 + 2 => reg 1 ]
@@ -145,6 +177,22 @@ ip6 test-ip6 input
   [ exthdr load 1b @ 43 + 2 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# rt type { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 1b @ 43 + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# rt type != { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 1b @ 43 + 2 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+
 # rt seg-left 22
 ip6 test-ip6 input
   [ exthdr load 1b @ 43 + 3 => reg 1 ]
@@ -182,3 +230,19 @@ ip6 test-ip6 input
   [ exthdr load 1b @ 43 + 3 => reg 1 ]
   [ lookup reg 1 set __set%d 0x1 ]
 
+# rt seg-left { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 1b @ 43 + 3 => reg 1 ]
+  [ lookup reg 1 set __set%d ]
+
+# rt seg-left != { 33-55}
+__set%d test-ip6 7
+__set%d test-ip6 0
+       element 00000000  : 1 [end]     element 00000021  : 0 [end]     element 00000038  : 1 [end]
+ip6 test-ip6 input
+  [ exthdr load 1b @ 43 + 3 => reg 1 ]
+  [ lookup reg 1 set __set%d 0x1 ]
+