]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
JSON: Make meta statement/expression extensible
authorPhil Sutter <phil@nwl.cc>
Wed, 29 Aug 2018 14:23:22 +0000 (16:23 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Thu, 30 Aug 2018 10:19:36 +0000 (12:19 +0200)
Lessons learned from fwd statement: We must not assume a given
statement/expression may not receive further properties in the future.
Therefore make meta value an object with a property "key" instead of
just a string containing the key name.

Signed-off-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
57 files changed:
doc/libnftables-json.adoc
src/json.c
src/parser_json.c
tests/py/any/ct.t.json
tests/py/any/dup.t.json
tests/py/any/fwd.t.json
tests/py/any/fwd.t.json.output
tests/py/any/meta.t.json
tests/py/any/meta.t.json.output
tests/py/any/rawpayload.t.json
tests/py/any/rawpayload.t.json.output
tests/py/arp/arp.t.json
tests/py/arp/arp.t.json.output
tests/py/bridge/ether.t.json
tests/py/bridge/meta.t.json
tests/py/bridge/reject.t.json
tests/py/bridge/reject.t.json.output
tests/py/inet/ct.t.json
tests/py/inet/ether-ip.t.json
tests/py/inet/ether.t.json
tests/py/inet/icmp.t.json
tests/py/inet/icmpX.t.json
tests/py/inet/icmpX.t.json.output
tests/py/inet/map.t.json
tests/py/inet/map.t.json.output
tests/py/inet/meta.t.json
tests/py/inet/meta.t.json.output
tests/py/inet/reject.t.json
tests/py/inet/reject.t.json.output
tests/py/inet/rt.t.json
tests/py/inet/rt.t.json.output
tests/py/inet/udp.t.json
tests/py/ip/dnat.t.json
tests/py/ip/ether.t.json
tests/py/ip/ip.t.json
tests/py/ip/ip.t.json.output
tests/py/ip/ip_tcp.t.json
tests/py/ip/ip_tcp.t.json.output
tests/py/ip/masquerade.t.json
tests/py/ip/meta.t.json
tests/py/ip/redirect.t.json
tests/py/ip/reject.t.json
tests/py/ip/reject.t.json.output
tests/py/ip/snat.t.json
tests/py/ip/snat.t.json.output
tests/py/ip6/ether.t.json
tests/py/ip6/flowtable.t.json
tests/py/ip6/flowtable.t.json.output
tests/py/ip6/ip6.t.json
tests/py/ip6/ip6.t.json.output
tests/py/ip6/map.t.json
tests/py/ip6/map.t.json.output
tests/py/ip6/masquerade.t.json
tests/py/ip6/meta.t.json
tests/py/ip6/redirect.t.json
tests/py/ip6/reject.t.json
tests/py/ip6/reject.t.json.output

index e51e9d402bebab1dd9a0112dc7dddf119a5ae97b..058573dfc5c7df39ecc9a93081cd49be7457eb5e 100644 (file)
@@ -1060,7 +1060,19 @@ existence check in a *match* statement with boolean on right hand side.
 
 === META
 [verse]
-*{ "meta":* 'STRING' *}*
+____
+*{ "meta": {
+       "key":* 'META_KEY'
+*}}*
+
+'META_KEY' := *"length"* | *"protocol"* | *"priority"* | *"random"* | *"mark"* |
+              *"iif"* | *"iifname"* | *"iiftype"* | *"oif"* | *"oifname"* |
+             *"oiftype"* | *"skuid"* | *"skgid"* | *"nftrace"* |
+             *"rtclassid"* | *"ibriport"* | *"obriport"* | *"ibridgename"* |
+             *"obridgename"* | *"pkttype"* | *"cpu"* | *"iifgroup"* |
+             *"oifgroup"* | *"cgroup"* | *"nfproto"* | *"l4proto"* |
+             *"secpath"*
+____
 
 Create a reference to packet meta data.
 
index e8870a137140e1dc3559c687bf1d4d806b1f3c6a..0c708c7dce2d4cf9d889950d1c9cc392a0156e0c 100644 (file)
@@ -409,7 +409,8 @@ json_t *range_expr_json(const struct expr *expr, struct output_ctx *octx)
 
 json_t *meta_expr_json(const struct expr *expr, struct output_ctx *octx)
 {
-       return json_pack("{s:s}", "meta", meta_templates[expr->meta.key].token);
+       return json_pack("{s:{s:s}}", "meta",
+                        "key", meta_templates[expr->meta.key].token);
 }
 
 json_t *payload_expr_json(const struct expr *expr, struct output_ctx *octx)
@@ -1049,7 +1050,8 @@ json_t *meta_stmt_json(const struct stmt *stmt, struct output_ctx *octx)
 {
        json_t *root;
 
-       root = json_pack("{s:s}", "meta", meta_templates[stmt->meta.key].token);
+       root = json_pack("{s:{s:s}}", "meta",
+                        "key", meta_templates[stmt->meta.key].token);
        root = json_pack("{s:o, s:o}",
                         "left", root,
                         "right", expr_print_json(stmt->meta.expr, octx));
index 3d96000b6066b92c296f3ee2eb13da9e84db7bae..883904327b762e8746a3f564e4923d5745e71847 100644 (file)
@@ -336,7 +336,7 @@ static struct expr *json_parse_meta_expr(struct json_ctx *ctx,
        unsigned int key;
        const char *name;
 
-       if (json_unpack_err(ctx, root, "s", &name))
+       if (json_unpack_err(ctx, root, "{s:s}", "key", &name))
                return NULL;
        erec = meta_key_parse(int_loc, name, &key);
        if (erec) {
index e393e52456a363d8fa7dc6211d7848d99bf3606c..bca6d578fc5446295ca1d93572a46b2d12c6021f 100644 (file)
                 }
             },
             "right": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             }
         }
     }
             "right": {
                 "map": {
                     "left": {
-                        "meta": "mark"
+                        "meta": { "key": "mark" }
                     },
                     "right": {
                         "set": [
             "right": {
                 "map": {
                     "left": {
-                        "meta": "mark"
+                        "meta": { "key": "mark" }
                     },
                     "right": {
                         "set": [
index 030938581abe5935e7caf87cdb384fd4d4739f84..9cf0274e6455129a738158f4c7560e1215bdc0c9 100644 (file)
@@ -14,7 +14,7 @@
             "addr": {
                 "map": {
                     "left": {
-                        "meta": "mark"
+                        "meta": { "key": "mark" }
                     },
                     "right": {
                         "set": [
index c4ad430f3a2345db9c92242732497b5cf7b0afec..16299007a19dacaeeef2f58b69a215c6ac9d35f6 100644 (file)
@@ -14,7 +14,7 @@
             "dev": {
                 "map": {
                     "left": {
-                        "meta": "mark"
+                        "meta": { "key": "mark" }
                     },
                     "right": {
                         "set": [
index e5f66a3619639aaa9c64092cc3384644b7378e6e..e5714e9f4ba4074f2a11e6ae1b01edf9a5c1302b 100644 (file)
@@ -5,7 +5,7 @@
             "dev": {
                 "map": {
                     "left": {
-                        "meta": "mark"
+                        "meta": { "key": "mark" }
                     },
                     "right": {
                         "set": [
index 7aea79eb323861d9e31755d8fbbe709717149ce5..4da6aa4a5d62d591cfb5456e7081eec96f36a223 100644 (file)
@@ -3,7 +3,7 @@
     {
         "match": {
             "left": {
-                "meta": "length"
+                "meta": { "key": "length" }
             },
             "right": 1000
         }
@@ -15,7 +15,7 @@
     {
         "match": {
             "left": {
-                "meta": "length"
+                "meta": { "key": "length" }
             },
             "right": 22
         }
@@ -27,7 +27,7 @@
     {
         "match": {
             "left": {
-                "meta": "length"
+                "meta": { "key": "length" }
             },
             "op": "!=",
             "right": 233
@@ -40,7 +40,7 @@
     {
         "match": {
             "left": {
-                "meta": "length"
+                "meta": { "key": "length" }
             },
             "right": {
                 "range": [ 33, 45 ]
@@ -54,7 +54,7 @@
     {
         "match": {
             "left": {
-                "meta": "length"
+                "meta": { "key": "length" }
             },
             "op": "!=",
             "right": {
@@ -69,7 +69,7 @@
     {
         "match": {
             "left": {
-                "meta": "length"
+                "meta": { "key": "length" }
             },
             "right": {
                 "set": [
@@ -88,7 +88,7 @@
     {
         "match": {
             "left": {
-                "meta": "length"
+                "meta": { "key": "length" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "length"
+                "meta": { "key": "length" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "length"
+                "meta": { "key": "length" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "length"
+                "meta": { "key": "length" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "length"
+                "meta": { "key": "length" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "protocol"
+                "meta": { "key": "protocol" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "protocol"
+                "meta": { "key": "protocol" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "protocol"
+                "meta": { "key": "protocol" }
             },
             "right": "ip"
         }
     {
         "match": {
             "left": {
-                "meta": "protocol"
+                "meta": { "key": "protocol" }
             },
             "op": "!=",
             "right": "ip"
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": 22
         }
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "op": "!=",
             "right": 233
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": {
                 "range": [ 33, 45 ]
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "priority"
+                "meta": { "key": "priority" }
             },
             "right": "root"
         }
     {
         "match": {
             "left": {
-                "meta": "priority"
+                "meta": { "key": "priority" }
             },
             "right": "none"
         }
     {
         "match": {
             "left": {
-                "meta": "priority"
+                "meta": { "key": "priority" }
             },
             "right": "0x87654321"
         }
     {
         "match": {
             "left": {
-                "meta": "priority"
+                "meta": { "key": "priority" }
             },
             "right": 2271560481
         }
     {
         "match": {
             "left": {
-                "meta": "priority"
+                "meta": { "key": "priority" }
             },
             "right": "1:1234"
         }
     {
         "match": {
             "left": {
-                "meta": "priority"
+                "meta": { "key": "priority" }
             },
             "right": "bcad:dadc"
         }
     {
         "match": {
             "left": {
-                "meta": "priority"
+                "meta": { "key": "priority" }
             },
             "right": "aabb:0"
         }
     {
         "match": {
             "left": {
-                "meta": "priority"
+                "meta": { "key": "priority" }
             },
             "op": "!=",
             "right": "bcad:dadc"
     {
         "match": {
             "left": {
-                "meta": "priority"
+                "meta": { "key": "priority" }
             },
             "op": "!=",
             "right": "aabb:0"
     {
         "match": {
             "left": {
-                "meta": "priority"
+                "meta": { "key": "priority" }
             },
             "right": {
                 "range": [ "bcad:dada", "bcad:dadc" ]
     {
         "match": {
             "left": {
-                "meta": "priority"
+                "meta": { "key": "priority" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "priority"
+                "meta": { "key": "priority" }
             },
             "right": {
                 "set": [
     {
         "mangle": {
             "left": {
-                "meta": "priority"
+                "meta": { "key": "priority" }
             },
             "right": "cafe:beef"
         }
     {
         "match": {
             "left": {
-                "meta": "priority"
+                "meta": { "key": "priority" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": "0x4"
         }
     {
         "match": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": "0x32"
         }
             "left": {
                 "&": [
                     {
-                        "meta": "mark"
+                        "meta": { "key": "mark" }
                     },
                     "0x03"
                 ]
             "left": {
                 "&": [
                     {
-                        "meta": "mark"
+                        "meta": { "key": "mark" }
                     },
                     "0x03"
                 ]
     {
         "match": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": "0x10"
         }
     {
         "match": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "op": "!=",
             "right": "0x10"
             "left": {
                 "|": [
                     {
-                        "meta": "mark"
+                        "meta": { "key": "mark" }
                     },
                     "0x03"
                 ]
             "left": {
                 "|": [
                     {
-                        "meta": "mark"
+                        "meta": { "key": "mark" }
                     },
                     "0x03"
                 ]
             "left": {
                 "^": [
                    {
-                        "meta": "mark"
+                        "meta": { "key": "mark" }
                     },
                    "0x03"
                 ]
             "left": {
                 "^": [
                     {
-                        "meta": "mark"
+                        "meta": { "key": "mark" }
                     },
                     "0x03"
                 ]
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "op": "!=",
             "right": "lo"
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "dummy0"
         }
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "op": "!=",
             "right": "dummy0"
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "dummy*"
         }
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "dummy\\*"
         }
     {
         "match": {
             "left": {
-                "meta": "iiftype"
+                "meta": { "key": "iiftype" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "iiftype"
+                "meta": { "key": "iiftype" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "iiftype"
+                "meta": { "key": "iiftype" }
             },
             "op": "!=",
             "right": "ether"
     {
         "match": {
             "left": {
-                "meta": "iiftype"
+                "meta": { "key": "iiftype" }
             },
             "right": "ether"
         }
     {
         "match": {
             "left": {
-                "meta": "iiftype"
+                "meta": { "key": "iiftype" }
             },
             "op": "!=",
             "right": "ppp"
     {
         "match": {
             "left": {
-                "meta": "iiftype"
+                "meta": { "key": "iiftype" }
             },
             "right": "ppp"
         }
     {
         "match": {
             "left": {
-                "meta": "oif"
+                "meta": { "key": "oif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "oif"
+                "meta": { "key": "oif" }
             },
             "op": "!=",
             "right": "lo"
     {
         "match": {
             "left": {
-                "meta": "oif"
+                "meta": { "key": "oif" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "oif"
+                "meta": { "key": "oif" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "oifname"
+                "meta": { "key": "oifname" }
             },
             "right": "dummy0"
         }
     {
         "match": {
             "left": {
-                "meta": "oifname"
+                "meta": { "key": "oifname" }
             },
             "op": "!=",
             "right": "dummy0"
     {
         "match": {
             "left": {
-                "meta": "oifname"
+                "meta": { "key": "oifname" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "oifname"
+                "meta": { "key": "oifname" }
             },
             "right": "dummy*"
         }
     {
         "match": {
             "left": {
-                "meta": "oifname"
+                "meta": { "key": "oifname" }
             },
             "right": "dummy\\*"
         }
     {
         "match": {
             "left": {
-                "meta": "oiftype"
+                "meta": { "key": "oiftype" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "oiftype"
+                "meta": { "key": "oiftype" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "oiftype"
+                "meta": { "key": "oiftype" }
             },
             "op": "!=",
             "right": "ether"
     {
         "match": {
             "left": {
-                "meta": "oiftype"
+                "meta": { "key": "oiftype" }
             },
             "right": "ether"
         }
     {
         "match": {
             "left": {
-                "meta": "skuid"
+                "meta": { "key": "skuid" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "skuid"
+                "meta": { "key": "skuid" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "skuid"
+                "meta": { "key": "skuid" }
             },
             "right": "root"
         }
     {
         "match": {
             "left": {
-                "meta": "skuid"
+                "meta": { "key": "skuid" }
             },
             "op": "!=",
             "right": "root"
     {
         "match": {
             "left": {
-                "meta": "skuid"
+                "meta": { "key": "skuid" }
             },
             "op": "<",
             "right": 3000
     {
         "match": {
             "left": {
-                "meta": "skuid"
+                "meta": { "key": "skuid" }
             },
             "op": ">",
             "right": 3000
     {
         "match": {
             "left": {
-                "meta": "skuid"
+                "meta": { "key": "skuid" }
             },
             "right": 3000
         }
     {
         "match": {
             "left": {
-                "meta": "skuid"
+                "meta": { "key": "skuid" }
             },
             "right": {
                 "range": [ 3001, 3005 ]
     {
         "match": {
             "left": {
-                "meta": "skuid"
+                "meta": { "key": "skuid" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "skuid"
+                "meta": { "key": "skuid" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "skuid"
+                "meta": { "key": "skuid" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "skgid"
+                "meta": { "key": "skgid" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "skgid"
+                "meta": { "key": "skgid" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "skgid"
+                "meta": { "key": "skgid" }
             },
             "right": "root"
         }
     {
         "match": {
             "left": {
-                "meta": "skgid"
+                "meta": { "key": "skgid" }
             },
             "op": "!=",
             "right": "root"
     {
         "match": {
             "left": {
-                "meta": "skgid"
+                "meta": { "key": "skgid" }
             },
             "op": "<",
             "right": 3000
     {
         "match": {
             "left": {
-                "meta": "skgid"
+                "meta": { "key": "skgid" }
             },
             "op": ">",
             "right": 3000
     {
         "match": {
             "left": {
-                "meta": "skgid"
+                "meta": { "key": "skgid" }
             },
             "right": 3000
         }
     {
         "match": {
             "left": {
-                "meta": "skgid"
+                "meta": { "key": "skgid" }
             },
             "right": {
                 "range": [ 2001, 2005 ]
     {
         "match": {
             "left": {
-                "meta": "skgid"
+                "meta": { "key": "skgid" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "skgid"
+                "meta": { "key": "skgid" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "skgid"
+                "meta": { "key": "skgid" }
             },
             "op": "!=",
             "right": {
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": { "^": [ "0xffffffc8", "0x16" ] }
         }
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": { "&": [ "0x16", "0x16" ] }
         }
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": { "|": [ "0xffffffe9", "0x16" ] }
         }
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": { "&": [ "0xffffffde", "0x16" ] }
         }
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": { "|": [ "0xf045ffde", "0x10" ] }
         }
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": { "|": [ "0xffffffde", "0x16" ] }
         }
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": { "|": [ "0x32", "0xfffff" ] }
         }
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": { "^": [ "0xfffe", "0x16" ] }
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "oif"
+                "meta": { "key": "oif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "oifname"
+                "meta": { "key": "oifname" }
             },
             "right": "dummy2"
         }
     {
         "match": {
             "left": {
-                "meta": "skuid"
+                "meta": { "key": "skuid" }
             },
             "right": 3000
         }
     {
         "match": {
             "left": {
-                "meta": "skgid"
+                "meta": { "key": "skgid" }
             },
             "right": 3000
         }
     {
         "match": {
             "left": {
-                "meta": "rtclassid"
+                "meta": { "key": "rtclassid" }
             },
             "right": "cosmos"
         }
     {
         "match": {
             "left": {
-                "meta": "pkttype"
+                "meta": { "key": "pkttype" }
             },
             "right": "broadcast"
         }
     {
         "match": {
             "left": {
-                "meta": "pkttype"
+                "meta": { "key": "pkttype" }
             },
             "right": "host"
         }
     {
         "match": {
             "left": {
-                "meta": "pkttype"
+                "meta": { "key": "pkttype" }
             },
             "right": "multicast"
         }
     {
         "match": {
             "left": {
-                "meta": "pkttype"
+                "meta": { "key": "pkttype" }
             },
             "op": "!=",
             "right": "broadcast"
     {
         "match": {
             "left": {
-                "meta": "pkttype"
+                "meta": { "key": "pkttype" }
             },
             "op": "!=",
             "right": "host"
     {
         "match": {
             "left": {
-                "meta": "pkttype"
+                "meta": { "key": "pkttype" }
             },
             "op": "!=",
             "right": "multicast"
     {
         "match": {
             "left": {
-                "meta": "pkttype"
+                "meta": { "key": "pkttype" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "cpu"
+                "meta": { "key": "cpu" }
             },
             "right": 1
         }
     {
         "match": {
             "left": {
-                "meta": "cpu"
+                "meta": { "key": "cpu" }
             },
             "op": "!=",
             "right": 1
     {
         "match": {
             "left": {
-                "meta": "cpu"
+                "meta": { "key": "cpu" }
             },
             "right": {
                 "range": [ 1, 3 ]
     {
         "match": {
             "left": {
-                "meta": "cpu"
+                "meta": { "key": "cpu" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "cpu"
+                "meta": { "key": "cpu" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "cpu"
+                "meta": { "key": "cpu" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "cpu"
+                "meta": { "key": "cpu" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "iifgroup"
+                "meta": { "key": "iifgroup" }
             },
             "right": 0
         }
     {
         "match": {
             "left": {
-                "meta": "iifgroup"
+                "meta": { "key": "iifgroup" }
             },
             "op": "!=",
             "right": 0
     {
         "match": {
             "left": {
-                "meta": "iifgroup"
+                "meta": { "key": "iifgroup" }
             },
             "right": "default"
         }
     {
         "match": {
             "left": {
-                "meta": "iifgroup"
+                "meta": { "key": "iifgroup" }
             },
             "op": "!=",
             "right": "default"
     {
         "match": {
             "left": {
-                "meta": "iifgroup"
+                "meta": { "key": "iifgroup" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "iifgroup"
+                "meta": { "key": "iifgroup" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "iifgroup"
+                "meta": { "key": "iifgroup" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "iifgroup"
+                "meta": { "key": "iifgroup" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "iifgroup"
+                "meta": { "key": "iifgroup" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "iifgroup"
+                "meta": { "key": "iifgroup" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "oifgroup"
+                "meta": { "key": "oifgroup" }
             },
             "right": 0
         }
     {
         "match": {
             "left": {
-                "meta": "oifgroup"
+                "meta": { "key": "oifgroup" }
             },
             "op": "!=",
             "right": 0
     {
         "match": {
             "left": {
-                "meta": "oifgroup"
+                "meta": { "key": "oifgroup" }
             },
             "right": "default"
         }
     {
         "match": {
             "left": {
-                "meta": "oifgroup"
+                "meta": { "key": "oifgroup" }
             },
             "op": "!=",
             "right": "default"
     {
         "match": {
             "left": {
-                "meta": "oifgroup"
+                "meta": { "key": "oifgroup" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "oifgroup"
+                "meta": { "key": "oifgroup" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "oifgroup"
+                "meta": { "key": "oifgroup" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "oifgroup"
+                "meta": { "key": "oifgroup" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "oifgroup"
+                "meta": { "key": "oifgroup" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "oifgroup"
+                "meta": { "key": "oifgroup" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "cgroup"
+                "meta": { "key": "cgroup" }
             },
             "right": 1048577
         }
     {
         "match": {
             "left": {
-                "meta": "cgroup"
+                "meta": { "key": "cgroup" }
             },
             "op": "!=",
             "right": 1048577
     {
         "match": {
             "left": {
-                "meta": "cgroup"
+                "meta": { "key": "cgroup" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "cgroup"
+                "meta": { "key": "cgroup" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "cgroup"
+                "meta": { "key": "cgroup" }
             },
             "right": {
                 "range": [ 1048577, 1048578 ]
     {
         "match": {
             "left": {
-                "meta": "cgroup"
+                "meta": { "key": "cgroup" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "cgroup"
+                "meta": { "key": "cgroup" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "cgroup"
+                "meta": { "key": "cgroup" }
             },
             "op": "!=",
             "right": {
             "left": {
                 "concat": [
                     {
-                        "meta": "iif"
+                        "meta": { "key": "iif" }
                     },
                     {
-                        "meta": "oif"
+                        "meta": { "key": "oif" }
                     }
                 ]
             },
             "left": {
                 "concat": [
                     {
-                        "meta": "iif"
+                        "meta": { "key": "iif" }
                     },
                     {
-                        "meta": "oif"
+                        "meta": { "key": "oif" }
                     },
                     {
-                        "meta": "mark"
+                        "meta": { "key": "mark" }
                     }
                 ]
             },
             "left": {
                 "concat": [
                     {
-                        "meta": "iif"
+                        "meta": { "key": "iif" }
                     },
                     {
-                        "meta": "oif"
+                        "meta": { "key": "oif" }
                     }
                 ]
             },
     {
         "match": {
             "left": {
-                "meta": "random"
+                "meta": { "key": "random" }
             },
             "right": 1
         }
     {
         "match": {
             "left": {
-                "meta": "random"
+                "meta": { "key": "random" }
             },
             "op": ">",
             "right": 1000000
index a4b9633aa970242ae1e0322ddc1a30a2d256b23b..682ad684a17204b39e67f1fb2c6cf30875bab289 100644 (file)
@@ -3,7 +3,7 @@
     {
         "match": {
             "left": {
-                "meta": "protocol"
+                "meta": { "key": "protocol" }
             },
             "right": {
                 "set": [
@@ -22,7 +22,7 @@
     {
         "match": {
             "left": {
-                "meta": "protocol"
+                "meta": { "key": "protocol" }
             },
             "op": "!=",
             "right": {
@@ -42,7 +42,7 @@
     {
         "match": {
             "left": {
-                "meta": "priority"
+                "meta": { "key": "priority" }
             },
             "right": "8765:4321"
         }
@@ -54,7 +54,7 @@
     {
         "match": {
             "left": {
-                "meta": "priority"
+                "meta": { "key": "priority" }
             },
             "right": "8765:4321"
         }
@@ -66,7 +66,7 @@
     {
         "match": {
             "left": {
-                "meta": "priority"
+                "meta": { "key": "priority" }
             },
             "right": {
                 "set": [
@@ -84,7 +84,7 @@
     {
         "match": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 4
         }
@@ -96,7 +96,7 @@
     {
         "match": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 50
         }
             "left": {
                 "&": [
                     {
-                        "meta": "mark"
+                        "meta": { "key": "mark" }
                     },
                     3
                 ]
             "left": {
                 "&": [
                     {
-                        "meta": "mark"
+                        "meta": { "key": "mark" }
                     },
                     3
                 ]
     {
         "match": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 16
         }
     {
         "match": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "op": "!=",
             "right": 16
             "left": {
                 "|": [
                     {
-                        "meta": "mark"
+                        "meta": { "key": "mark" }
                     },
                     3
                 ]
             "left": {
                 "|": [
                     {
-                        "meta": "mark"
+                        "meta": { "key": "mark" }
                     },
                     3
                 ]
     {
         "match": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 2
         }
     {
         "match": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "op": "!=",
             "right": 2
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "oifname"
+                "meta": { "key": "oifname" }
             },
             "right": {
                 "set": [
     {
         "match": {
             "left": {
-                "meta": "skuid"
+                "meta": { "key": "skuid" }
             },
             "right": {
                 "set": [ 0, 1, 2 ]
     {
         "match": {
             "left": {
-                "meta": "skuid"
+                "meta": { "key": "skuid" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "skuid"
+                "meta": { "key": "skuid" }
             },
             "right": 0
         }
     {
         "match": {
             "left": {
-                "meta": "skuid"
+                "meta": { "key": "skuid" }
             },
             "op": "!=",
             "right": 0
     {
         "match": {
             "left": {
-                "meta": "skgid"
+                "meta": { "key": "skgid" }
             },
             "right": {
                 "set": [ 0, 1, 2 ]
     {
         "match": {
             "left": {
-                "meta": "skgid"
+                "meta": { "key": "skgid" }
             },
             "op": "!=",
             "right": {
     {
         "match": {
             "left": {
-                "meta": "skgid"
+                "meta": { "key": "skgid" }
             },
             "right": 0
         }
     {
         "match": {
             "left": {
-                "meta": "skgid"
+                "meta": { "key": "skgid" }
             },
             "op": "!=",
             "right": 0
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 4294967262
         }
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 22
         }
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 4294967295
         }
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 22
         }
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 4031119326
         }
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 4294967262
         }
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 1048575
         }
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 65512
         }
     {
         "match": {
             "left": {
-                "meta": "iifgroup"
+                "meta": { "key": "iifgroup" }
             },
             "right": "default"
         }
     {
         "match": {
             "left": {
-                "meta": "iifgroup"
+                "meta": { "key": "iifgroup" }
             },
             "op": "!=",
             "right": "default"
     {
         "match": {
             "left": {
-                "meta": "oifgroup"
+                "meta": { "key": "oifgroup" }
             },
             "right": "default"
         }
     {
         "match": {
             "left": {
-                "meta": "oifgroup"
+                "meta": { "key": "oifgroup" }
             },
             "op": "!=",
             "right": "default"
             "left": {
                 "concat": [
                     {
-                        "meta": "iif"
+                        "meta": { "key": "iif" }
                     },
                     {
-                        "meta": "oif"
+                        "meta": { "key": "oif" }
                     },
                     {
-                        "meta": "mark"
+                        "meta": { "key": "mark" }
                     }
                 ]
             },
index b4ce0bd86310c4550cce90326f345a5de7d9371e..bfb7c9672b6a342667e71f921a447284aa6b25b2 100644 (file)
@@ -3,7 +3,7 @@
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": {
                 "set": [
@@ -39,7 +39,7 @@
 [
     {
         "match": {
-           "left": { "meta": "l4proto" },
+           "left": { "meta": { "key": "l4proto" } },
            "right": "tcp"
        }
     },
index fd70341c4d64d04afe939904a1c241a2ebd78cec..b423005f9a07cc43ea722b23ba31d38c009bab4f 100644 (file)
@@ -3,7 +3,7 @@
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": {
                 "set": [
index 005fcf642e6576dff92abb5427b15b63304c0327..4fd98d193a7db4a895adf13e8ab650e16e08095b 100644 (file)
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "invalid"
         }
index 0120025b2e7b10742eac201185db30a12e8021fe..0b60c445ca350f57263320c2267a19f5b0eb40d7 100644 (file)
@@ -69,7 +69,7 @@
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "invalid"
         }
index 89cd128c1d000c022d1e5ff0bf2dc33f4688a04f..6efa7c66029edd89784db82fdd4241a45b73f763 100644 (file)
@@ -14,7 +14,7 @@
     {
         "match": {
             "left": {
-                "meta": "iiftype"
+                "meta": { "key": "iiftype" }
             },
             "right": "ether"
         }
index dad5c6e109bb4c0349c4b87456a348c0155f54fb..0c63e26ee1072edb084172b3376fdd2ff126e547 100644 (file)
@@ -3,7 +3,7 @@
     {
         "match": {
             "left": {
-                "meta": "obrname"
+                "meta": { "key": "obrname" }
             },
             "right": "br0"
         }
@@ -15,7 +15,7 @@
     {
         "match": {
             "left": {
-                "meta": "ibrname"
+                "meta": { "key": "ibrname" }
             },
             "right": "br0"
         }
index c0bed56e6ce417489af66e11dcf487e2bff1ad9f..d4750f4d0a7b036be6b4970697bdc35bee3dcf82 100644 (file)
     {
         "match": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 12345
         }
index 6effd1799ca93c23c700c5f0980005322c749e6f..602af9c12a6ca8f3d41d7aab368a9e3d8fe22a72 100644 (file)
     {
         "match": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 12345
         }
index 686c43f4c4c793c6c6695751c5e508e06cd9d9a9..9b54e1d00abd8a0943f0256dba372e9f405468b9 100644 (file)
@@ -3,7 +3,7 @@
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv4"
         }
index 0c0964e617f1b62c6f9c32d8503f3a50bac7ea31..accb9d692c7b81ff39d28526846e33e300b44db4 100644 (file)
@@ -14,7 +14,7 @@
     {
         "match": {
             "left": {
-                "meta": "iiftype"
+                "meta": { "key": "iiftype" }
             },
             "right": "ether"
         }
index 0daf46e99741676c6aba1977841f45b06fc70f84..b5042adbcb2e6da4a139c37deac3b03cfaa2918f 100644 (file)
@@ -14,7 +14,7 @@
     {
         "match": {
             "left": {
-                "meta": "iiftype"
+                "meta": { "key": "iiftype" }
             },
             "right": "ether"
         }
index c4517605a7186d3040c29f688c53a56668cd0385..55217cc9d1fd7d545bd8542f335b4078b5f592e1 100644 (file)
@@ -32,7 +32,7 @@
 [
     {
         "match": {
-            "left": { "meta": "nfproto" },
+            "left": { "meta": { "key": "nfproto" } },
             "right": "ipv4"
         }
     },
@@ -53,7 +53,7 @@
 [
     {
         "match": {
-            "left": { "meta": "nfproto" },
+            "left": { "meta": { "key": "nfproto" } },
             "right": "ipv4"
         }
     },
@@ -74,7 +74,7 @@
 [
     {
         "match": {
-            "left": { "meta": "nfproto" },
+            "left": { "meta": { "key": "nfproto" } },
             "right": "ipv6"
         }
     },
@@ -95,7 +95,7 @@
 [
     {
         "match": {
-            "left": { "meta": "nfproto" },
+            "left": { "meta": { "key": "nfproto" } },
             "right": "ipv6"
         }
     },
index 006419e3dc02b806109496e3bcbf1882e0cee397..23ee7ed800a03d0082f81d3375fafc6b7e4aea5c 100644 (file)
@@ -96,7 +96,7 @@
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": "ipv6-icmp"
         }
index 94034388f931ba18eb2446fd4ba102a02d07d531..55158fee44c1eb5022d2ed7eaa15f457e2e32f71 100644 (file)
@@ -66,7 +66,7 @@
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": 58
         }
index b7bb10a91a1a12116926e0fe64279810725b5599..bb7f2a05b0c014bfca708ccf82d61085acf1e9ba 100644 (file)
@@ -3,7 +3,7 @@
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": {
                 "map": {
@@ -36,7 +36,7 @@
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": {
                 "map": {
index 5a410b3be25bb338e2def6534a456865040201c2..74c9b4f62c8a00ce862b04a4dca08b842b279f48 100644 (file)
@@ -3,7 +3,7 @@
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": {
                 "map": {
@@ -36,7 +36,7 @@
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": {
                 "map": {
index 2687f69e351c32d9c8e5005f527b8f3519da2587..6c5f4567a5f49258e9a02b3b1b315a1bae5757a3 100644 (file)
@@ -3,7 +3,7 @@
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv4"
         }
@@ -15,7 +15,7 @@
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv6"
         }
@@ -27,7 +27,7 @@
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": {
                 "set": [
@@ -44,7 +44,7 @@
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "op": "!=",
             "right": {
@@ -62,7 +62,7 @@
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv6"
         }
@@ -85,7 +85,7 @@
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv4"
         }
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv4"
         }
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv6"
         }
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": "tcp"
         }
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv4"
         }
     {
         "match": {
             "left": {
-                "meta": "secpath"
+                "meta": { "key": "secpath" }
             },
             "right": true
         }
     {
         "match": {
             "left": {
-                "meta": "secpath"
+                "meta": { "key": "secpath" }
             },
             "right": false
         }
index 19b2d2621f6e0704e02f8defcce75e47917107f2..0dc3371f6809f207a5f7033287a2314652221b50 100644 (file)
@@ -18,7 +18,7 @@
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv6"
         }
@@ -26,7 +26,7 @@
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": 6
         }
index 46d4857a57c9901d1d42968622002a1ddf7fafd1..b63cb7df7e05a4dd1784389de664b544b77bd9e2 100644 (file)
     {
         "match": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 12345
         }
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv4"
         }
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv6"
         }
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv4"
         }
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv6"
         }
index b1e7799005256c680e44e67aaa818522d4cc564d..46875434046f9c816d5bf083b74515080ead511d 100644 (file)
@@ -3,7 +3,7 @@
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv4"
         }
@@ -21,7 +21,7 @@
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv4"
         }
@@ -39,7 +39,7 @@
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv4"
         }
@@ -57,7 +57,7 @@
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv4"
         }
@@ -72,7 +72,7 @@
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv4"
         }
@@ -90,7 +90,7 @@
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv4"
         }
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv4"
         }
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv6"
         }
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv6"
         }
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv6"
         }
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv6"
         }
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": 6
         }
     {
         "match": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 12345
         }
index 32e1d437474926eda3d4b7643db0f589a434bd42..92f2dbeafe6005f1ad2cbf5348710624e6fe00da 100644 (file)
@@ -3,7 +3,7 @@
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv4"
         }
index 1d3ecac1371454b844dcf28c655003b9739dad0c..de765bd954d57f95adb879f5afe27754580b532e 100644 (file)
@@ -3,7 +3,7 @@
     {
         "match": {
             "left": {
-                "meta": "nfproto"
+                "meta": { "key": "nfproto" }
             },
             "right": "ipv4"
         }
index d760fb7566ee1455fab81c4c03cabf29338a66a6..096fe559c6645dbd84d407d835824ebd7fa8a852 100644 (file)
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
index 56f8272f6c348d23761946822941b34a3c740c3e..f014030575dfc3317a384f6fdce9193c388a167c 100644 (file)
@@ -3,7 +3,7 @@
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "eth0"
         }
@@ -33,7 +33,7 @@
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "eth0"
         }
@@ -64,7 +64,7 @@
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "eth0"
         }
@@ -98,7 +98,7 @@
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "eth0"
         }
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "eth0"
         }
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "eth0"
         }
index 022ae0b58bc5650d51cdec462804c2a690e5e0dd..f176bf7e147b984baf279c4d9ba789e2f0b391d4 100644 (file)
@@ -14,7 +14,7 @@
     {
         "match": {
             "left": {
-                "meta": "iiftype"
+                "meta": { "key": "iiftype" }
             },
             "right": "ether"
         }
index d66e42643acb3e8402184bc09fa28bda9b3ebbd1..a6b53571e7a47f50c7ed6c8a917958af024ca2d0 100644 (file)
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
index 21143089dfc7c291fbdeae126934500518593853..967e2a59fabbe4ec5608c90697d857b6c2177297 100644 (file)
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
index 82b7cdcc6f50bf56bdc63e1a3b306078295a6fd1..9fd3339cef488f68e3deb9302506bafdebbfa6ca 100644 (file)
@@ -40,7 +40,7 @@
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 1
         }
index bbc318a79a6ae880dd103df0d35e91b8b91ee2c8..908288148a938cc65129c8b3c172991534138743 100644 (file)
@@ -29,7 +29,7 @@
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 1
         }
index 4eae3b9808e43aa2bd1b3a49560c6e8ab762c1b2..f2f798fe6bca9eb5d25e53c4271103b3bf1cd876 100644 (file)
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "eth0"
         }
index e538b748895fae6b3e86e5fd1f4048102f129d02..c06e48ffb081817f56b4a34a79adda2cf56ad2ea 100644 (file)
@@ -18,7 +18,7 @@
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": "icmp"
         }
@@ -41,7 +41,7 @@
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": "ipv6-icmp"
         }
@@ -64,7 +64,7 @@
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": 58
         }
index 58e78ee91db5160b127247361b4a1048bd046d1c..4a41489b73bac7e1d390ef82d914c93a90c97ab6 100644 (file)
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "eth0"
         }
index e0b8e2b29601982b47b5e15c9affe3d4f5c77d35..e1886fa3510d4e32a60fe597a3ad90dcd608cd66 100644 (file)
@@ -80,7 +80,7 @@
     {
         "match": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": "0x80000000"
         }
index 099320c60c00cb870f2e9d0c5e1c4f7bd8756801..6829792c4a1ad45dd417adaff77b9cf72797e514 100644 (file)
@@ -10,7 +10,7 @@
     {
         "match": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 2147483648
         }
index b925b6c745e880bbf0a3c64a52d5228e2e0c4ff3..1bf54f40427c9dc174d6b3594ece0e725b6c3837 100644 (file)
@@ -3,7 +3,7 @@
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "eth0"
         }
@@ -33,7 +33,7 @@
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "eth0"
         }
@@ -64,7 +64,7 @@
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "eth0"
         }
@@ -98,7 +98,7 @@
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "eth0"
         }
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "eth0"
         }
index 4446ae66f1a6101ab68315dd168fad77ffaa9477..f27c25dc3b0f73c8634fec92b9e480c64e283b26 100644 (file)
@@ -3,7 +3,7 @@
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "eth0"
         }
@@ -37,7 +37,7 @@
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "eth0"
         }
index f2d2f6d0061c63573a14ea4cdc337659ae81d9c2..7de304814e1640cc2699a203975d78142802a3fe 100644 (file)
@@ -14,7 +14,7 @@
     {
         "match": {
             "left": {
-                "meta": "iiftype"
+                "meta": { "key": "iiftype" }
             },
             "right": "ether"
         }
index ef33f74d1aaf875783886eb0e42a055d02c9c84d..be4dca676172f441ff37c5e0aaa7f89b0607645b 100644 (file)
@@ -8,7 +8,7 @@
                     "val": {
                         "concat": [
                             {
-                                "meta": "iif"
+                                "meta": { "key": "iif" }
                             },
                             {
                                 "payload": {
@@ -45,7 +45,7 @@
                                 }
                             },
                             {
-                                "meta": "iif"
+                                "meta": { "key": "iif" }
                             }
                         ]
                     }
index ef33f74d1aaf875783886eb0e42a055d02c9c84d..be4dca676172f441ff37c5e0aaa7f89b0607645b 100644 (file)
@@ -8,7 +8,7 @@
                     "val": {
                         "concat": [
                             {
-                                "meta": "iif"
+                                "meta": { "key": "iif" }
                             },
                             {
                                 "payload": {
@@ -45,7 +45,7 @@
                                 }
                             },
                             {
-                                "meta": "iif"
+                                "meta": { "key": "iif" }
                             }
                         ]
                     }
index 272ef0d0456b43cde39bbff1ba47ad2a7357dc43..925789cdf7a54709ccfaa06b3fb86fd77aa1248a 100644 (file)
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
index 6f9835334e1474c6e1f4ea5ccfe8b22ee5be15f5..d72f3d189a416c94d97957b3803ae1cff752baff 100644 (file)
     {
         "match": {
             "left": {
-                "meta": "iif"
+                "meta": { "key": "iif" }
             },
             "right": "lo"
         }
index c8c4f7122228d85e647b7749da658003ded87d73..3dff018a232f2d38ebad59b4aa6bc2983e99088d 100644 (file)
@@ -3,7 +3,7 @@
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": {
                 "map": {
index 3eecf13bdeb9441bf08a337fb6187349b8dc01ca..c1baf0ccefc01231d1ea70a88e7f8a28ca80211b 100644 (file)
@@ -3,7 +3,7 @@
     {
         "mangle": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": {
                 "map": {
index a54761d3c1eaa92603eac1a436e90e8ebf2b6b34..8191ce51a5ee7d7ae5c848804b83e0a171aba247 100644 (file)
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": 6
         }
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": 6
         }
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "eth0"
         }
index cc800062b59347000dab47ab8c2ccd1f92617a3d..176ef0f505665a8c46ce10466b0ef578e1382c48 100644 (file)
@@ -18,7 +18,7 @@
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": "ipv6-icmp"
         }
@@ -41,7 +41,7 @@
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": "icmp"
         }
@@ -64,7 +64,7 @@
     {
         "match": {
             "left": {
-                "meta": "l4proto"
+                "meta": { "key": "l4proto" }
             },
             "right": 1
         }
index 757fbb607e264e070b23b1466d05d55fba0ac628..ed227e76d7799757a630e993003bae1aa57dcb0c 100644 (file)
     {
         "match": {
             "left": {
-                "meta": "iifname"
+                "meta": { "key": "iifname" }
             },
             "right": "eth0"
         }
index a23ee89af09a6092f71247c33433380779684e04..491b996c77daf30fb9d315cf761c359fdb2b578f 100644 (file)
@@ -70,7 +70,7 @@
     {
         "match": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": "0x80000000"
         }
index 1dc59f8881c92ba3c25ff3cca5dd16d9d3850a9a..4f79922901ef6afa3090ee109e2bc99882168b2e 100644 (file)
@@ -10,7 +10,7 @@
     {
         "match": {
             "left": {
-                "meta": "mark"
+                "meta": { "key": "mark" }
             },
             "right": 2147483648
         }