From: Phil Sutter Date: Tue, 12 Aug 2025 15:31:47 +0000 (+0200) Subject: json: Do not reduce single-item arrays on output X-Git-Tag: v1.1.5~15 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5e492307c2c93b7eb654691ca87ddc7ad86640d8;p=thirdparty%2Fnftables.git json: Do not reduce single-item arrays on output This is a partial revert of commit a740f2036ad0d ("json: Introduce json_add_array_new()"), keeping the function but eliminating its primary task which is to replace arrays of size 1 by their only item. While support for this on input is convenient for users, it means extra casing in JSON output parsers to cover for it. The minor reduction in output size does not justify that. Fixes: a740f2036ad0d ("json: Introduce json_add_array_new()") Closes: https://bugzilla.netfilter.org/show_bug.cgi?id=1806 Signed-off-by: Phil Sutter Reviewed-by: Pablo Neira Ayuso --- diff --git a/src/json.c b/src/json.c index 977f5566..4c8b4f34 100644 --- a/src/json.c +++ b/src/json.c @@ -62,14 +62,10 @@ static int json_array_extend_new(json_t *array, json_t *other_array) static void json_add_array_new(json_t *obj, const char *name, json_t *array) { - if (json_array_size(array) > 1) { + if (json_array_size(array)) json_object_set_new(obj, name, array); - } else { - if (json_array_size(array)) - json_object_set(obj, name, - json_array_get(array, 0)); + else json_decref(array); - } } static json_t *expr_print_json(const struct expr *expr, struct output_ctx *octx) diff --git a/tests/py/any/log.t.json.output b/tests/py/any/log.t.json.output index 051c448b..bec70a35 100644 --- a/tests/py/any/log.t.json.output +++ b/tests/py/any/log.t.json.output @@ -9,7 +9,20 @@ [ { "log": { - "flags": "all" + "flags": [ + "all" + ] + } + } +] + +# log flags all +[ + { + "log": { + "flags": [ + "all" + ] } } ] diff --git a/tests/py/any/queue.t.json.output b/tests/py/any/queue.t.json.output index 1104d760..ea372238 100644 --- a/tests/py/any/queue.t.json.output +++ b/tests/py/any/queue.t.json.output @@ -7,3 +7,120 @@ } ] +# queue num 4-5 fanout +[ + { + "queue": { + "flags": [ + "fanout" + ], + "num": { + "range": [ + 4, + 5 + ] + } + } + } +] + +# queue num 4-5 bypass +[ + { + "queue": { + "flags": [ + "bypass" + ], + "num": { + "range": [ + 4, + 5 + ] + } + } + } +] + +# queue flags bypass to numgen inc mod 65536 +[ + { + "queue": { + "flags": [ + "bypass" + ], + "num": { + "numgen": { + "mod": 65536, + "mode": "inc", + "offset": 0 + } + } + } + } +] + +# queue flags bypass to 65535 +[ + { + "queue": { + "flags": [ + "bypass" + ], + "num": 65535 + } + } +] + +# queue flags bypass to 1-65535 +[ + { + "queue": { + "flags": [ + "bypass" + ], + "num": { + "range": [ + 1, + 65535 + ] + } + } + } +] + +# queue flags bypass to oifname map { "eth0" : 0, "ppp0" : 2, "eth1" : 2 } +[ + { + "queue": { + "flags": [ + "bypass" + ], + "num": { + "map": { + "data": { + "set": [ + [ + "eth0", + 0 + ], + [ + "ppp0", + 2 + ], + [ + "eth1", + 2 + ] + ] + }, + "key": { + "meta": { + "key": "oifname" + } + } + } + } + } + } +] + diff --git a/tests/py/inet/fib.t.json b/tests/py/inet/fib.t.json index 14a6249a..2bfe4f70 100644 --- a/tests/py/inet/fib.t.json +++ b/tests/py/inet/fib.t.json @@ -100,9 +100,7 @@ "match": { "left": { "fib": { - "flags": [ - "daddr" - ], + "flags": "daddr", "result": "check" } }, @@ -118,9 +116,7 @@ "match": { "left": { "fib": { - "flags": [ - "daddr" - ], + "flags": "daddr", "result": "check" } }, diff --git a/tests/py/inet/fib.t.json.output b/tests/py/inet/fib.t.json.output index e8d01669..d3396dd2 100644 --- a/tests/py/inet/fib.t.json.output +++ b/tests/py/inet/fib.t.json.output @@ -43,7 +43,9 @@ "match": { "left": { "fib": { - "flags": "daddr", + "flags": [ + "daddr" + ], "result": "check" } }, @@ -59,7 +61,9 @@ "match": { "left": { "fib": { - "flags": "daddr", + "flags": [ + "daddr" + ], "result": "check" } }, @@ -69,3 +73,82 @@ } ] +# fib daddr check vmap { missing : drop, exists : accept } +[ + { + "vmap": { + "data": { + "set": [ + [ + false, + { + "drop": null + } + ], + [ + true, + { + "accept": null + } + ] + ] + }, + "key": { + "fib": { + "flags": [ + "daddr" + ], + "result": "check" + } + } + } + } +] + +# meta mark set fib daddr check . ct mark map { exists . 0x00000000 : 0x00000001 } +[ + { + "mangle": { + "key": { + "meta": { + "key": "mark" + } + }, + "value": { + "map": { + "data": { + "set": [ + [ + { + "concat": [ + true, + 0 + ] + }, + 1 + ] + ] + }, + "key": { + "concat": [ + { + "fib": { + "flags": [ + "daddr" + ], + "result": "check" + } + }, + { + "ct": { + "key": "mark" + } + } + ] + } + } + } + } + } +] + diff --git a/tests/py/inet/snat.t.json.output b/tests/py/inet/snat.t.json.output new file mode 100644 index 00000000..5b958860 --- /dev/null +++ b/tests/py/inet/snat.t.json.output @@ -0,0 +1,22 @@ +# iifname "foo" masquerade random +[ + { + "match": { + "left": { + "meta": { + "key": "iifname" + } + }, + "op": "==", + "right": "foo" + } + }, + { + "masquerade": { + "flags": [ + "random" + ] + } + } +] + diff --git a/tests/py/inet/synproxy.t.json b/tests/py/inet/synproxy.t.json index 1dd85a61..b3cec094 100644 --- a/tests/py/inet/synproxy.t.json +++ b/tests/py/inet/synproxy.t.json @@ -19,9 +19,7 @@ [ { "synproxy": { - "flags": [ - "timestamp" - ] + "flags": "timestamp" } } ] @@ -56,9 +54,7 @@ [ { "synproxy": { - "flags": [ - "sack-perm" - ] + "flags": "sack-perm" } } ] diff --git a/tests/py/inet/synproxy.t.json.output b/tests/py/inet/synproxy.t.json.output index e32cdfb8..a1d81bfe 100644 --- a/tests/py/inet/synproxy.t.json.output +++ b/tests/py/inet/synproxy.t.json.output @@ -2,7 +2,9 @@ [ { "synproxy": { - "flags": "timestamp" + "flags": [ + "timestamp" + ] } } ] @@ -11,7 +13,9 @@ [ { "synproxy": { - "flags": "sack-perm" + "flags": [ + "sack-perm" + ] } } ] diff --git a/tests/py/ip/masquerade.t.json.output b/tests/py/ip/masquerade.t.json.output index 58e7e290..8ca5a426 100644 --- a/tests/py/ip/masquerade.t.json.output +++ b/tests/py/ip/masquerade.t.json.output @@ -121,3 +121,49 @@ } ] +# udp dport 53 masquerade random +[ + { + "match": { + "left": { + "payload": { + "field": "dport", + "protocol": "udp" + } + }, + "op": "==", + "right": 53 + } + }, + { + "masquerade": { + "flags": [ + "random" + ] + } + } +] + +# udp dport 53 masquerade persistent +[ + { + "match": { + "left": { + "payload": { + "field": "dport", + "protocol": "udp" + } + }, + "op": "==", + "right": 53 + } + }, + { + "masquerade": { + "flags": [ + "persistent" + ] + } + } +] + diff --git a/tests/py/ip/redirect.t.json.output b/tests/py/ip/redirect.t.json.output index 4646c60a..09f1e48d 100644 --- a/tests/py/ip/redirect.t.json.output +++ b/tests/py/ip/redirect.t.json.output @@ -1,3 +1,49 @@ +# udp dport 53 redirect random +[ + { + "match": { + "left": { + "payload": { + "field": "dport", + "protocol": "udp" + } + }, + "op": "==", + "right": 53 + } + }, + { + "redirect": { + "flags": [ + "random" + ] + } + } +] + +# udp dport 53 redirect persistent +[ + { + "match": { + "left": { + "payload": { + "field": "dport", + "protocol": "udp" + } + }, + "op": "==", + "right": 53 + } + }, + { + "redirect": { + "flags": [ + "persistent" + ] + } + } +] + # udp dport 53 redirect random,persistent,fully-random [ { @@ -144,3 +190,75 @@ } ] +# tcp dport 9128 redirect to :993 random +[ + { + "match": { + "left": { + "payload": { + "field": "dport", + "protocol": "tcp" + } + }, + "op": "==", + "right": 9128 + } + }, + { + "redirect": { + "flags": [ + "random" + ], + "port": 993 + } + } +] + +# tcp dport 9128 redirect to :993 fully-random +[ + { + "match": { + "left": { + "payload": { + "field": "dport", + "protocol": "tcp" + } + }, + "op": "==", + "right": 9128 + } + }, + { + "redirect": { + "flags": [ + "fully-random" + ], + "port": 993 + } + } +] + +# tcp dport 9128 redirect to :123 persistent +[ + { + "match": { + "left": { + "payload": { + "field": "dport", + "protocol": "tcp" + } + }, + "op": "==", + "right": 9128 + } + }, + { + "redirect": { + "flags": [ + "persistent" + ], + "port": 123 + } + } +] + diff --git a/tests/py/ip/snat.t.json.output b/tests/py/ip/snat.t.json.output index 2a997801..19eba256 100644 --- a/tests/py/ip/snat.t.json.output +++ b/tests/py/ip/snat.t.json.output @@ -241,8 +241,12 @@ } }, "family": "ip", - "flags": "netmap", - "type_flags": "prefix" + "flags": [ + "netmap" + ], + "type_flags": [ + "prefix" + ] } } ] diff --git a/tests/py/ip6/masquerade.t.json.output b/tests/py/ip6/masquerade.t.json.output index 31d0cd9a..21ed4f63 100644 --- a/tests/py/ip6/masquerade.t.json.output +++ b/tests/py/ip6/masquerade.t.json.output @@ -96,3 +96,49 @@ } ] +# udp dport 53 masquerade random +[ + { + "match": { + "left": { + "payload": { + "field": "dport", + "protocol": "udp" + } + }, + "op": "==", + "right": 53 + } + }, + { + "masquerade": { + "flags": [ + "random" + ] + } + } +] + +# udp dport 53 masquerade persistent +[ + { + "match": { + "left": { + "payload": { + "field": "dport", + "protocol": "udp" + } + }, + "op": "==", + "right": 53 + } + }, + { + "masquerade": { + "flags": [ + "persistent" + ] + } + } +] + diff --git a/tests/py/ip6/redirect.t.json.output b/tests/py/ip6/redirect.t.json.output index 0174cc7d..69c7b03d 100644 --- a/tests/py/ip6/redirect.t.json.output +++ b/tests/py/ip6/redirect.t.json.output @@ -144,3 +144,73 @@ } ] +# udp dport 53 redirect random +[ + { + "match": { + "left": { + "payload": { + "field": "dport", + "protocol": "udp" + } + }, + "op": "==", + "right": 53 + } + }, + { + "redirect": { + "flags": [ + "random" + ] + } + } +] + +# udp dport 53 redirect persistent +[ + { + "match": { + "left": { + "payload": { + "field": "dport", + "protocol": "udp" + } + }, + "op": "==", + "right": 53 + } + }, + { + "redirect": { + "flags": [ + "persistent" + ] + } + } +] + +# tcp dport 9128 redirect to :993 random +[ + { + "match": { + "left": { + "payload": { + "field": "dport", + "protocol": "tcp" + } + }, + "op": "==", + "right": 9128 + } + }, + { + "redirect": { + "flags": [ + "random" + ], + "port": 993 + } + } +] + diff --git a/tests/shell/testcases/cache/dumps/0002_interval_0.json-nft b/tests/shell/testcases/cache/dumps/0002_interval_0.json-nft index 5e2b9b42..fa15d658 100644 --- a/tests/shell/testcases/cache/dumps/0002_interval_0.json-nft +++ b/tests/shell/testcases/cache/dumps/0002_interval_0.json-nft @@ -21,7 +21,9 @@ "table": "t", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "prefix": { diff --git a/tests/shell/testcases/chains/dumps/netdev_chain_dormant_autoremove.json-nft b/tests/shell/testcases/chains/dumps/netdev_chain_dormant_autoremove.json-nft index 9151d42f..7f1c76c9 100644 --- a/tests/shell/testcases/chains/dumps/netdev_chain_dormant_autoremove.json-nft +++ b/tests/shell/testcases/chains/dumps/netdev_chain_dormant_autoremove.json-nft @@ -12,7 +12,9 @@ "family": "netdev", "name": "test", "handle": 0, - "flags": "dormant" + "flags": [ + "dormant" + ] } }, { diff --git a/tests/shell/testcases/json/dumps/0001set_statements_0.json-nft b/tests/shell/testcases/json/dumps/0001set_statements_0.json-nft index ecc7eade..91db43e2 100644 --- a/tests/shell/testcases/json/dumps/0001set_statements_0.json-nft +++ b/tests/shell/testcases/json/dumps/0001set_statements_0.json-nft @@ -34,7 +34,9 @@ "type": "ipv4_addr", "handle": 0, "size": 65535, - "flags": "dynamic" + "flags": [ + "dynamic" + ] } }, { diff --git a/tests/shell/testcases/json/single_flag b/tests/shell/testcases/json/single_flag index f0a608ad..1d70f249 100755 --- a/tests/shell/testcases/json/single_flag +++ b/tests/shell/testcases/json/single_flag @@ -47,10 +47,10 @@ JSON_TABLE_1='{"nftables": [{"table": {"family": "ip", "name": "t", "handle": 0, JSON_TABLE_1_EQUIV=$(sed 's/\("flags":\) \([^}]*\)/\1 [\2]/' <<< "$JSON_TABLE_1") STD_TABLE_2=$(sed 's/\(flags dormant\)/\1,persist/' <<< "$STD_TABLE_1") -JSON_TABLE_2=$(sed 's/\("flags":\) \("dormant"\)/\1 [\2, "persist"]/' <<< "$JSON_TABLE_1") +JSON_TABLE_2=$(sed 's/\("dormant"\)/\1, "persist"/' <<< "$JSON_TABLE_1_EQUIV") -back_n_forth "$STD_TABLE_1" "$JSON_TABLE_1" -json_equiv "$JSON_TABLE_1_EQUIV" "$JSON_TABLE_1" +back_n_forth "$STD_TABLE_1" "$JSON_TABLE_1_EQUIV" +json_equiv "$JSON_TABLE_1" "$JSON_TABLE_1_EQUIV" back_n_forth "$STD_TABLE_2" "$JSON_TABLE_2" # @@ -67,10 +67,10 @@ JSON_SET_1='{"nftables": [{"table": {"family": "ip", "name": "t", "handle": 0}}, JSON_SET_1_EQUIV=$(sed 's/\("flags":\) \([^}]*\)/\1 [\2]/' <<< "$JSON_SET_1") STD_SET_2=$(sed 's/\(flags interval\)/\1,timeout/' <<< "$STD_SET_1") -JSON_SET_2=$(sed 's/\("flags":\) \("interval"\)/\1 [\2, "timeout"]/' <<< "$JSON_SET_1") +JSON_SET_2=$(sed 's/\("interval"\)/\1, "timeout"/' <<< "$JSON_SET_1_EQUIV") -back_n_forth "$STD_SET_1" "$JSON_SET_1" -json_equiv "$JSON_SET_1_EQUIV" "$JSON_SET_1" +back_n_forth "$STD_SET_1" "$JSON_SET_1_EQUIV" +json_equiv "$JSON_SET_1" "$JSON_SET_1_EQUIV" back_n_forth "$STD_SET_2" "$JSON_SET_2" # @@ -86,10 +86,10 @@ JSON_FIB_1='{"nftables": [{"table": {"family": "ip", "name": "t", "handle": 0}}, JSON_FIB_1_EQUIV=$(sed 's/\("flags":\) \([^}]*\)/\1 [\2]/' <<< "$JSON_FIB_1") STD_FIB_2=$(sed 's/\(fib saddr\)/\1 . iif/' <<< "$STD_FIB_1") -JSON_FIB_2=$(sed 's/\("flags":\) \("saddr"\)/\1 [\2, "iif"]/' <<< "$JSON_FIB_1") +JSON_FIB_2=$(sed 's/\("saddr"\)/\1, "iif"/' <<< "$JSON_FIB_1_EQUIV") -back_n_forth "$STD_FIB_1" "$JSON_FIB_1" -json_equiv "$JSON_FIB_1_EQUIV" "$JSON_FIB_1" +back_n_forth "$STD_FIB_1" "$JSON_FIB_1_EQUIV" +json_equiv "$JSON_FIB_1" "$JSON_FIB_1_EQUIV" back_n_forth "$STD_FIB_2" "$JSON_FIB_2" # @@ -105,10 +105,10 @@ JSON_NAT_1='{"nftables": [{"table": {"family": "ip", "name": "t", "handle": 0}}, JSON_NAT_1_EQUIV=$(sed 's/\("flags":\) \([^}]*\)/\1 [\2]/' <<< "$JSON_NAT_1") STD_NAT_2=$(sed 's/\(persistent\)/random,\1/' <<< "$STD_NAT_1") -JSON_NAT_2=$(sed 's/\("flags":\) \("persistent"\)/\1 ["random", \2]/' <<< "$JSON_NAT_1") +JSON_NAT_2=$(sed 's/\("persistent"\)/"random", \1/' <<< "$JSON_NAT_1_EQUIV") -back_n_forth "$STD_NAT_1" "$JSON_NAT_1" -json_equiv "$JSON_NAT_1_EQUIV" "$JSON_NAT_1" +back_n_forth "$STD_NAT_1" "$JSON_NAT_1_EQUIV" +json_equiv "$JSON_NAT_1" "$JSON_NAT_1_EQUIV" back_n_forth "$STD_NAT_2" "$JSON_NAT_2" # @@ -124,10 +124,10 @@ JSON_LOG_1='{"nftables": [{"table": {"family": "ip", "name": "t", "handle": 0}}, JSON_LOG_1_EQUIV=$(sed 's/\("flags":\) \([^}]*\)/\1 [\2]/' <<< "$JSON_LOG_1") STD_LOG_2=$(sed 's/\(tcp sequence\)/\1,options/' <<< "$STD_LOG_1") -JSON_LOG_2=$(sed 's/\("flags":\) \("tcp sequence"\)/\1 [\2, "tcp options"]/' <<< "$JSON_LOG_1") +JSON_LOG_2=$(sed 's/\("tcp sequence"\)/\1, "tcp options"/' <<< "$JSON_LOG_1_EQUIV") -back_n_forth "$STD_LOG_1" "$JSON_LOG_1" -json_equiv "$JSON_LOG_1_EQUIV" "$JSON_LOG_1" +back_n_forth "$STD_LOG_1" "$JSON_LOG_1_EQUIV" +json_equiv "$JSON_LOG_1" "$JSON_LOG_1_EQUIV" back_n_forth "$STD_LOG_2" "$JSON_LOG_2" # @@ -143,10 +143,10 @@ JSON_SYNPROXY_1='{"nftables": [{"table": {"family": "ip", "name": "t", "handle": JSON_SYNPROXY_1_EQUIV=$(sed 's/\("flags":\) \([^}]*\)/\1 [\2]/' <<< "$JSON_SYNPROXY_1") STD_SYNPROXY_2=$(sed 's/\(sack-perm\)/timestamp \1/' <<< "$STD_SYNPROXY_1") -JSON_SYNPROXY_2=$(sed 's/\("flags":\) \("sack-perm"\)/\1 ["timestamp", \2]/' <<< "$JSON_SYNPROXY_1") +JSON_SYNPROXY_2=$(sed 's/\("sack-perm"\)/"timestamp", \1/' <<< "$JSON_SYNPROXY_1_EQUIV") -back_n_forth "$STD_SYNPROXY_1" "$JSON_SYNPROXY_1" -json_equiv "$JSON_SYNPROXY_1_EQUIV" "$JSON_SYNPROXY_1" +back_n_forth "$STD_SYNPROXY_1" "$JSON_SYNPROXY_1_EQUIV" +json_equiv "$JSON_SYNPROXY_1" "$JSON_SYNPROXY_1_EQUIV" back_n_forth "$STD_SYNPROXY_2" "$JSON_SYNPROXY_2" # @@ -164,10 +164,10 @@ JSON_SYNPROXY_OBJ_1='{"nftables": [{"table": {"family": "ip", "name": "t", "hand JSON_SYNPROXY_OBJ_1_EQUIV=$(sed 's/\("flags":\) \([^}]*\)/\1 [\2]/' <<< "$JSON_SYNPROXY_OBJ_1") STD_SYNPROXY_OBJ_2=$(sed 's/ \(sack-perm\)/timestamp \1/' <<< "$STD_SYNPROXY_OBJ_1") -JSON_SYNPROXY_OBJ_2=$(sed 's/\("flags":\) \("sack-perm"\)/\1 ["timestamp", \2]/' <<< "$JSON_SYNPROXY_OBJ_1") +JSON_SYNPROXY_OBJ_2=$(sed 's/\("sack-perm"\)/"timestamp", \1/' <<< "$JSON_SYNPROXY_OBJ_1_EQUIV") -back_n_forth "$STD_SYNPROXY_OBJ_1" "$JSON_SYNPROXY_OBJ_1" -json_equiv "$JSON_SYNPROXY_OBJ_1_EQUIV" "$JSON_SYNPROXY_OBJ_1" +back_n_forth "$STD_SYNPROXY_OBJ_1" "$JSON_SYNPROXY_OBJ_1_EQUIV" +json_equiv "$JSON_SYNPROXY_OBJ_1" "$JSON_SYNPROXY_OBJ_1_EQUIV" back_n_forth "$STD_SYNPROXY_OBJ_2" "$JSON_SYNPROXY_OBJ_2" # @@ -183,8 +183,8 @@ JSON_QUEUE_1='{"nftables": [{"table": {"family": "ip", "name": "t", "handle": 0} JSON_QUEUE_1_EQUIV=$(sed 's/\("flags":\) \([^}]*\)/\1 [\2]/' <<< "$JSON_QUEUE_1") STD_QUEUE_2=$(sed 's/\(bypass\)/\1,fanout/' <<< "$STD_QUEUE_1") -JSON_QUEUE_2=$(sed 's/\("flags":\) \("bypass"\)/\1 [\2, "fanout"]/' <<< "$JSON_QUEUE_1") +JSON_QUEUE_2=$(sed 's/\("bypass"\)/\1, "fanout"/' <<< "$JSON_QUEUE_1_EQUIV") -back_n_forth "$STD_QUEUE_1" "$JSON_QUEUE_1" -json_equiv "$JSON_QUEUE_1_EQUIV" "$JSON_QUEUE_1" +back_n_forth "$STD_QUEUE_1" "$JSON_QUEUE_1_EQUIV" +json_equiv "$JSON_QUEUE_1" "$JSON_QUEUE_1_EQUIV" back_n_forth "$STD_QUEUE_2" "$JSON_QUEUE_2" diff --git a/tests/shell/testcases/listing/dumps/0010sets_0.json-nft b/tests/shell/testcases/listing/dumps/0010sets_0.json-nft index 6aa99b4e..efca892e 100644 --- a/tests/shell/testcases/listing/dumps/0010sets_0.json-nft +++ b/tests/shell/testcases/listing/dumps/0010sets_0.json-nft @@ -62,7 +62,9 @@ "table": "test_arp", "type": "inet_service", "handle": 0, - "flags": "constant" + "flags": [ + "constant" + ] } }, { @@ -104,7 +106,9 @@ "table": "filter", "type": "inet_service", "handle": 0, - "flags": "constant" + "flags": [ + "constant" + ] } }, { diff --git a/tests/shell/testcases/listing/dumps/0012sets_0.json-nft b/tests/shell/testcases/listing/dumps/0012sets_0.json-nft index 6aa99b4e..efca892e 100644 --- a/tests/shell/testcases/listing/dumps/0012sets_0.json-nft +++ b/tests/shell/testcases/listing/dumps/0012sets_0.json-nft @@ -62,7 +62,9 @@ "table": "test_arp", "type": "inet_service", "handle": 0, - "flags": "constant" + "flags": [ + "constant" + ] } }, { @@ -104,7 +106,9 @@ "table": "filter", "type": "inet_service", "handle": 0, - "flags": "constant" + "flags": [ + "constant" + ] } }, { diff --git a/tests/shell/testcases/listing/dumps/0022terse_0.json-nft b/tests/shell/testcases/listing/dumps/0022terse_0.json-nft index 1a33d688..bd6383da 100644 --- a/tests/shell/testcases/listing/dumps/0022terse_0.json-nft +++ b/tests/shell/testcases/listing/dumps/0022terse_0.json-nft @@ -33,7 +33,9 @@ "table": "filter", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ "10.10.10.10", "10.10.11.11" diff --git a/tests/shell/testcases/maps/dumps/0005interval_map_add_many_elements_0.json-nft b/tests/shell/testcases/maps/dumps/0005interval_map_add_many_elements_0.json-nft index f9ac5bce..d1a46295 100644 --- a/tests/shell/testcases/maps/dumps/0005interval_map_add_many_elements_0.json-nft +++ b/tests/shell/testcases/maps/dumps/0005interval_map_add_many_elements_0.json-nft @@ -22,7 +22,9 @@ "type": "ipv4_addr", "handle": 0, "map": "ipv4_addr", - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ [ { diff --git a/tests/shell/testcases/maps/dumps/0006interval_map_overlap_0.json-nft b/tests/shell/testcases/maps/dumps/0006interval_map_overlap_0.json-nft index d6b32d0f..1e983219 100644 --- a/tests/shell/testcases/maps/dumps/0006interval_map_overlap_0.json-nft +++ b/tests/shell/testcases/maps/dumps/0006interval_map_overlap_0.json-nft @@ -22,7 +22,9 @@ "type": "ipv4_addr", "handle": 0, "map": "ipv4_addr", - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ [ { diff --git a/tests/shell/testcases/maps/dumps/0008interval_map_delete_0.json-nft b/tests/shell/testcases/maps/dumps/0008interval_map_delete_0.json-nft index 09cb6c85..bd3c6cc7 100644 --- a/tests/shell/testcases/maps/dumps/0008interval_map_delete_0.json-nft +++ b/tests/shell/testcases/maps/dumps/0008interval_map_delete_0.json-nft @@ -34,7 +34,9 @@ "type": "ipv4_addr", "handle": 0, "map": "mark", - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ [ "127.0.0.2", diff --git a/tests/shell/testcases/maps/dumps/0012map_concat_0.json-nft b/tests/shell/testcases/maps/dumps/0012map_concat_0.json-nft index 85384c53..88bf4984 100644 --- a/tests/shell/testcases/maps/dumps/0012map_concat_0.json-nft +++ b/tests/shell/testcases/maps/dumps/0012map_concat_0.json-nft @@ -50,7 +50,9 @@ }, "handle": 0, "map": "verdict", - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ [ { diff --git a/tests/shell/testcases/maps/dumps/0013map_0.json-nft b/tests/shell/testcases/maps/dumps/0013map_0.json-nft index 2c8d21b4..e91a269d 100644 --- a/tests/shell/testcases/maps/dumps/0013map_0.json-nft +++ b/tests/shell/testcases/maps/dumps/0013map_0.json-nft @@ -38,7 +38,9 @@ ], "handle": 0, "map": "verdict", - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ [ { diff --git a/tests/shell/testcases/maps/dumps/delete_element.json-nft b/tests/shell/testcases/maps/dumps/delete_element.json-nft index 69a0d3a2..3b7c5f24 100644 --- a/tests/shell/testcases/maps/dumps/delete_element.json-nft +++ b/tests/shell/testcases/maps/dumps/delete_element.json-nft @@ -40,7 +40,9 @@ }, "handle": 0, "map": "classid", - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ [ { diff --git a/tests/shell/testcases/maps/dumps/delete_element_catchall.json-nft b/tests/shell/testcases/maps/dumps/delete_element_catchall.json-nft index 65053f2c..48b183f1 100644 --- a/tests/shell/testcases/maps/dumps/delete_element_catchall.json-nft +++ b/tests/shell/testcases/maps/dumps/delete_element_catchall.json-nft @@ -40,7 +40,9 @@ }, "handle": 0, "map": "classid", - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ [ "*", diff --git a/tests/shell/testcases/maps/dumps/map_with_flags_0.json-nft b/tests/shell/testcases/maps/dumps/map_with_flags_0.json-nft index 94ec5f75..97b7e94e 100644 --- a/tests/shell/testcases/maps/dumps/map_with_flags_0.json-nft +++ b/tests/shell/testcases/maps/dumps/map_with_flags_0.json-nft @@ -22,7 +22,9 @@ "type": "ipv4_addr", "handle": 0, "map": "ipv4_addr", - "flags": "timeout" + "flags": [ + "timeout" + ] } } ] diff --git a/tests/shell/testcases/maps/dumps/named_ct_objects.json-nft b/tests/shell/testcases/maps/dumps/named_ct_objects.json-nft index 5258d87c..c0f270e3 100644 --- a/tests/shell/testcases/maps/dumps/named_ct_objects.json-nft +++ b/tests/shell/testcases/maps/dumps/named_ct_objects.json-nft @@ -111,7 +111,9 @@ }, "handle": 0, "map": "ct expectation", - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ [ { @@ -140,7 +142,9 @@ }, "handle": 0, "map": "ct helper", - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ [ { diff --git a/tests/shell/testcases/maps/dumps/named_limits.json-nft b/tests/shell/testcases/maps/dumps/named_limits.json-nft index 07e28929..3c6845ac 100644 --- a/tests/shell/testcases/maps/dumps/named_limits.json-nft +++ b/tests/shell/testcases/maps/dumps/named_limits.json-nft @@ -144,7 +144,9 @@ }, "handle": 0, "map": "limit", - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ [ { @@ -284,7 +286,9 @@ }, "handle": 0, "map": "limit", - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ [ { diff --git a/tests/shell/testcases/maps/dumps/pipapo_double_flush.json-nft b/tests/shell/testcases/maps/dumps/pipapo_double_flush.json-nft index dc793a65..ef8c3930 100644 --- a/tests/shell/testcases/maps/dumps/pipapo_double_flush.json-nft +++ b/tests/shell/testcases/maps/dumps/pipapo_double_flush.json-nft @@ -33,7 +33,9 @@ ], "handle": 0, "map": "verdict", - "flags": "interval" + "flags": [ + "interval" + ] } } ] diff --git a/tests/shell/testcases/maps/dumps/typeof_integer_0.json-nft b/tests/shell/testcases/maps/dumps/typeof_integer_0.json-nft index 8dea5c17..1df729b4 100644 --- a/tests/shell/testcases/maps/dumps/typeof_integer_0.json-nft +++ b/tests/shell/testcases/maps/dumps/typeof_integer_0.json-nft @@ -48,7 +48,9 @@ }, "handle": 0, "map": "verdict", - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ [ { diff --git a/tests/shell/testcases/maps/dumps/typeof_maps_add_delete.json-nft b/tests/shell/testcases/maps/dumps/typeof_maps_add_delete.json-nft index 8b18a78d..effe02dc 100644 --- a/tests/shell/testcases/maps/dumps/typeof_maps_add_delete.json-nft +++ b/tests/shell/testcases/maps/dumps/typeof_maps_add_delete.json-nft @@ -50,7 +50,9 @@ "handle": 0, "map": "mark", "size": 64, - "flags": "timeout", + "flags": [ + "timeout" + ], "timeout": 300, "stmt": [ { diff --git a/tests/shell/testcases/maps/dumps/typeof_maps_update_0.json-nft b/tests/shell/testcases/maps/dumps/typeof_maps_update_0.json-nft index b79237d0..73151466 100644 --- a/tests/shell/testcases/maps/dumps/typeof_maps_update_0.json-nft +++ b/tests/shell/testcases/maps/dumps/typeof_maps_update_0.json-nft @@ -39,7 +39,9 @@ "handle": 0, "map": "mark", "size": 65535, - "flags": "timeout", + "flags": [ + "timeout" + ], "timeout": 360 } }, @@ -59,7 +61,9 @@ "handle": 0, "map": "mark", "size": 65535, - "flags": "timeout", + "flags": [ + "timeout" + ], "timeout": 60 } }, diff --git a/tests/shell/testcases/maps/dumps/vmap_timeout.json-nft b/tests/shell/testcases/maps/dumps/vmap_timeout.json-nft index 2d7d8cc2..71e9a9ee 100644 --- a/tests/shell/testcases/maps/dumps/vmap_timeout.json-nft +++ b/tests/shell/testcases/maps/dumps/vmap_timeout.json-nft @@ -66,7 +66,9 @@ "type": "inet_service", "handle": 0, "map": "verdict", - "flags": "timeout", + "flags": [ + "timeout" + ], "gc-interval": 10, "elem": [ [ @@ -105,7 +107,9 @@ }, "handle": 0, "map": "verdict", - "flags": "timeout", + "flags": [ + "timeout" + ], "gc-interval": 10, "elem": [ [ diff --git a/tests/shell/testcases/maps/dumps/vmap_unary.json-nft b/tests/shell/testcases/maps/dumps/vmap_unary.json-nft index 08583f9b..df0a07d9 100644 --- a/tests/shell/testcases/maps/dumps/vmap_unary.json-nft +++ b/tests/shell/testcases/maps/dumps/vmap_unary.json-nft @@ -51,7 +51,9 @@ }, "handle": 0, "map": "verdict", - "flags": "interval" + "flags": [ + "interval" + ] } }, { diff --git a/tests/shell/testcases/nft-f/dumps/0012different_defines_0.json-nft b/tests/shell/testcases/nft-f/dumps/0012different_defines_0.json-nft index 1b2e3420..0e7ea228 100644 --- a/tests/shell/testcases/nft-f/dumps/0012different_defines_0.json-nft +++ b/tests/shell/testcases/nft-f/dumps/0012different_defines_0.json-nft @@ -529,7 +529,9 @@ { "queue": { "num": 0, - "flags": "bypass" + "flags": [ + "bypass" + ] } } ] @@ -768,7 +770,9 @@ } } }, - "flags": "bypass" + "flags": [ + "bypass" + ] } } ] diff --git a/tests/shell/testcases/nft-f/dumps/0025empty_dynset_0.json-nft b/tests/shell/testcases/nft-f/dumps/0025empty_dynset_0.json-nft index 63d67641..0cde23b0 100644 --- a/tests/shell/testcases/nft-f/dumps/0025empty_dynset_0.json-nft +++ b/tests/shell/testcases/nft-f/dumps/0025empty_dynset_0.json-nft @@ -27,7 +27,9 @@ "inet_service" ], "handle": 0, - "flags": "dynamic", + "flags": [ + "dynamic" + ], "elem": [ { "elem": { @@ -62,7 +64,9 @@ "inet_service" ], "handle": 0, - "flags": "dynamic" + "flags": [ + "dynamic" + ] } }, { @@ -78,7 +82,9 @@ "inet_service" ], "handle": 0, - "flags": "dynamic", + "flags": [ + "dynamic" + ], "elem": [ { "elem": { diff --git a/tests/shell/testcases/nft-i/dumps/set_0.json-nft b/tests/shell/testcases/nft-i/dumps/set_0.json-nft index 61e4b99e..da3456ef 100644 --- a/tests/shell/testcases/nft-i/dumps/set_0.json-nft +++ b/tests/shell/testcases/nft-i/dumps/set_0.json-nft @@ -21,7 +21,9 @@ "table": "foo", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ "10.1.1.1", "10.1.1.2" diff --git a/tests/shell/testcases/optimizations/dumps/merge_vmaps.json-nft b/tests/shell/testcases/optimizations/dumps/merge_vmaps.json-nft index f058d6f1..e87f1c4c 100644 --- a/tests/shell/testcases/optimizations/dumps/merge_vmaps.json-nft +++ b/tests/shell/testcases/optimizations/dumps/merge_vmaps.json-nft @@ -46,7 +46,9 @@ "type": "ipv4_addr", "handle": 0, "size": 65535, - "flags": "dynamic" + "flags": [ + "dynamic" + ] } }, { diff --git a/tests/shell/testcases/optimizations/dumps/skip_unsupported.json-nft b/tests/shell/testcases/optimizations/dumps/skip_unsupported.json-nft index bf5a8cec..d6347b1e 100644 --- a/tests/shell/testcases/optimizations/dumps/skip_unsupported.json-nft +++ b/tests/shell/testcases/optimizations/dumps/skip_unsupported.json-nft @@ -29,7 +29,9 @@ "table": "x", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "prefix": { diff --git a/tests/shell/testcases/packetpath/dumps/set_lookups.json-nft b/tests/shell/testcases/packetpath/dumps/set_lookups.json-nft index 23f4b17f..bcf6914e 100644 --- a/tests/shell/testcases/packetpath/dumps/set_lookups.json-nft +++ b/tests/shell/testcases/packetpath/dumps/set_lookups.json-nft @@ -36,7 +36,9 @@ "iface_index" ], "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "concat": [ @@ -111,7 +113,9 @@ "table": "t", "type": "iface_index", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ "lo" ] diff --git a/tests/shell/testcases/rule_management/dumps/0004replace_0.json-nft b/tests/shell/testcases/rule_management/dumps/0004replace_0.json-nft index 811cb738..767e80f1 100644 --- a/tests/shell/testcases/rule_management/dumps/0004replace_0.json-nft +++ b/tests/shell/testcases/rule_management/dumps/0004replace_0.json-nft @@ -38,7 +38,9 @@ "table": "t", "type": "ipv4_addr", "handle": 0, - "flags": "interval" + "flags": [ + "interval" + ] } }, { diff --git a/tests/shell/testcases/rule_management/dumps/0011reset_0.json-nft b/tests/shell/testcases/rule_management/dumps/0011reset_0.json-nft index e57dee79..bc242467 100644 --- a/tests/shell/testcases/rule_management/dumps/0011reset_0.json-nft +++ b/tests/shell/testcases/rule_management/dumps/0011reset_0.json-nft @@ -38,7 +38,9 @@ "type": "ipv4_addr", "handle": 0, "size": 65535, - "flags": "dynamic", + "flags": [ + "dynamic" + ], "elem": [ { "elem": { diff --git a/tests/shell/testcases/sets/dumps/0001named_interval_0.json-nft b/tests/shell/testcases/sets/dumps/0001named_interval_0.json-nft index 9200154a..b9c66a21 100644 --- a/tests/shell/testcases/sets/dumps/0001named_interval_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0001named_interval_0.json-nft @@ -29,7 +29,9 @@ "table": "t", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "range": [ @@ -53,7 +55,9 @@ "table": "t", "type": "ipv6_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "prefix": { @@ -77,7 +81,9 @@ "table": "t", "type": "inet_proto", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "range": [ @@ -101,7 +107,9 @@ "table": "t", "type": "inet_service", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "range": [ diff --git a/tests/shell/testcases/sets/dumps/0002named_interval_automerging_0.json-nft b/tests/shell/testcases/sets/dumps/0002named_interval_automerging_0.json-nft index b083ecb5..4c0be670 100644 --- a/tests/shell/testcases/sets/dumps/0002named_interval_automerging_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0002named_interval_automerging_0.json-nft @@ -21,7 +21,9 @@ "table": "t", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "prefix": { diff --git a/tests/shell/testcases/sets/dumps/0004named_interval_shadow_0.json-nft b/tests/shell/testcases/sets/dumps/0004named_interval_shadow_0.json-nft index c79d9ba8..c55858fa 100644 --- a/tests/shell/testcases/sets/dumps/0004named_interval_shadow_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0004named_interval_shadow_0.json-nft @@ -21,7 +21,9 @@ "table": "t", "type": "ipv6_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "prefix": { diff --git a/tests/shell/testcases/sets/dumps/0005named_interval_shadow_0.json-nft b/tests/shell/testcases/sets/dumps/0005named_interval_shadow_0.json-nft index 464661e6..a75681f3 100644 --- a/tests/shell/testcases/sets/dumps/0005named_interval_shadow_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0005named_interval_shadow_0.json-nft @@ -21,7 +21,9 @@ "table": "t", "type": "ipv6_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "prefix": { diff --git a/tests/shell/testcases/sets/dumps/0008comments_interval_0.json-nft b/tests/shell/testcases/sets/dumps/0008comments_interval_0.json-nft index e7152413..c6f5aa68 100644 --- a/tests/shell/testcases/sets/dumps/0008comments_interval_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0008comments_interval_0.json-nft @@ -21,7 +21,9 @@ "table": "t", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "elem": { diff --git a/tests/shell/testcases/sets/dumps/0009comments_timeout_0.json-nft b/tests/shell/testcases/sets/dumps/0009comments_timeout_0.json-nft index a67a0670..2418b39a 100644 --- a/tests/shell/testcases/sets/dumps/0009comments_timeout_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0009comments_timeout_0.json-nft @@ -21,7 +21,9 @@ "table": "t", "type": "ipv4_addr", "handle": 0, - "flags": "timeout", + "flags": [ + "timeout" + ], "elem": [ { "elem": { diff --git a/tests/shell/testcases/sets/dumps/0015rulesetflush_0.json-nft b/tests/shell/testcases/sets/dumps/0015rulesetflush_0.json-nft index 86d7eb6a..6268e216 100644 --- a/tests/shell/testcases/sets/dumps/0015rulesetflush_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0015rulesetflush_0.json-nft @@ -36,7 +36,9 @@ "table": "filter", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "prefix": { diff --git a/tests/shell/testcases/sets/dumps/0022type_selective_flush_0.json-nft b/tests/shell/testcases/sets/dumps/0022type_selective_flush_0.json-nft index dcb62eb7..c6171392 100644 --- a/tests/shell/testcases/sets/dumps/0022type_selective_flush_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0022type_selective_flush_0.json-nft @@ -49,7 +49,9 @@ "type": "ipv4_addr", "handle": 0, "size": 1024, - "flags": "dynamic" + "flags": [ + "dynamic" + ] } }, { diff --git a/tests/shell/testcases/sets/dumps/0024synproxy_0.json-nft b/tests/shell/testcases/sets/dumps/0024synproxy_0.json-nft index dd71bb39..0af61333 100644 --- a/tests/shell/testcases/sets/dumps/0024synproxy_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0024synproxy_0.json-nft @@ -58,7 +58,9 @@ "type": "ipv4_addr", "handle": 0, "map": "synproxy", - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ [ { diff --git a/tests/shell/testcases/sets/dumps/0027ipv6_maps_ipv4_0.json-nft b/tests/shell/testcases/sets/dumps/0027ipv6_maps_ipv4_0.json-nft index 75d8b46d..b9251ffa 100644 --- a/tests/shell/testcases/sets/dumps/0027ipv6_maps_ipv4_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0027ipv6_maps_ipv4_0.json-nft @@ -21,7 +21,9 @@ "table": "t", "type": "ipv6_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "prefix": { diff --git a/tests/shell/testcases/sets/dumps/0028autoselect_0.json-nft b/tests/shell/testcases/sets/dumps/0028autoselect_0.json-nft index 05fc072c..5968b2e0 100644 --- a/tests/shell/testcases/sets/dumps/0028autoselect_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0028autoselect_0.json-nft @@ -34,7 +34,9 @@ "type": "inet_proto", "handle": 0, "size": 65535, - "flags": "dynamic" + "flags": [ + "dynamic" + ] } }, { @@ -45,7 +47,9 @@ "type": "ipv4_addr", "handle": 0, "size": 65535, - "flags": "dynamic" + "flags": [ + "dynamic" + ] } }, { @@ -56,7 +60,9 @@ "type": "ipv4_addr", "handle": 0, "size": 1024, - "flags": "dynamic" + "flags": [ + "dynamic" + ] } }, { diff --git a/tests/shell/testcases/sets/dumps/0028delete_handle_0.json-nft b/tests/shell/testcases/sets/dumps/0028delete_handle_0.json-nft index 9e5f708d..96314141 100644 --- a/tests/shell/testcases/sets/dumps/0028delete_handle_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0028delete_handle_0.json-nft @@ -30,7 +30,9 @@ "table": "test-ip", "type": "inet_service", "handle": 0, - "flags": "timeout", + "flags": [ + "timeout" + ], "timeout": 10845 } }, diff --git a/tests/shell/testcases/sets/dumps/0032restore_set_simple_0.json-nft b/tests/shell/testcases/sets/dumps/0032restore_set_simple_0.json-nft index 7a723150..4d194bff 100644 --- a/tests/shell/testcases/sets/dumps/0032restore_set_simple_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0032restore_set_simple_0.json-nft @@ -25,7 +25,9 @@ "ipv4_addr" ], "handle": 0, - "flags": "timeout" + "flags": [ + "timeout" + ] } }, { @@ -38,7 +40,9 @@ "inet_service" ], "handle": 0, - "flags": "timeout" + "flags": [ + "timeout" + ] } } ] diff --git a/tests/shell/testcases/sets/dumps/0033add_set_simple_flat_0.json-nft b/tests/shell/testcases/sets/dumps/0033add_set_simple_flat_0.json-nft index 56976528..16684438 100644 --- a/tests/shell/testcases/sets/dumps/0033add_set_simple_flat_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0033add_set_simple_flat_0.json-nft @@ -25,7 +25,9 @@ "ipv4_addr" ], "handle": 0, - "flags": "timeout" + "flags": [ + "timeout" + ] } }, { @@ -38,7 +40,9 @@ "inet_service" ], "handle": 0, - "flags": "timeout" + "flags": [ + "timeout" + ] } } ] diff --git a/tests/shell/testcases/sets/dumps/0034get_element_0.json-nft b/tests/shell/testcases/sets/dumps/0034get_element_0.json-nft index 4f5ba0aa..bfc0e4a0 100644 --- a/tests/shell/testcases/sets/dumps/0034get_element_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0034get_element_0.json-nft @@ -21,7 +21,9 @@ "table": "t", "type": "inet_service", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ 10, { @@ -47,7 +49,9 @@ "table": "t", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ "10.0.0.1", { @@ -87,7 +91,9 @@ "inet_service" ], "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "concat": [ diff --git a/tests/shell/testcases/sets/dumps/0035add_set_elements_flat_0.json-nft b/tests/shell/testcases/sets/dumps/0035add_set_elements_flat_0.json-nft index f9fe4e6f..e4c77147 100644 --- a/tests/shell/testcases/sets/dumps/0035add_set_elements_flat_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0035add_set_elements_flat_0.json-nft @@ -21,7 +21,9 @@ "table": "x", "type": "ipv4_addr", "handle": 0, - "flags": "interval" + "flags": [ + "interval" + ] } } ] diff --git a/tests/shell/testcases/sets/dumps/0038meter_list_0.json-nft b/tests/shell/testcases/sets/dumps/0038meter_list_0.json-nft index 6f6555d2..5b13f59a 100644 --- a/tests/shell/testcases/sets/dumps/0038meter_list_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0038meter_list_0.json-nft @@ -44,7 +44,9 @@ "type": "ipv4_addr", "handle": 0, "size": 128, - "flags": "dynamic" + "flags": [ + "dynamic" + ] } }, { diff --git a/tests/shell/testcases/sets/dumps/0039delete_interval_0.json-nft b/tests/shell/testcases/sets/dumps/0039delete_interval_0.json-nft index afa81958..d6e46aad 100644 --- a/tests/shell/testcases/sets/dumps/0039delete_interval_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0039delete_interval_0.json-nft @@ -21,7 +21,9 @@ "table": "t", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "range": [ diff --git a/tests/shell/testcases/sets/dumps/0040get_host_endian_elements_0.json-nft b/tests/shell/testcases/sets/dumps/0040get_host_endian_elements_0.json-nft index 486ca453..4b6cf03c 100644 --- a/tests/shell/testcases/sets/dumps/0040get_host_endian_elements_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0040get_host_endian_elements_0.json-nft @@ -21,7 +21,9 @@ "table": "t", "type": "mark", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "range": [ diff --git a/tests/shell/testcases/sets/dumps/0041interval_0.json-nft b/tests/shell/testcases/sets/dumps/0041interval_0.json-nft index c59a65ae..14a39330 100644 --- a/tests/shell/testcases/sets/dumps/0041interval_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0041interval_0.json-nft @@ -21,7 +21,9 @@ "table": "t", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ "192.168.2.196" ] diff --git a/tests/shell/testcases/sets/dumps/0042update_set_0.json-nft b/tests/shell/testcases/sets/dumps/0042update_set_0.json-nft index 3f98e120..bc1d4cc2 100644 --- a/tests/shell/testcases/sets/dumps/0042update_set_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0042update_set_0.json-nft @@ -39,7 +39,9 @@ "type": "ether_addr", "handle": 0, "size": 65535, - "flags": "dynamic" + "flags": [ + "dynamic" + ] } }, { diff --git a/tests/shell/testcases/sets/dumps/0043concatenated_ranges_1.json-nft b/tests/shell/testcases/sets/dumps/0043concatenated_ranges_1.json-nft index 5ce063d7..92b59c86 100644 --- a/tests/shell/testcases/sets/dumps/0043concatenated_ranges_1.json-nft +++ b/tests/shell/testcases/sets/dumps/0043concatenated_ranges_1.json-nft @@ -24,7 +24,9 @@ "ipv6_addr" ], "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "concat": [ @@ -1582,7 +1584,9 @@ "ipv4_addr" ], "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "concat": [ diff --git a/tests/shell/testcases/sets/dumps/0044interval_overlap_1.json-nft b/tests/shell/testcases/sets/dumps/0044interval_overlap_1.json-nft index 8f82990a..f4aae383 100644 --- a/tests/shell/testcases/sets/dumps/0044interval_overlap_1.json-nft +++ b/tests/shell/testcases/sets/dumps/0044interval_overlap_1.json-nft @@ -21,7 +21,9 @@ "table": "t", "type": "inet_service", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ 25, 30, diff --git a/tests/shell/testcases/sets/dumps/0046netmap_0.json-nft b/tests/shell/testcases/sets/dumps/0046netmap_0.json-nft index 55f1a2ad..2b67252d 100644 --- a/tests/shell/testcases/sets/dumps/0046netmap_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0046netmap_0.json-nft @@ -92,8 +92,12 @@ } } }, - "flags": "netmap", - "type_flags": "prefix" + "flags": [ + "netmap" + ], + "type_flags": [ + "prefix" + ] } } ] @@ -156,8 +160,12 @@ } } }, - "flags": "netmap", - "type_flags": "prefix" + "flags": [ + "netmap" + ], + "type_flags": [ + "prefix" + ] } } ] diff --git a/tests/shell/testcases/sets/dumps/0049set_define_0.json-nft b/tests/shell/testcases/sets/dumps/0049set_define_0.json-nft index 98ccafd4..f8495bab 100644 --- a/tests/shell/testcases/sets/dumps/0049set_define_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0049set_define_0.json-nft @@ -33,7 +33,9 @@ "table": "filter", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "auto-merge": true, "elem": [ "1.1.1.1" diff --git a/tests/shell/testcases/sets/dumps/0051set_interval_counter_0.json-nft b/tests/shell/testcases/sets/dumps/0051set_interval_counter_0.json-nft index 96cb397f..b468b5f9 100644 --- a/tests/shell/testcases/sets/dumps/0051set_interval_counter_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0051set_interval_counter_0.json-nft @@ -33,7 +33,9 @@ "table": "x", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "elem": { diff --git a/tests/shell/testcases/sets/dumps/0052overlap_0.json-nft b/tests/shell/testcases/sets/dumps/0052overlap_0.json-nft index 1ea8ede6..96d5fbcc 100644 --- a/tests/shell/testcases/sets/dumps/0052overlap_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0052overlap_0.json-nft @@ -21,7 +21,9 @@ "table": "filter", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "auto-merge": true, "elem": [ "10.10.10.10", diff --git a/tests/shell/testcases/sets/dumps/0054comments_set_0.json-nft b/tests/shell/testcases/sets/dumps/0054comments_set_0.json-nft index a7293922..3fd6d37e 100644 --- a/tests/shell/testcases/sets/dumps/0054comments_set_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0054comments_set_0.json-nft @@ -22,7 +22,9 @@ "type": "ipv4_addr", "handle": 0, "comment": "test", - "flags": "interval" + "flags": [ + "interval" + ] } }, { @@ -34,7 +36,9 @@ "handle": 0, "comment": "another test", "map": "ipv4_addr", - "flags": "interval" + "flags": [ + "interval" + ] } } ] diff --git a/tests/shell/testcases/sets/dumps/0055tcpflags_0.json-nft b/tests/shell/testcases/sets/dumps/0055tcpflags_0.json-nft index 0232ad6f..e37139f3 100644 --- a/tests/shell/testcases/sets/dumps/0055tcpflags_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0055tcpflags_0.json-nft @@ -21,7 +21,9 @@ "table": "test", "type": "tcp_flag", "handle": 0, - "flags": "constant", + "flags": [ + "constant" + ], "elem": [ { "|": [ diff --git a/tests/shell/testcases/sets/dumps/0060set_multistmt_1.json-nft b/tests/shell/testcases/sets/dumps/0060set_multistmt_1.json-nft index 99805e55..6098dc56 100644 --- a/tests/shell/testcases/sets/dumps/0060set_multistmt_1.json-nft +++ b/tests/shell/testcases/sets/dumps/0060set_multistmt_1.json-nft @@ -34,7 +34,9 @@ "type": "ipv4_addr", "handle": 0, "size": 65535, - "flags": "dynamic", + "flags": [ + "dynamic" + ], "elem": [ { "elem": { diff --git a/tests/shell/testcases/sets/dumps/0062set_connlimit_0.json-nft b/tests/shell/testcases/sets/dumps/0062set_connlimit_0.json-nft index 7a948b1d..c5e60e36 100644 --- a/tests/shell/testcases/sets/dumps/0062set_connlimit_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0062set_connlimit_0.json-nft @@ -22,7 +22,9 @@ "type": "ipv4_addr", "handle": 0, "size": 65535, - "flags": "dynamic" + "flags": [ + "dynamic" + ] } }, { @@ -33,7 +35,9 @@ "type": "ipv4_addr", "handle": 0, "size": 65535, - "flags": "dynamic", + "flags": [ + "dynamic" + ], "stmt": [ { "ct count": { diff --git a/tests/shell/testcases/sets/dumps/0063set_catchall_0.json-nft b/tests/shell/testcases/sets/dumps/0063set_catchall_0.json-nft index fcfe9830..3006f75a 100644 --- a/tests/shell/testcases/sets/dumps/0063set_catchall_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0063set_catchall_0.json-nft @@ -55,7 +55,9 @@ "table": "x", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "elem": { diff --git a/tests/shell/testcases/sets/dumps/0064map_catchall_0.json-nft b/tests/shell/testcases/sets/dumps/0064map_catchall_0.json-nft index b7496ac8..64dd2667 100644 --- a/tests/shell/testcases/sets/dumps/0064map_catchall_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0064map_catchall_0.json-nft @@ -50,7 +50,9 @@ "type": "ipv4_addr", "handle": 0, "map": "ipv4_addr", - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ [ { diff --git a/tests/shell/testcases/sets/dumps/0069interval_merge_0.json-nft b/tests/shell/testcases/sets/dumps/0069interval_merge_0.json-nft index 7868cb33..d7b32f8c 100644 --- a/tests/shell/testcases/sets/dumps/0069interval_merge_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0069interval_merge_0.json-nft @@ -21,7 +21,9 @@ "table": "x", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "auto-merge": true, "elem": [ { diff --git a/tests/shell/testcases/sets/dumps/0071unclosed_prefix_interval_0.json-nft b/tests/shell/testcases/sets/dumps/0071unclosed_prefix_interval_0.json-nft index 588c2b1b..6b579a2e 100644 --- a/tests/shell/testcases/sets/dumps/0071unclosed_prefix_interval_0.json-nft +++ b/tests/shell/testcases/sets/dumps/0071unclosed_prefix_interval_0.json-nft @@ -29,7 +29,9 @@ "table": "t", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "prefix": { @@ -53,7 +55,9 @@ "table": "t", "type": "ipv6_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "prefix": { diff --git a/tests/shell/testcases/sets/dumps/0073flat_interval_set.json-nft b/tests/shell/testcases/sets/dumps/0073flat_interval_set.json-nft index e4649a7d..e2fb6214 100644 --- a/tests/shell/testcases/sets/dumps/0073flat_interval_set.json-nft +++ b/tests/shell/testcases/sets/dumps/0073flat_interval_set.json-nft @@ -32,7 +32,9 @@ "type": "ipv4_addr", "handle": 0, "map": "counter", - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ [ { diff --git a/tests/shell/testcases/sets/dumps/0074nested_interval_set.json-nft b/tests/shell/testcases/sets/dumps/0074nested_interval_set.json-nft index e4649a7d..e2fb6214 100644 --- a/tests/shell/testcases/sets/dumps/0074nested_interval_set.json-nft +++ b/tests/shell/testcases/sets/dumps/0074nested_interval_set.json-nft @@ -32,7 +32,9 @@ "type": "ipv4_addr", "handle": 0, "map": "counter", - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ [ { diff --git a/tests/shell/testcases/sets/dumps/concat_interval_0.json-nft b/tests/shell/testcases/sets/dumps/concat_interval_0.json-nft index 3283f269..d65065e4 100644 --- a/tests/shell/testcases/sets/dumps/concat_interval_0.json-nft +++ b/tests/shell/testcases/sets/dumps/concat_interval_0.json-nft @@ -25,7 +25,9 @@ "inet_service" ], "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "stmt": [ { "counter": null @@ -43,7 +45,9 @@ "mark" ], "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "concat": [ diff --git a/tests/shell/testcases/sets/dumps/concat_nlmsg_overrun.json-nft b/tests/shell/testcases/sets/dumps/concat_nlmsg_overrun.json-nft index 2a8d233e..db9f547b 100644 --- a/tests/shell/testcases/sets/dumps/concat_nlmsg_overrun.json-nft +++ b/tests/shell/testcases/sets/dumps/concat_nlmsg_overrun.json-nft @@ -25,7 +25,9 @@ "ipv4_addr" ], "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "elem": { diff --git a/tests/shell/testcases/sets/dumps/dynset_missing.json-nft b/tests/shell/testcases/sets/dumps/dynset_missing.json-nft index 9de5b821..ad8a7cc0 100644 --- a/tests/shell/testcases/sets/dumps/dynset_missing.json-nft +++ b/tests/shell/testcases/sets/dumps/dynset_missing.json-nft @@ -34,7 +34,9 @@ "type": "ipv4_addr", "handle": 0, "size": 65535, - "flags": "dynamic" + "flags": [ + "dynamic" + ] } }, { diff --git a/tests/shell/testcases/sets/dumps/exact_overlap_0.json-nft b/tests/shell/testcases/sets/dumps/exact_overlap_0.json-nft index 7bba69d5..958d1e5c 100644 --- a/tests/shell/testcases/sets/dumps/exact_overlap_0.json-nft +++ b/tests/shell/testcases/sets/dumps/exact_overlap_0.json-nft @@ -21,7 +21,9 @@ "table": "t", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "prefix": { diff --git a/tests/shell/testcases/sets/dumps/inner_0.json-nft b/tests/shell/testcases/sets/dumps/inner_0.json-nft index 581d5340..e5dc198f 100644 --- a/tests/shell/testcases/sets/dumps/inner_0.json-nft +++ b/tests/shell/testcases/sets/dumps/inner_0.json-nft @@ -74,7 +74,9 @@ }, "handle": 0, "size": 65535, - "flags": "dynamic" + "flags": [ + "dynamic" + ] } }, { diff --git a/tests/shell/testcases/sets/dumps/interval_size.json-nft b/tests/shell/testcases/sets/dumps/interval_size.json-nft index 96fc54fc..3ae54e08 100644 --- a/tests/shell/testcases/sets/dumps/interval_size.json-nft +++ b/tests/shell/testcases/sets/dumps/interval_size.json-nft @@ -29,7 +29,9 @@ }, "handle": 0, "size": 1, - "flags": "interval", + "flags": [ + "interval" + ], "auto-merge": true, "elem": [ { @@ -56,7 +58,9 @@ }, "handle": 0, "size": 1, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ "0.0.0.0" ] diff --git a/tests/shell/testcases/sets/dumps/meter_set_reuse.json-nft b/tests/shell/testcases/sets/dumps/meter_set_reuse.json-nft index 9210c90b..ab4ac061 100644 --- a/tests/shell/testcases/sets/dumps/meter_set_reuse.json-nft +++ b/tests/shell/testcases/sets/dumps/meter_set_reuse.json-nft @@ -33,7 +33,9 @@ ], "handle": 0, "size": 65535, - "flags": "dynamic" + "flags": [ + "dynamic" + ] } }, { diff --git a/tests/shell/testcases/sets/dumps/range_with_same_start_end.json-nft b/tests/shell/testcases/sets/dumps/range_with_same_start_end.json-nft index e1daa8f8..c4682475 100644 --- a/tests/shell/testcases/sets/dumps/range_with_same_start_end.json-nft +++ b/tests/shell/testcases/sets/dumps/range_with_same_start_end.json-nft @@ -21,7 +21,9 @@ "table": "t", "type": "inet_service", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ 10, 30, diff --git a/tests/shell/testcases/sets/dumps/set_element_timeout_updates.json-nft b/tests/shell/testcases/sets/dumps/set_element_timeout_updates.json-nft index acb2f1f4..d92d8d7a 100644 --- a/tests/shell/testcases/sets/dumps/set_element_timeout_updates.json-nft +++ b/tests/shell/testcases/sets/dumps/set_element_timeout_updates.json-nft @@ -40,7 +40,9 @@ } }, "handle": 0, - "flags": "timeout", + "flags": [ + "timeout" + ], "timeout": 60 } } diff --git a/tests/shell/testcases/sets/dumps/set_eval_0.json-nft b/tests/shell/testcases/sets/dumps/set_eval_0.json-nft index 6f4f4c61..6f692381 100644 --- a/tests/shell/testcases/sets/dumps/set_eval_0.json-nft +++ b/tests/shell/testcases/sets/dumps/set_eval_0.json-nft @@ -33,7 +33,9 @@ "table": "nat", "type": "ipv4_addr", "handle": 0, - "flags": "interval" + "flags": [ + "interval" + ] } }, { diff --git a/tests/shell/testcases/sets/dumps/sets_with_ifnames.json-nft b/tests/shell/testcases/sets/dumps/sets_with_ifnames.json-nft index 77ca5086..ac428429 100644 --- a/tests/shell/testcases/sets/dumps/sets_with_ifnames.json-nft +++ b/tests/shell/testcases/sets/dumps/sets_with_ifnames.json-nft @@ -71,7 +71,9 @@ "table": "testifsets", "type": "ifname", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ "abcdef*", "othername", @@ -115,7 +117,9 @@ "ifname" ], "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "concat": [ @@ -162,7 +166,9 @@ "type": "ifname", "handle": 0, "map": "verdict", - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ [ "abcdef*", diff --git a/tests/shell/testcases/sets/dumps/typeof_sets_concat.json-nft b/tests/shell/testcases/sets/dumps/typeof_sets_concat.json-nft index ffb97f77..144cd743 100644 --- a/tests/shell/testcases/sets/dumps/typeof_sets_concat.json-nft +++ b/tests/shell/testcases/sets/dumps/typeof_sets_concat.json-nft @@ -199,7 +199,9 @@ }, "handle": 0, "size": 16, - "flags": "interval" + "flags": [ + "interval" + ] } }, { diff --git a/tests/shell/testcases/transactions/dumps/0002table_0.json-nft b/tests/shell/testcases/transactions/dumps/0002table_0.json-nft index b1fefc31..70960a94 100644 --- a/tests/shell/testcases/transactions/dumps/0002table_0.json-nft +++ b/tests/shell/testcases/transactions/dumps/0002table_0.json-nft @@ -12,7 +12,9 @@ "family": "ip", "name": "x", "handle": 0, - "flags": "dormant" + "flags": [ + "dormant" + ] } }, { diff --git a/tests/shell/testcases/transactions/dumps/0037set_0.json-nft b/tests/shell/testcases/transactions/dumps/0037set_0.json-nft index f9fe4e6f..e4c77147 100644 --- a/tests/shell/testcases/transactions/dumps/0037set_0.json-nft +++ b/tests/shell/testcases/transactions/dumps/0037set_0.json-nft @@ -21,7 +21,9 @@ "table": "x", "type": "ipv4_addr", "handle": 0, - "flags": "interval" + "flags": [ + "interval" + ] } } ] diff --git a/tests/shell/testcases/transactions/dumps/0038set_0.json-nft b/tests/shell/testcases/transactions/dumps/0038set_0.json-nft index 5f97d09e..0a36f4a8 100644 --- a/tests/shell/testcases/transactions/dumps/0038set_0.json-nft +++ b/tests/shell/testcases/transactions/dumps/0038set_0.json-nft @@ -21,7 +21,9 @@ "table": "x", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "prefix": { diff --git a/tests/shell/testcases/transactions/dumps/0039set_0.json-nft b/tests/shell/testcases/transactions/dumps/0039set_0.json-nft index 5f97d09e..0a36f4a8 100644 --- a/tests/shell/testcases/transactions/dumps/0039set_0.json-nft +++ b/tests/shell/testcases/transactions/dumps/0039set_0.json-nft @@ -21,7 +21,9 @@ "table": "x", "type": "ipv4_addr", "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "prefix": { diff --git a/tests/shell/testcases/transactions/dumps/0047set_0.json-nft b/tests/shell/testcases/transactions/dumps/0047set_0.json-nft index fb6348f2..a7e677b2 100644 --- a/tests/shell/testcases/transactions/dumps/0047set_0.json-nft +++ b/tests/shell/testcases/transactions/dumps/0047set_0.json-nft @@ -22,7 +22,9 @@ "type": "ipv4_addr", "handle": 0, "map": "classid", - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ [ "10.1.26.2", diff --git a/tests/shell/testcases/transactions/dumps/doubled-set.json-nft b/tests/shell/testcases/transactions/dumps/doubled-set.json-nft index 1b9af211..2dced124 100644 --- a/tests/shell/testcases/transactions/dumps/doubled-set.json-nft +++ b/tests/shell/testcases/transactions/dumps/doubled-set.json-nft @@ -24,7 +24,9 @@ "ifname" ], "handle": 0, - "flags": "interval", + "flags": [ + "interval" + ], "elem": [ { "concat": [ diff --git a/tests/shell/testcases/transactions/dumps/table_onoff.json-nft b/tests/shell/testcases/transactions/dumps/table_onoff.json-nft index a7583e8c..9b48ca47 100644 --- a/tests/shell/testcases/transactions/dumps/table_onoff.json-nft +++ b/tests/shell/testcases/transactions/dumps/table_onoff.json-nft @@ -12,7 +12,9 @@ "family": "ip", "name": "t", "handle": 0, - "flags": "dormant" + "flags": [ + "dormant" + ] } }, {