]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
JSON: Call verdict maps 'vmap' in JSON as well
authorPhil Sutter <phil@nwl.cc>
Fri, 8 Jun 2018 15:27:13 +0000 (17:27 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 11 Jun 2018 09:31:49 +0000 (11:31 +0200)
This way JSON format is more consistent with the standard one.

Signed-off-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
17 files changed:
src/json.c
src/parser_json.c
tests/py/any/ct.t.json
tests/py/any/ct.t.json.output
tests/py/any/meta.t.json
tests/py/inet/fib.t.json
tests/py/inet/fib.t.json.output
tests/py/inet/tcp.t.json
tests/py/ip/ip.t.json
tests/py/ip/masquerade.t.json
tests/py/ip/redirect.t.json
tests/py/ip6/ip6.t.json
tests/py/ip6/ip6.t.json.output
tests/py/ip6/masquerade.t.json
tests/py/ip6/redirect.t.json
tests/py/ip6/vmap.t.json
tests/py/ip6/vmap.t.json.output

index b6e6ca9c6c38338ffd879eb0c2d45531e189dcf9..306cab7b5426c2cb5c1717fb614506646297684e 100644 (file)
@@ -560,7 +560,13 @@ json_t *mapping_expr_json(const struct expr *expr, struct output_ctx *octx)
 
 json_t *map_expr_json(const struct expr *expr, struct output_ctx *octx)
 {
-       return json_pack("{s:{s:o, s:o}}", "map",
+       const char *type = "map";
+
+       if (expr->mappings->ops->type == EXPR_SET_REF &&
+           expr->mappings->set->datatype->type == TYPE_VERDICT)
+               type = "vmap";
+
+       return json_pack("{s:{s:o, s:o}}", type,
                         "left", expr_print_json(expr->map, octx),
                         "right", expr_print_json(expr->mappings, octx));
 }
index 6e14fb7278fb038f32700ce9263f6f7eb45c3e5b..e340bebc03b6d412810e75ddcb460db93546abe8 100644 (file)
@@ -2064,7 +2064,7 @@ static struct stmt *json_parse_stmt(struct json_ctx *ctx, json_t *root)
                return NULL;
 
        /* Yes, verdict_map_stmt is actually an expression */
-       if (!strcmp(type, "map")) {
+       if (!strcmp(type, "vmap")) {
                struct expr *expr = json_parse_map_expr(ctx, type, tmp);
 
                if (!expr) {
index 3ec00ab3b5d783dffaf590bd2086ba64e5cdfc68..e393e52456a363d8fa7dc6211d7848d99bf3606c 100644 (file)
 # ct state . ct mark vmap { new . 0x12345678 : drop}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "concat": [
                     {
index ce33a6810a496176fb6f84ca297f8f7f8dc4ae39..f6b6a90701aab3f8ef20ad7e55a3df7cb483a599 100644 (file)
 # ct state . ct mark vmap { new . 0x12345678 : drop}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "concat": [
                     {
index ae74507892f70cdf6dd31365ae5def1029fbb2bb..7aea79eb323861d9e31755d8fbbe709717149ce5 100644 (file)
 # meta iif . meta oif vmap { "lo" . "lo" : drop }
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "concat": [
                     {
index cb15e39709d6cc0289893fec0190a9957fac4a16..00c79abc05006da5041415435ed5c7860ecfe6ab 100644 (file)
@@ -56,7 +56,7 @@
 # fib daddr . iif type vmap { blackhole : drop, prohibit : drop, unicast : accept }
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "fib": {
                     "flags": [
index c473b2afc4ffe16abb58935785bd85fe66492998..b06e488ac2d14376798905ab9cb98517db12a9a0 100644 (file)
@@ -1,7 +1,7 @@
 # fib daddr . iif type vmap { blackhole : drop, prohibit : drop, unicast : accept }
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "fib": {
                     "flags": [
index f5df72aa252a6c5fdb2c148e9e7952a320f01715..2f83566d4fab6fd9cfe91cfbf8b25741f3d22eff 100644 (file)
 # tcp dport vmap { 22 : accept, 23 : drop }
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "dport",
 # tcp dport vmap { 25:accept, 28:drop }
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "dport",
 # tcp sport vmap { 25:accept, 28:drop }
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "sport",
index abd45ce760159b37f780ef534821dec27ae3f453..d66e42643acb3e8402184bc09fa28bda9b3ebbd1 100644 (file)
 # ip dscp vmap { cs1 : continue , cs4 : accept } counter
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "dscp",
 # ip hdrlength vmap { 0-4 : drop, 5 : accept, 6 : continue } counter
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "hdrlength",
index 44f371ad4dec25e636f279307d1d314118d1b5ac..4eae3b9808e43aa2bd1b3a49560c6e8ab762c1b2 100644 (file)
         }
     },
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "dport",
index b22a327df2cea9e0ee7d446a2bdc1e8bbf084c3a..58e78ee91db5160b127247361b4a1048bd046d1c 100644 (file)
         }
     },
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "dport",
index 8e217bb19f8ec97a9a45933557e488e62bd3e27f..272ef0d0456b43cde39bbff1ba47ad2a7357dc43 100644 (file)
 # ip6 dscp vmap { 0x04 : accept, 0x3f : continue } counter
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "dscp",
 # ip6 flowlabel vmap { 0 : accept, 2 : continue } 
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "flowlabel",
index ea7cf777bf12427c2f90cca2445d2af0b3f06bbf..6f9835334e1474c6e1f4ea5ccfe8b22ee5be15f5 100644 (file)
@@ -71,7 +71,7 @@
 # ip6 dscp vmap { 0x04 : accept, 0x3f : continue } counter
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "dscp",
index 65f65ee5187a9bf737e38c13f03b852c49fa9f12..a54761d3c1eaa92603eac1a436e90e8ebf2b6b34 100644 (file)
         }
     },
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "dport",
index 08d6a086db2f4b43ba66b7e4120f85f40738726f..757fbb607e264e070b23b1466d05d55fba0ac628 100644 (file)
         }
     },
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "dport",
index 1fbe0093dac5d3daf43c61927ff9f6b3671035e2..0dfa0e0d135ec985afa627e6a5badc0d8c7b4168 100644 (file)
@@ -1,7 +1,7 @@
 # ip6 saddr vmap { abcd::3 : accept }
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
@@ -25,7 +25,7 @@
 # ip6 saddr vmap { 1234:1234:1234:1234:1234:1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
@@ -49,7 +49,7 @@
 # ip6 saddr vmap { ::1234:1234:1234:1234:1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
@@ -73,7 +73,7 @@
 # ip6 saddr vmap { 1234::1234:1234:1234:1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
@@ -97,7 +97,7 @@
 # ip6 saddr vmap { 1234:1234::1234:1234:1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:1234::1234:1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:1234:1234::1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:1234:1234:1234::1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:1234:1234:1234:1234::1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:1234:1234:1234:1234:1234:: : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { ::1234:1234:1234:1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234::1234:1234:1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234::1234:1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:1234::1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:1234:1234::1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:1234:1234:1234::1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:1234:1234:1234:1234:: : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { ::1234:1234:1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234::1234:1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234::1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:1234::1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:1234:1234::1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:1234:1234:1234::  : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { ::1234:1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234::1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234::1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:1234::1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:1234:1234:: : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { ::1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234::1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234::1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:1234:: : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { ::1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234::1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:: : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { ::1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:: : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { ::/64 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap {1234:1234:1234:1234:1234:1234:aaaa:: : accept, ::aaaa : drop}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap {1234:1234:1234:1234:1234:1234:aaaa:::accept, ::bbbb : drop}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap {1234:1234:1234:1234:1234:1234:aaaa:::accept,::cccc : drop}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap {1234:1234:1234:1234:1234:1234:aaaa:::accept,::dddd: drop}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
index aba563fc78b92c840e361443655eb37332b32277..3b5bc78e05e18e755fbc8879aa4bf38326ad74b5 100644 (file)
@@ -1,7 +1,7 @@
 # ip6 saddr vmap { ::1234:1234:1234:1234:1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
@@ -25,7 +25,7 @@
 # ip6 saddr vmap { 1234::1234:1234:1234:1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
@@ -49,7 +49,7 @@
 # ip6 saddr vmap { 1234:1234::1234:1234:1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
@@ -73,7 +73,7 @@
 # ip6 saddr vmap { 1234:1234:1234::1234:1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
@@ -97,7 +97,7 @@
 # ip6 saddr vmap { 1234:1234:1234:1234::1234:1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:1234:1234:1234::1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:1234:1234:1234:1234::1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { 1234:1234:1234:1234:1234:1234:1234:: : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap { ::1234:1234 : accept}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap {1234:1234:1234:1234:1234:1234:aaaa:: : accept, ::aaaa : drop}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap {1234:1234:1234:1234:1234:1234:aaaa:::accept, ::bbbb : drop}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap {1234:1234:1234:1234:1234:1234:aaaa:::accept,::cccc : drop}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",
 # ip6 saddr vmap {1234:1234:1234:1234:1234:1234:aaaa:::accept,::dddd: drop}
 [
     {
-        "map": {
+        "vmap": {
             "left": {
                 "payload": {
                     "field": "saddr",