=== 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.
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)
{
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));
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) {
}
},
"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": [
"addr": {
"map": {
"left": {
- "meta": "mark"
+ "meta": { "key": "mark" }
},
"right": {
"set": [
"dev": {
"map": {
"left": {
- "meta": "mark"
+ "meta": { "key": "mark" }
},
"right": {
"set": [
"dev": {
"map": {
"left": {
- "meta": "mark"
+ "meta": { "key": "mark" }
},
"right": {
"set": [
{
"match": {
"left": {
- "meta": "length"
+ "meta": { "key": "length" }
},
"right": 1000
}
{
"match": {
"left": {
- "meta": "length"
+ "meta": { "key": "length" }
},
"right": 22
}
{
"match": {
"left": {
- "meta": "length"
+ "meta": { "key": "length" }
},
"op": "!=",
"right": 233
{
"match": {
"left": {
- "meta": "length"
+ "meta": { "key": "length" }
},
"right": {
"range": [ 33, 45 ]
{
"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" }
},
"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
{
"match": {
"left": {
- "meta": "protocol"
+ "meta": { "key": "protocol" }
},
"right": {
"set": [
{
"match": {
"left": {
- "meta": "protocol"
+ "meta": { "key": "protocol" }
},
"op": "!=",
"right": {
{
"match": {
"left": {
- "meta": "priority"
+ "meta": { "key": "priority" }
},
"right": "8765:4321"
}
{
"match": {
"left": {
- "meta": "priority"
+ "meta": { "key": "priority" }
},
"right": "8765:4321"
}
{
"match": {
"left": {
- "meta": "priority"
+ "meta": { "key": "priority" }
},
"right": {
"set": [
{
"match": {
"left": {
- "meta": "mark"
+ "meta": { "key": "mark" }
},
"right": 4
}
{
"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" }
}
]
},
{
"match": {
"left": {
- "meta": "l4proto"
+ "meta": { "key": "l4proto" }
},
"right": {
"set": [
[
{
"match": {
- "left": { "meta": "l4proto" },
+ "left": { "meta": { "key": "l4proto" } },
"right": "tcp"
}
},
{
"match": {
"left": {
- "meta": "l4proto"
+ "meta": { "key": "l4proto" }
},
"right": {
"set": [
{
"match": {
"left": {
- "meta": "iifname"
+ "meta": { "key": "iifname" }
},
"right": "invalid"
}
{
"match": {
"left": {
- "meta": "iifname"
+ "meta": { "key": "iifname" }
},
"right": "invalid"
}
{
"match": {
"left": {
- "meta": "iiftype"
+ "meta": { "key": "iiftype" }
},
"right": "ether"
}
{
"match": {
"left": {
- "meta": "obrname"
+ "meta": { "key": "obrname" }
},
"right": "br0"
}
{
"match": {
"left": {
- "meta": "ibrname"
+ "meta": { "key": "ibrname" }
},
"right": "br0"
}
{
"match": {
"left": {
- "meta": "mark"
+ "meta": { "key": "mark" }
},
"right": 12345
}
{
"match": {
"left": {
- "meta": "mark"
+ "meta": { "key": "mark" }
},
"right": 12345
}
{
"match": {
"left": {
- "meta": "nfproto"
+ "meta": { "key": "nfproto" }
},
"right": "ipv4"
}
{
"match": {
"left": {
- "meta": "iiftype"
+ "meta": { "key": "iiftype" }
},
"right": "ether"
}
{
"match": {
"left": {
- "meta": "iiftype"
+ "meta": { "key": "iiftype" }
},
"right": "ether"
}
[
{
"match": {
- "left": { "meta": "nfproto" },
+ "left": { "meta": { "key": "nfproto" } },
"right": "ipv4"
}
},
[
{
"match": {
- "left": { "meta": "nfproto" },
+ "left": { "meta": { "key": "nfproto" } },
"right": "ipv4"
}
},
[
{
"match": {
- "left": { "meta": "nfproto" },
+ "left": { "meta": { "key": "nfproto" } },
"right": "ipv6"
}
},
[
{
"match": {
- "left": { "meta": "nfproto" },
+ "left": { "meta": { "key": "nfproto" } },
"right": "ipv6"
}
},
{
"match": {
"left": {
- "meta": "l4proto"
+ "meta": { "key": "l4proto" }
},
"right": "ipv6-icmp"
}
{
"match": {
"left": {
- "meta": "l4proto"
+ "meta": { "key": "l4proto" }
},
"right": 58
}
{
"mangle": {
"left": {
- "meta": "mark"
+ "meta": { "key": "mark" }
},
"right": {
"map": {
{
"mangle": {
"left": {
- "meta": "mark"
+ "meta": { "key": "mark" }
},
"right": {
"map": {
{
"mangle": {
"left": {
- "meta": "mark"
+ "meta": { "key": "mark" }
},
"right": {
"map": {
{
"mangle": {
"left": {
- "meta": "mark"
+ "meta": { "key": "mark" }
},
"right": {
"map": {
{
"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": {
"set": [
{
"match": {
"left": {
- "meta": "nfproto"
+ "meta": { "key": "nfproto" }
},
"op": "!=",
"right": {
{
"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": "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
}
{
"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
}
{
"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"
}
{
"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": "ipv4"
}
{
"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": "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
}
{
"match": {
"left": {
- "meta": "nfproto"
+ "meta": { "key": "nfproto" }
},
"right": "ipv4"
}
{
"match": {
"left": {
- "meta": "nfproto"
+ "meta": { "key": "nfproto" }
},
"right": "ipv4"
}
{
"match": {
"left": {
- "meta": "iif"
+ "meta": { "key": "iif" }
},
"right": "lo"
}
{
"match": {
"left": {
- "meta": "iif"
+ "meta": { "key": "iif" }
},
"right": "lo"
}
{
"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"
}
{
"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"
}
{
"match": {
"left": {
- "meta": "iiftype"
+ "meta": { "key": "iiftype" }
},
"right": "ether"
}
{
"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"
}
{
"match": {
"left": {
- "meta": "iif"
+ "meta": { "key": "iif" }
},
"right": "lo"
}
{
"mangle": {
"left": {
- "meta": "mark"
+ "meta": { "key": "mark" }
},
"right": 1
}
{
"mangle": {
"left": {
- "meta": "mark"
+ "meta": { "key": "mark" }
},
"right": 1
}
{
"match": {
"left": {
- "meta": "iifname"
+ "meta": { "key": "iifname" }
},
"right": "eth0"
}
{
"match": {
"left": {
- "meta": "l4proto"
+ "meta": { "key": "l4proto" }
},
"right": "icmp"
}
{
"match": {
"left": {
- "meta": "l4proto"
+ "meta": { "key": "l4proto" }
},
"right": "ipv6-icmp"
}
{
"match": {
"left": {
- "meta": "l4proto"
+ "meta": { "key": "l4proto" }
},
"right": 58
}
{
"match": {
"left": {
- "meta": "iifname"
+ "meta": { "key": "iifname" }
},
"right": "eth0"
}
{
"match": {
"left": {
- "meta": "mark"
+ "meta": { "key": "mark" }
},
"right": "0x80000000"
}
{
"match": {
"left": {
- "meta": "mark"
+ "meta": { "key": "mark" }
},
"right": 2147483648
}
{
"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"
}
{
"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"
}
{
"match": {
"left": {
- "meta": "iifname"
+ "meta": { "key": "iifname" }
},
"right": "eth0"
}
{
"match": {
"left": {
- "meta": "iiftype"
+ "meta": { "key": "iiftype" }
},
"right": "ether"
}
"val": {
"concat": [
{
- "meta": "iif"
+ "meta": { "key": "iif" }
},
{
"payload": {
}
},
{
- "meta": "iif"
+ "meta": { "key": "iif" }
}
]
}
"val": {
"concat": [
{
- "meta": "iif"
+ "meta": { "key": "iif" }
},
{
"payload": {
}
},
{
- "meta": "iif"
+ "meta": { "key": "iif" }
}
]
}
{
"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"
}
{
"match": {
"left": {
- "meta": "iif"
+ "meta": { "key": "iif" }
},
"right": "lo"
}
{
"mangle": {
"left": {
- "meta": "mark"
+ "meta": { "key": "mark" }
},
"right": {
"map": {
{
"mangle": {
"left": {
- "meta": "mark"
+ "meta": { "key": "mark" }
},
"right": {
"map": {
{
"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"
}
{
"match": {
"left": {
- "meta": "l4proto"
+ "meta": { "key": "l4proto" }
},
"right": "ipv6-icmp"
}
{
"match": {
"left": {
- "meta": "l4proto"
+ "meta": { "key": "l4proto" }
},
"right": "icmp"
}
{
"match": {
"left": {
- "meta": "l4proto"
+ "meta": { "key": "l4proto" }
},
"right": 1
}
{
"match": {
"left": {
- "meta": "iifname"
+ "meta": { "key": "iifname" }
},
"right": "eth0"
}
{
"match": {
"left": {
- "meta": "mark"
+ "meta": { "key": "mark" }
},
"right": "0x80000000"
}
{
"match": {
"left": {
- "meta": "mark"
+ "meta": { "key": "mark" }
},
"right": 2147483648
}