summaryrefslogtreecommitdiffstats
path: root/tests/shell/testcases/chains/dumps
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-11-14 17:08:28 +0100
committerFlorian Westphal <fw@strlen.de>2023-11-15 13:12:06 +0100
commit3d24b16b9ac132d26869953f54ef7c69f1c1d58f (patch)
treec9432f7716f192c913b1aefc353bd7f220340376 /tests/shell/testcases/chains/dumps
parentc9caa99c52752907509584b7165ad6180764d87d (diff)
tests/shell: add JSON dump files
Generate and add ".json-nft" files. These files contain the output of `nft -j list ruleset` after the test. Also, "test-wrapper.sh" will compare the current ruleset against the ".json-nft" files and test them with "nft -j --check -f $FILE`. These are useful extra tests, that we almost get for free. Note that for some JSON dumps, `nft -f --check` fails (or prints something). For those tests no *.json-nft file is added. The bugs needs to be fixed first. An example of such an issue is: $ DUMPGEN=all ./tests/shell/run-tests.sh tests/shell/testcases/maps/nat_addr_port which gives a file "rc-failed-chkdump" with Command `./tests/shell/../../src/nft -j --check -f "tests/shell/testcases/maps/dumps/nat_addr_port.json-nft"` failed >>>> internal:0:0-0: Error: Invalid map type 'ipv4_addr . inet_service'. internal:0:0-0: Error: Parsing command array at index 3 failed. internal:0:0-0: Error: unqualified type integer specified in map definition. Try "typeof expression" instead of "type datatype". <<<< Tests like "tests/shell/testcases/nft-f/0012different_defines_0" and "tests/shell/testcases/nft-f/0024priority_0" also don't get a .json-nft dump yet, because their output is not stable. That needs fixing too. Cc: Pablo Neira Ayuso <pablo@netfilter.org> Cc: Florian Westphal <fw@strlen.de> Signed-off-by: Thomas Haller <thaller@redhat.com> Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'tests/shell/testcases/chains/dumps')
-rw-r--r--tests/shell/testcases/chains/dumps/0001jumps_0.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0002jumps_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0003jump_loop_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0004busy_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0005busy_map_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0006masquerade_0.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0007masquerade_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0008masquerade_jump_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0009masquerade_jump_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0010endless_jump_loop_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0013rename_0.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0014rename_0.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0015check_jump_loop_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0016delete_handle_0.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0017masquerade_jump_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0018check_jump_loop_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0019masquerade_jump_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0020depth_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0021prio_0.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0022prio_dummy_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0023prio_inet_srcnat_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0024prio_inet_dstnat_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0025prio_arp_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0026prio_netdev_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0027prio_bridge_dstnat_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0028prio_bridge_out_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0029prio_bridge_srcnat_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0030create_0.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0031priority_variable_0.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0032priority_variable_0.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0033priority_variable_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0034priority_variable_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0035policy_variable_0.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0036policy_variable_0.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0037policy_variable_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0038policy_variable_1.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0039negative_priority_0.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0042chain_variable_0.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0043chain_ingress_0.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/0044chain_destroy_0.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/netdev_chain_0.json-nft1
-rw-r--r--tests/shell/testcases/chains/dumps/netdev_chain_autoremove.json-nft1
42 files changed, 42 insertions, 0 deletions
diff --git a/tests/shell/testcases/chains/dumps/0001jumps_0.json-nft b/tests/shell/testcases/chains/dumps/0001jumps_0.json-nft
new file mode 100644
index 00000000..d33c84fd
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0001jumps_0.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "t", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "c1", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "c2", "handle": 2}}, {"chain": {"family": "ip", "table": "t", "name": "c3", "handle": 3}}, {"chain": {"family": "ip", "table": "t", "name": "c4", "handle": 4}}, {"chain": {"family": "ip", "table": "t", "name": "c5", "handle": 5}}, {"chain": {"family": "ip", "table": "t", "name": "c6", "handle": 6}}, {"chain": {"family": "ip", "table": "t", "name": "c7", "handle": 7}}, {"chain": {"family": "ip", "table": "t", "name": "c8", "handle": 8}}, {"chain": {"family": "ip", "table": "t", "name": "c9", "handle": 9}}, {"chain": {"family": "ip", "table": "t", "name": "c10", "handle": 10}}, {"chain": {"family": "ip", "table": "t", "name": "c11", "handle": 11}}, {"chain": {"family": "ip", "table": "t", "name": "c12", "handle": 12}}, {"chain": {"family": "ip", "table": "t", "name": "c13", "handle": 13}}, {"chain": {"family": "ip", "table": "t", "name": "c14", "handle": 14}}, {"chain": {"family": "ip", "table": "t", "name": "c15", "handle": 15}}, {"chain": {"family": "ip", "table": "t", "name": "c16", "handle": 16}}, {"rule": {"family": "ip", "table": "t", "chain": "c1", "handle": 17, "expr": [{"jump": {"target": "c2"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c2", "handle": 18, "expr": [{"jump": {"target": "c3"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c3", "handle": 19, "expr": [{"jump": {"target": "c4"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c4", "handle": 20, "expr": [{"jump": {"target": "c5"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c5", "handle": 21, "expr": [{"jump": {"target": "c6"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c6", "handle": 22, "expr": [{"jump": {"target": "c7"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c7", "handle": 23, "expr": [{"jump": {"target": "c8"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c8", "handle": 24, "expr": [{"jump": {"target": "c9"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c9", "handle": 25, "expr": [{"jump": {"target": "c10"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c10", "handle": 26, "expr": [{"jump": {"target": "c11"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c11", "handle": 27, "expr": [{"jump": {"target": "c12"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c12", "handle": 28, "expr": [{"jump": {"target": "c13"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c13", "handle": 29, "expr": [{"jump": {"target": "c14"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c14", "handle": 30, "expr": [{"jump": {"target": "c15"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c15", "handle": 31, "expr": [{"jump": {"target": "c16"}}]}}]}
diff --git a/tests/shell/testcases/chains/dumps/0002jumps_1.json-nft b/tests/shell/testcases/chains/dumps/0002jumps_1.json-nft
new file mode 100644
index 00000000..668936af
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0002jumps_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "t", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "c1", "handle": 1, "type": "filter", "hook": "input", "prio": 0, "policy": "accept"}}, {"chain": {"family": "ip", "table": "t", "name": "c2", "handle": 2}}, {"chain": {"family": "ip", "table": "t", "name": "c3", "handle": 3}}, {"chain": {"family": "ip", "table": "t", "name": "c4", "handle": 4}}, {"chain": {"family": "ip", "table": "t", "name": "c5", "handle": 5}}, {"chain": {"family": "ip", "table": "t", "name": "c6", "handle": 6}}, {"chain": {"family": "ip", "table": "t", "name": "c7", "handle": 7}}, {"chain": {"family": "ip", "table": "t", "name": "c8", "handle": 8}}, {"chain": {"family": "ip", "table": "t", "name": "c9", "handle": 9}}, {"chain": {"family": "ip", "table": "t", "name": "c10", "handle": 10}}, {"chain": {"family": "ip", "table": "t", "name": "c11", "handle": 11}}, {"chain": {"family": "ip", "table": "t", "name": "c12", "handle": 12}}, {"chain": {"family": "ip", "table": "t", "name": "c13", "handle": 13}}, {"chain": {"family": "ip", "table": "t", "name": "c14", "handle": 14}}, {"chain": {"family": "ip", "table": "t", "name": "c15", "handle": 15}}, {"chain": {"family": "ip", "table": "t", "name": "c16", "handle": 16}}, {"chain": {"family": "ip", "table": "t", "name": "c17", "handle": 32}}, {"rule": {"family": "ip", "table": "t", "chain": "c1", "handle": 17, "expr": [{"jump": {"target": "c2"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c2", "handle": 18, "expr": [{"jump": {"target": "c3"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c3", "handle": 19, "expr": [{"jump": {"target": "c4"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c4", "handle": 20, "expr": [{"jump": {"target": "c5"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c5", "handle": 21, "expr": [{"jump": {"target": "c6"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c6", "handle": 22, "expr": [{"jump": {"target": "c7"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c7", "handle": 23, "expr": [{"jump": {"target": "c8"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c8", "handle": 24, "expr": [{"jump": {"target": "c9"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c9", "handle": 25, "expr": [{"jump": {"target": "c10"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c10", "handle": 26, "expr": [{"jump": {"target": "c11"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c11", "handle": 27, "expr": [{"jump": {"target": "c12"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c12", "handle": 28, "expr": [{"jump": {"target": "c13"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c13", "handle": 29, "expr": [{"jump": {"target": "c14"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c14", "handle": 30, "expr": [{"jump": {"target": "c15"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c15", "handle": 31, "expr": [{"jump": {"target": "c16"}}]}}]}
diff --git a/tests/shell/testcases/chains/dumps/0003jump_loop_1.json-nft b/tests/shell/testcases/chains/dumps/0003jump_loop_1.json-nft
new file mode 100644
index 00000000..d33c84fd
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0003jump_loop_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "t", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "c1", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "c2", "handle": 2}}, {"chain": {"family": "ip", "table": "t", "name": "c3", "handle": 3}}, {"chain": {"family": "ip", "table": "t", "name": "c4", "handle": 4}}, {"chain": {"family": "ip", "table": "t", "name": "c5", "handle": 5}}, {"chain": {"family": "ip", "table": "t", "name": "c6", "handle": 6}}, {"chain": {"family": "ip", "table": "t", "name": "c7", "handle": 7}}, {"chain": {"family": "ip", "table": "t", "name": "c8", "handle": 8}}, {"chain": {"family": "ip", "table": "t", "name": "c9", "handle": 9}}, {"chain": {"family": "ip", "table": "t", "name": "c10", "handle": 10}}, {"chain": {"family": "ip", "table": "t", "name": "c11", "handle": 11}}, {"chain": {"family": "ip", "table": "t", "name": "c12", "handle": 12}}, {"chain": {"family": "ip", "table": "t", "name": "c13", "handle": 13}}, {"chain": {"family": "ip", "table": "t", "name": "c14", "handle": 14}}, {"chain": {"family": "ip", "table": "t", "name": "c15", "handle": 15}}, {"chain": {"family": "ip", "table": "t", "name": "c16", "handle": 16}}, {"rule": {"family": "ip", "table": "t", "chain": "c1", "handle": 17, "expr": [{"jump": {"target": "c2"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c2", "handle": 18, "expr": [{"jump": {"target": "c3"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c3", "handle": 19, "expr": [{"jump": {"target": "c4"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c4", "handle": 20, "expr": [{"jump": {"target": "c5"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c5", "handle": 21, "expr": [{"jump": {"target": "c6"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c6", "handle": 22, "expr": [{"jump": {"target": "c7"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c7", "handle": 23, "expr": [{"jump": {"target": "c8"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c8", "handle": 24, "expr": [{"jump": {"target": "c9"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c9", "handle": 25, "expr": [{"jump": {"target": "c10"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c10", "handle": 26, "expr": [{"jump": {"target": "c11"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c11", "handle": 27, "expr": [{"jump": {"target": "c12"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c12", "handle": 28, "expr": [{"jump": {"target": "c13"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c13", "handle": 29, "expr": [{"jump": {"target": "c14"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c14", "handle": 30, "expr": [{"jump": {"target": "c15"}}]}}, {"rule": {"family": "ip", "table": "t", "chain": "c15", "handle": 31, "expr": [{"jump": {"target": "c16"}}]}}]}
diff --git a/tests/shell/testcases/chains/dumps/0004busy_1.json-nft b/tests/shell/testcases/chains/dumps/0004busy_1.json-nft
new file mode 100644
index 00000000..3691e5f2
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0004busy_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "t", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "c1", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "c2", "handle": 2}}, {"rule": {"family": "ip", "table": "t", "chain": "c1", "handle": 3, "expr": [{"jump": {"target": "c2"}}]}}]}
diff --git a/tests/shell/testcases/chains/dumps/0005busy_map_1.json-nft b/tests/shell/testcases/chains/dumps/0005busy_map_1.json-nft
new file mode 100644
index 00000000..df79bb87
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0005busy_map_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "t", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "c1", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "c2", "handle": 2}}, {"rule": {"family": "ip", "table": "t", "chain": "c1", "handle": 4, "expr": [{"vmap": {"key": {"payload": {"protocol": "tcp", "field": "dport"}}, "data": {"set": [[1, {"jump": {"target": "c2"}}]]}}}]}}]}
diff --git a/tests/shell/testcases/chains/dumps/0006masquerade_0.json-nft b/tests/shell/testcases/chains/dumps/0006masquerade_0.json-nft
new file mode 100644
index 00000000..36129a22
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0006masquerade_0.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "t", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "c1", "handle": 1, "type": "nat", "hook": "postrouting", "prio": 0, "policy": "accept"}}, {"rule": {"family": "ip", "table": "t", "chain": "c1", "handle": 2, "expr": [{"masquerade": null}]}}]}
diff --git a/tests/shell/testcases/chains/dumps/0007masquerade_1.json-nft b/tests/shell/testcases/chains/dumps/0007masquerade_1.json-nft
new file mode 100644
index 00000000..8b1cac74
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0007masquerade_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "t", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "c1", "handle": 1, "type": "filter", "hook": "output", "prio": 0, "policy": "accept"}}]}
diff --git a/tests/shell/testcases/chains/dumps/0008masquerade_jump_1.json-nft b/tests/shell/testcases/chains/dumps/0008masquerade_jump_1.json-nft
new file mode 100644
index 00000000..809a5ede
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0008masquerade_jump_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "t", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "output", "handle": 1, "type": "nat", "hook": "output", "prio": 0, "policy": "accept"}}, {"chain": {"family": "ip", "table": "t", "name": "c1", "handle": 2}}, {"rule": {"family": "ip", "table": "t", "chain": "c1", "handle": 3, "expr": [{"masquerade": null}]}}]}
diff --git a/tests/shell/testcases/chains/dumps/0009masquerade_jump_1.json-nft b/tests/shell/testcases/chains/dumps/0009masquerade_jump_1.json-nft
new file mode 100644
index 00000000..809a5ede
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0009masquerade_jump_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "t", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "output", "handle": 1, "type": "nat", "hook": "output", "prio": 0, "policy": "accept"}}, {"chain": {"family": "ip", "table": "t", "name": "c1", "handle": 2}}, {"rule": {"family": "ip", "table": "t", "chain": "c1", "handle": 3, "expr": [{"masquerade": null}]}}]}
diff --git a/tests/shell/testcases/chains/dumps/0010endless_jump_loop_1.json-nft b/tests/shell/testcases/chains/dumps/0010endless_jump_loop_1.json-nft
new file mode 100644
index 00000000..02c5c7f5
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0010endless_jump_loop_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "t", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "c", "handle": 1}}]}
diff --git a/tests/shell/testcases/chains/dumps/0013rename_0.json-nft b/tests/shell/testcases/chains/dumps/0013rename_0.json-nft
new file mode 100644
index 00000000..6256fcd1
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0013rename_0.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "t", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "c2", "handle": 1}}]}
diff --git a/tests/shell/testcases/chains/dumps/0014rename_0.json-nft b/tests/shell/testcases/chains/dumps/0014rename_0.json-nft
new file mode 100644
index 00000000..d9ca2347
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0014rename_0.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "t", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "c1", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "c2", "handle": 2}}]}
diff --git a/tests/shell/testcases/chains/dumps/0015check_jump_loop_1.json-nft b/tests/shell/testcases/chains/dumps/0015check_jump_loop_1.json-nft
new file mode 100644
index 00000000..3691e5f2
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0015check_jump_loop_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "t", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "c1", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "c2", "handle": 2}}, {"rule": {"family": "ip", "table": "t", "chain": "c1", "handle": 3, "expr": [{"jump": {"target": "c2"}}]}}]}
diff --git a/tests/shell/testcases/chains/dumps/0016delete_handle_0.json-nft b/tests/shell/testcases/chains/dumps/0016delete_handle_0.json-nft
new file mode 100644
index 00000000..86c81cab
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0016delete_handle_0.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "test-ip", "handle": 1}}, {"chain": {"family": "ip", "table": "test-ip", "name": "x", "handle": 1}}, {"chain": {"family": "ip", "table": "test-ip", "name": "z", "handle": 3}}, {"table": {"family": "ip6", "name": "test-ip6", "handle": 2}}, {"chain": {"family": "ip6", "table": "test-ip6", "name": "x", "handle": 1}}, {"chain": {"family": "ip6", "table": "test-ip6", "name": "y", "handle": 2}}]}
diff --git a/tests/shell/testcases/chains/dumps/0017masquerade_jump_1.json-nft b/tests/shell/testcases/chains/dumps/0017masquerade_jump_1.json-nft
new file mode 100644
index 00000000..d663c27f
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0017masquerade_jump_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "t", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "input", "handle": 1, "type": "filter", "hook": "input", "prio": 4, "policy": "accept"}}, {"chain": {"family": "ip", "table": "t", "name": "c1", "handle": 2}}, {"rule": {"family": "ip", "table": "t", "chain": "input", "handle": 3, "expr": [{"jump": {"target": "c1"}}]}}]}
diff --git a/tests/shell/testcases/chains/dumps/0018check_jump_loop_1.json-nft b/tests/shell/testcases/chains/dumps/0018check_jump_loop_1.json-nft
new file mode 100644
index 00000000..42d911c0
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0018check_jump_loop_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "filter", "handle": 1}}, {"chain": {"family": "ip", "table": "filter", "name": "ap1", "handle": 1}}, {"chain": {"family": "ip", "table": "filter", "name": "ap2", "handle": 2}}, {"rule": {"family": "ip", "table": "filter", "chain": "ap1", "handle": 3, "expr": [{"jump": {"target": "ap2"}}]}}]}
diff --git a/tests/shell/testcases/chains/dumps/0019masquerade_jump_1.json-nft b/tests/shell/testcases/chains/dumps/0019masquerade_jump_1.json-nft
new file mode 100644
index 00000000..1d855530
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0019masquerade_jump_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "t", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "input", "handle": 1, "type": "filter", "hook": "input", "prio": 4, "policy": "accept"}}, {"chain": {"family": "ip", "table": "t", "name": "c1", "handle": 2}}, {"rule": {"family": "ip", "table": "t", "chain": "input", "handle": 4, "expr": [{"vmap": {"key": {"payload": {"protocol": "ip", "field": "saddr"}}, "data": {"set": [["1.1.1.1", {"jump": {"target": "c1"}}]]}}}]}}]}
diff --git a/tests/shell/testcases/chains/dumps/0020depth_1.json-nft b/tests/shell/testcases/chains/dumps/0020depth_1.json-nft
new file mode 100644
index 00000000..3123b45b
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0020depth_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "filter", "handle": 1}}, {"chain": {"family": "ip", "table": "filter", "name": "input", "handle": 1, "type": "filter", "hook": "input", "prio": 0, "policy": "accept"}}, {"chain": {"family": "ip", "table": "filter", "name": "a0", "handle": 2}}, {"chain": {"family": "ip", "table": "filter", "name": "a1", "handle": 3}}, {"chain": {"family": "ip", "table": "filter", "name": "a2", "handle": 4}}, {"chain": {"family": "ip", "table": "filter", "name": "a3", "handle": 5}}, {"chain": {"family": "ip", "table": "filter", "name": "a4", "handle": 6}}, {"chain": {"family": "ip", "table": "filter", "name": "a5", "handle": 7}}, {"chain": {"family": "ip", "table": "filter", "name": "a6", "handle": 8}}, {"chain": {"family": "ip", "table": "filter", "name": "a7", "handle": 9}}, {"chain": {"family": "ip", "table": "filter", "name": "a8", "handle": 10}}, {"chain": {"family": "ip", "table": "filter", "name": "a9", "handle": 11}}, {"chain": {"family": "ip", "table": "filter", "name": "a10", "handle": 12}}, {"chain": {"family": "ip", "table": "filter", "name": "a11", "handle": 13}}, {"chain": {"family": "ip", "table": "filter", "name": "a12", "handle": 14}}, {"chain": {"family": "ip", "table": "filter", "name": "a13", "handle": 15}}, {"chain": {"family": "ip", "table": "filter", "name": "a14", "handle": 16}}, {"chain": {"family": "ip", "table": "filter", "name": "a15", "handle": 17}}, {"chain": {"family": "ip", "table": "filter", "name": "a16", "handle": 18}}, {"chain": {"family": "ip", "table": "filter", "name": "a17", "handle": 19}}, {"chain": {"family": "ip", "table": "filter", "name": "a18", "handle": 20}}, {"chain": {"family": "ip", "table": "filter", "name": "a19", "handle": 21}}, {"rule": {"family": "ip", "table": "filter", "chain": "input", "handle": 22, "expr": [{"jump": {"target": "a1"}}]}}, {"rule": {"family": "ip", "table": "filter", "chain": "a0", "handle": 23, "expr": [{"jump": {"target": "a1"}}]}}, {"rule": {"family": "ip", "table": "filter", "chain": "a1", "handle": 24, "expr": [{"jump": {"target": "a2"}}]}}, {"rule": {"family": "ip", "table": "filter", "chain": "a2", "handle": 25, "expr": [{"jump": {"target": "a3"}}]}}, {"rule": {"family": "ip", "table": "filter", "chain": "a3", "handle": 26, "expr": [{"jump": {"target": "a4"}}]}}, {"rule": {"family": "ip", "table": "filter", "chain": "a4", "handle": 27, "expr": [{"jump": {"target": "a5"}}]}}, {"rule": {"family": "ip", "table": "filter", "chain": "a5", "handle": 28, "expr": [{"jump": {"target": "a6"}}]}}, {"rule": {"family": "ip", "table": "filter", "chain": "a6", "handle": 29, "expr": [{"jump": {"target": "a7"}}]}}, {"rule": {"family": "ip", "table": "filter", "chain": "a7", "handle": 30, "expr": [{"jump": {"target": "a8"}}]}}, {"rule": {"family": "ip", "table": "filter", "chain": "a8", "handle": 31, "expr": [{"jump": {"target": "a9"}}]}}, {"rule": {"family": "ip", "table": "filter", "chain": "a9", "handle": 32, "expr": [{"jump": {"target": "a10"}}]}}, {"rule": {"family": "ip", "table": "filter", "chain": "a11", "handle": 33, "expr": [{"jump": {"target": "a12"}}]}}, {"rule": {"family": "ip", "table": "filter", "chain": "a12", "handle": 34, "expr": [{"jump": {"target": "a13"}}]}}, {"rule": {"family": "ip", "table": "filter", "chain": "a13", "handle": 35, "expr": [{"jump": {"target": "a14"}}]}}, {"rule": {"family": "ip", "table": "filter", "chain": "a14", "handle": 36, "expr": [{"jump": {"target": "a15"}}]}}, {"rule": {"family": "ip", "table": "filter", "chain": "a15", "handle": 37, "expr": [{"jump": {"target": "a16"}}]}}, {"rule": {"family": "ip", "table": "filter", "chain": "a16", "handle": 38, "expr": [{"jump": {"target": "a17"}}]}}, {"rule": {"family": "ip", "table": "filter", "chain": "a17", "handle": 39, "expr": [{"jump": {"target": "a18"}}]}}, {"rule": {"family": "ip", "table": "filter", "chain": "a18", "handle": 40, "expr": [{"jump": {"target": "a19"}}]}}]}
diff --git a/tests/shell/testcases/chains/dumps/0021prio_0.json-nft b/tests/shell/testcases/chains/dumps/0021prio_0.json-nft
new file mode 100644
index 00000000..f30f2320
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0021prio_0.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "x", "handle": 1}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingrawm11", "handle": 1, "type": "filter", "hook": "prerouting", "prio": -311, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingrawm10", "handle": 2, "type": "filter", "hook": "prerouting", "prio": -310, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingraw", "handle": 3, "type": "filter", "hook": "prerouting", "prio": -300, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingrawp10", "handle": 4, "type": "filter", "hook": "prerouting", "prio": -290, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingrawp11", "handle": 5, "type": "filter", "hook": "prerouting", "prio": -289, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingmanglem11", "handle": 6, "type": "filter", "hook": "prerouting", "prio": -161, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingmanglem10", "handle": 7, "type": "filter", "hook": "prerouting", "prio": -160, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingmangle", "handle": 8, "type": "filter", "hook": "prerouting", "prio": -150, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingmanglep10", "handle": 9, "type": "filter", "hook": "prerouting", "prio": -140, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingmanglep11", "handle": 10, "type": "filter", "hook": "prerouting", "prio": -139, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingfilterm11", "handle": 11, "type": "filter", "hook": "prerouting", "prio": -11, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingfilterm10", "handle": 12, "type": "filter", "hook": "prerouting", "prio": -10, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingfilter", "handle": 13, "type": "filter", "hook": "prerouting", "prio": 0, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingfilterp10", "handle": 14, "type": "filter", "hook": "prerouting", "prio": 10, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingfilterp11", "handle": 15, "type": "filter", "hook": "prerouting", "prio": 11, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingsecuritym11", "handle": 16, "type": "filter", "hook": "prerouting", "prio": 39, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingsecuritym10", "handle": 17, "type": "filter", "hook": "prerouting", "prio": 40, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingsecurity", "handle": 18, "type": "filter", "hook": "prerouting", "prio": 50, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingsecurityp10", "handle": 19, "type": "filter", "hook": "prerouting", "prio": 60, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingsecurityp11", "handle": 20, "type": "filter", "hook": "prerouting", "prio": 61, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputrawm11", "handle": 21, "type": "filter", "hook": "input", "prio": -311, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputrawm10", "handle": 22, "type": "filter", "hook": "input", "prio": -310, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputraw", "handle": 23, "type": "filter", "hook": "input", "prio": -300, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputrawp10", "handle": 24, "type": "filter", "hook": "input", "prio": -290, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputrawp11", "handle": 25, "type": "filter", "hook": "input", "prio": -289, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputmanglem11", "handle": 26, "type": "filter", "hook": "input", "prio": -161, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputmanglem10", "handle": 27, "type": "filter", "hook": "input", "prio": -160, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputmangle", "handle": 28, "type": "filter", "hook": "input", "prio": -150, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputmanglep10", "handle": 29, "type": "filter", "hook": "input", "prio": -140, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputmanglep11", "handle": 30, "type": "filter", "hook": "input", "prio": -139, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputfilterm11", "handle": 31, "type": "filter", "hook": "input", "prio": -11, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputfilterm10", "handle": 32, "type": "filter", "hook": "input", "prio": -10, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputfilter", "handle": 33, "type": "filter", "hook": "input", "prio": 0, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputfilterp10", "handle": 34, "type": "filter", "hook": "input", "prio": 10, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputfilterp11", "handle": 35, "type": "filter", "hook": "input", "prio": 11, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputsecuritym11", "handle": 36, "type": "filter", "hook": "input", "prio": 39, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputsecuritym10", "handle": 37, "type": "filter", "hook": "input", "prio": 40, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputsecurity", "handle": 38, "type": "filter", "hook": "input", "prio": 50, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputsecurityp10", "handle": 39, "type": "filter", "hook": "input", "prio": 60, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "inputsecurityp11", "handle": 40, "type": "filter", "hook": "input", "prio": 61, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardrawm11", "handle": 41, "type": "filter", "hook": "forward", "prio": -311, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardrawm10", "handle": 42, "type": "filter", "hook": "forward", "prio": -310, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardraw", "handle": 43, "type": "filter", "hook": "forward", "prio": -300, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardrawp10", "handle": 44, "type": "filter", "hook": "forward", "prio": -290, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardrawp11", "handle": 45, "type": "filter", "hook": "forward", "prio": -289, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardmanglem11", "handle": 46, "type": "filter", "hook": "forward", "prio": -161, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardmanglem10", "handle": 47, "type": "filter", "hook": "forward", "prio": -160, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardmangle", "handle": 48, "type": "filter", "hook": "forward", "prio": -150, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardmanglep10", "handle": 49, "type": "filter", "hook": "forward", "prio": -140, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardmanglep11", "handle": 50, "type": "filter", "hook": "forward", "prio": -139, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardfilterm11", "handle": 51, "type": "filter", "hook": "forward", "prio": -11, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardfilterm10", "handle": 52, "type": "filter", "hook": "forward", "prio": -10, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardfilter", "handle": 53, "type": "filter", "hook": "forward", "prio": 0, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardfilterp10", "handle": 54, "type": "filter", "hook": "forward", "prio": 10, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardfilterp11", "handle": 55, "type": "filter", "hook": "forward", "prio": 11, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardsecuritym11", "handle": 56, "type": "filter", "hook": "forward", "prio": 39, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardsecuritym10", "handle": 57, "type": "filter", "hook": "forward", "prio": 40, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardsecurity", "handle": 58, "type": "filter", "hook": "forward", "prio": 50, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardsecurityp10", "handle": 59, "type": "filter", "hook": "forward", "prio": 60, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "forwardsecurityp11", "handle": 60, "type": "filter", "hook": "forward", "prio": 61, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputrawm11", "handle": 61, "type": "filter", "hook": "output", "prio": -311, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputrawm10", "handle": 62, "type": "filter", "hook": "output", "prio": -310, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputraw", "handle": 63, "type": "filter", "hook": "output", "prio": -300, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputrawp10", "handle": 64, "type": "filter", "hook": "output", "prio": -290, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputrawp11", "handle": 65, "type": "filter", "hook": "output", "prio": -289, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputmanglem11", "handle": 66, "type": "filter", "hook": "output", "prio": -161, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputmanglem10", "handle": 67, "type": "filter", "hook": "output", "prio": -160, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputmangle", "handle": 68, "type": "filter", "hook": "output", "prio": -150, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputmanglep10", "handle": 69, "type": "filter", "hook": "output", "prio": -140, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputmanglep11", "handle": 70, "type": "filter", "hook": "output", "prio": -139, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputfilterm11", "handle": 71, "type": "filter", "hook": "output", "prio": -11, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputfilterm10", "handle": 72, "type": "filter", "hook": "output", "prio": -10, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputfilter", "handle": 73, "type": "filter", "hook": "output", "prio": 0, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputfilterp10", "handle": 74, "type": "filter", "hook": "output", "prio": 10, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputfilterp11", "handle": 75, "type": "filter", "hook": "output", "prio": 11, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputsecuritym11", "handle": 76, "type": "filter", "hook": "output", "prio": 39, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputsecuritym10", "handle": 77, "type": "filter", "hook": "output", "prio": 40, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputsecurity", "handle": 78, "type": "filter", "hook": "output", "prio": 50, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputsecurityp10", "handle": 79, "type": "filter", "hook": "output", "prio": 60, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "outputsecurityp11", "handle": 80, "type": "filter", "hook": "output", "prio": 61, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingrawm11", "handle": 81, "type": "filter", "hook": "postrouting", "prio": -311, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingrawm10", "handle": 82, "type": "filter", "hook": "postrouting", "prio": -310, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingraw", "handle": 83, "type": "filter", "hook": "postrouting", "prio": -300, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingrawp10", "handle": 84, "type": "filter", "hook": "postrouting", "prio": -290, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingrawp11", "handle": 85, "type": "filter", "hook": "postrouting", "prio": -289, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingmanglem11", "handle": 86, "type": "filter", "hook": "postrouting", "prio": -161, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingmanglem10", "handle": 87, "type": "filter", "hook": "postrouting", "prio": -160, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingmangle", "handle": 88, "type": "filter", "hook": "postrouting", "prio": -150, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingmanglep10", "handle": 89, "type": "filter", "hook": "postrouting", "prio": -140, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingmanglep11", "handle": 90, "type": "filter", "hook": "postrouting", "prio": -139, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingfilterm11", "handle": 91, "type": "filter", "hook": "postrouting", "prio": -11, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingfilterm10", "handle": 92, "type": "filter", "hook": "postrouting", "prio": -10, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingfilter", "handle": 93, "type": "filter", "hook": "postrouting", "prio": 0, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingfilterp10", "handle": 94, "type": "filter", "hook": "postrouting", "prio": 10, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingfilterp11", "handle": 95, "type": "filter", "hook": "postrouting", "prio": 11, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingsecuritym11", "handle": 96, "type": "filter", "hook": "postrouting", "prio": 39, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingsecuritym10", "handle": 97, "type": "filter", "hook": "postrouting", "prio": 40, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingsecurity", "handle": 98, "type": "filter", "hook": "postrouting", "prio": 50, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingsecurityp10", "handle": 99, "type": "filter", "hook": "postrouting", "prio": 60, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingsecurityp11", "handle": 100, "type": "filter", "hook": "postrouting", "prio": 61, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingdstnatm11", "handle": 101, "type": "filter", "hook": "prerouting", "prio": -111, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingdstnatm10", "handle": 102, "type": "filter", "hook": "prerouting", "prio": -110, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingdstnat", "handle": 103, "type": "filter", "hook": "prerouting", "prio": -100, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingdstnatp10", "handle": 104, "type": "filter", "hook": "prerouting", "prio": -90, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "preroutingdstnatp11", "handle": 105, "type": "filter", "hook": "prerouting", "prio": -89, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingsrcnatm11", "handle": 106, "type": "filter", "hook": "postrouting", "prio": 89, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingsrcnatm10", "handle": 107, "type": "filter", "hook": "postrouting", "prio": 90, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingsrcnat", "handle": 108, "type": "filter", "hook": "postrouting", "prio": 100, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingsrcnatp10", "handle": 109, "type": "filter", "hook": "postrouting", "prio": 110, "policy": "accept"}}, {"chain": {"family": "ip", "table": "x", "name": "postroutingsrcnatp11", "handle": 110, "type": "filter", "hook": "postrouting", "prio": 111, "policy": "accept"}}, {"table": {"family": "ip6", "name": "x", "handle": 2}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingrawm11", "handle": 1, "type": "filter", "hook": "prerouting", "prio": -311, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingrawm10", "handle": 2, "type": "filter", "hook": "prerouting", "prio": -310, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingraw", "handle": 3, "type": "filter", "hook": "prerouting", "prio": -300, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingrawp10", "handle": 4, "type": "filter", "hook": "prerouting", "prio": -290, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingrawp11", "handle": 5, "type": "filter", "hook": "prerouting", "prio": -289, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingmanglem11", "handle": 6, "type": "filter", "hook": "prerouting", "prio": -161, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingmanglem10", "handle": 7, "type": "filter", "hook": "prerouting", "prio": -160, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingmangle", "handle": 8, "type": "filter", "hook": "prerouting", "prio": -150, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingmanglep10", "handle": 9, "type": "filter", "hook": "prerouting", "prio": -140, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingmanglep11", "handle": 10, "type": "filter", "hook": "prerouting", "prio": -139, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingfilterm11", "handle": 11, "type": "filter", "hook": "prerouting", "prio": -11, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingfilterm10", "handle": 12, "type": "filter", "hook": "prerouting", "prio": -10, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingfilter", "handle": 13, "type": "filter", "hook": "prerouting", "prio": 0, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingfilterp10", "handle": 14, "type": "filter", "hook": "prerouting", "prio": 10, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingfilterp11", "handle": 15, "type": "filter", "hook": "prerouting", "prio": 11, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingsecuritym11", "handle": 16, "type": "filter", "hook": "prerouting", "prio": 39, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingsecuritym10", "handle": 17, "type": "filter", "hook": "prerouting", "prio": 40, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingsecurity", "handle": 18, "type": "filter", "hook": "prerouting", "prio": 50, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingsecurityp10", "handle": 19, "type": "filter", "hook": "prerouting", "prio": 60, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingsecurityp11", "handle": 20, "type": "filter", "hook": "prerouting", "prio": 61, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputrawm11", "handle": 21, "type": "filter", "hook": "input", "prio": -311, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputrawm10", "handle": 22, "type": "filter", "hook": "input", "prio": -310, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputraw", "handle": 23, "type": "filter", "hook": "input", "prio": -300, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputrawp10", "handle": 24, "type": "filter", "hook": "input", "prio": -290, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputrawp11", "handle": 25, "type": "filter", "hook": "input", "prio": -289, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputmanglem11", "handle": 26, "type": "filter", "hook": "input", "prio": -161, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputmanglem10", "handle": 27, "type": "filter", "hook": "input", "prio": -160, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputmangle", "handle": 28, "type": "filter", "hook": "input", "prio": -150, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputmanglep10", "handle": 29, "type": "filter", "hook": "input", "prio": -140, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputmanglep11", "handle": 30, "type": "filter", "hook": "input", "prio": -139, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputfilterm11", "handle": 31, "type": "filter", "hook": "input", "prio": -11, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputfilterm10", "handle": 32, "type": "filter", "hook": "input", "prio": -10, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputfilter", "handle": 33, "type": "filter", "hook": "input", "prio": 0, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputfilterp10", "handle": 34, "type": "filter", "hook": "input", "prio": 10, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputfilterp11", "handle": 35, "type": "filter", "hook": "input", "prio": 11, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputsecuritym11", "handle": 36, "type": "filter", "hook": "input", "prio": 39, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputsecuritym10", "handle": 37, "type": "filter", "hook": "input", "prio": 40, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputsecurity", "handle": 38, "type": "filter", "hook": "input", "prio": 50, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputsecurityp10", "handle": 39, "type": "filter", "hook": "input", "prio": 60, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "inputsecurityp11", "handle": 40, "type": "filter", "hook": "input", "prio": 61, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardrawm11", "handle": 41, "type": "filter", "hook": "forward", "prio": -311, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardrawm10", "handle": 42, "type": "filter", "hook": "forward", "prio": -310, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardraw", "handle": 43, "type": "filter", "hook": "forward", "prio": -300, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardrawp10", "handle": 44, "type": "filter", "hook": "forward", "prio": -290, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardrawp11", "handle": 45, "type": "filter", "hook": "forward", "prio": -289, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardmanglem11", "handle": 46, "type": "filter", "hook": "forward", "prio": -161, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardmanglem10", "handle": 47, "type": "filter", "hook": "forward", "prio": -160, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardmangle", "handle": 48, "type": "filter", "hook": "forward", "prio": -150, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardmanglep10", "handle": 49, "type": "filter", "hook": "forward", "prio": -140, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardmanglep11", "handle": 50, "type": "filter", "hook": "forward", "prio": -139, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardfilterm11", "handle": 51, "type": "filter", "hook": "forward", "prio": -11, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardfilterm10", "handle": 52, "type": "filter", "hook": "forward", "prio": -10, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardfilter", "handle": 53, "type": "filter", "hook": "forward", "prio": 0, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardfilterp10", "handle": 54, "type": "filter", "hook": "forward", "prio": 10, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardfilterp11", "handle": 55, "type": "filter", "hook": "forward", "prio": 11, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardsecuritym11", "handle": 56, "type": "filter", "hook": "forward", "prio": 39, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardsecuritym10", "handle": 57, "type": "filter", "hook": "forward", "prio": 40, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardsecurity", "handle": 58, "type": "filter", "hook": "forward", "prio": 50, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardsecurityp10", "handle": 59, "type": "filter", "hook": "forward", "prio": 60, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "forwardsecurityp11", "handle": 60, "type": "filter", "hook": "forward", "prio": 61, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputrawm11", "handle": 61, "type": "filter", "hook": "output", "prio": -311, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputrawm10", "handle": 62, "type": "filter", "hook": "output", "prio": -310, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputraw", "handle": 63, "type": "filter", "hook": "output", "prio": -300, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputrawp10", "handle": 64, "type": "filter", "hook": "output", "prio": -290, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputrawp11", "handle": 65, "type": "filter", "hook": "output", "prio": -289, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputmanglem11", "handle": 66, "type": "filter", "hook": "output", "prio": -161, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputmanglem10", "handle": 67, "type": "filter", "hook": "output", "prio": -160, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputmangle", "handle": 68, "type": "filter", "hook": "output", "prio": -150, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputmanglep10", "handle": 69, "type": "filter", "hook": "output", "prio": -140, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputmanglep11", "handle": 70, "type": "filter", "hook": "output", "prio": -139, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputfilterm11", "handle": 71, "type": "filter", "hook": "output", "prio": -11, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputfilterm10", "handle": 72, "type": "filter", "hook": "output", "prio": -10, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputfilter", "handle": 73, "type": "filter", "hook": "output", "prio": 0, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputfilterp10", "handle": 74, "type": "filter", "hook": "output", "prio": 10, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputfilterp11", "handle": 75, "type": "filter", "hook": "output", "prio": 11, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputsecuritym11", "handle": 76, "type": "filter", "hook": "output", "prio": 39, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputsecuritym10", "handle": 77, "type": "filter", "hook": "output", "prio": 40, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputsecurity", "handle": 78, "type": "filter", "hook": "output", "prio": 50, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputsecurityp10", "handle": 79, "type": "filter", "hook": "output", "prio": 60, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "outputsecurityp11", "handle": 80, "type": "filter", "hook": "output", "prio": 61, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingrawm11", "handle": 81, "type": "filter", "hook": "postrouting", "prio": -311, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingrawm10", "handle": 82, "type": "filter", "hook": "postrouting", "prio": -310, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingraw", "handle": 83, "type": "filter", "hook": "postrouting", "prio": -300, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingrawp10", "handle": 84, "type": "filter", "hook": "postrouting", "prio": -290, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingrawp11", "handle": 85, "type": "filter", "hook": "postrouting", "prio": -289, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingmanglem11", "handle": 86, "type": "filter", "hook": "postrouting", "prio": -161, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingmanglem10", "handle": 87, "type": "filter", "hook": "postrouting", "prio": -160, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingmangle", "handle": 88, "type": "filter", "hook": "postrouting", "prio": -150, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingmanglep10", "handle": 89, "type": "filter", "hook": "postrouting", "prio": -140, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingmanglep11", "handle": 90, "type": "filter", "hook": "postrouting", "prio": -139, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingfilterm11", "handle": 91, "type": "filter", "hook": "postrouting", "prio": -11, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingfilterm10", "handle": 92, "type": "filter", "hook": "postrouting", "prio": -10, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingfilter", "handle": 93, "type": "filter", "hook": "postrouting", "prio": 0, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingfilterp10", "handle": 94, "type": "filter", "hook": "postrouting", "prio": 10, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingfilterp11", "handle": 95, "type": "filter", "hook": "postrouting", "prio": 11, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingsecuritym11", "handle": 96, "type": "filter", "hook": "postrouting", "prio": 39, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingsecuritym10", "handle": 97, "type": "filter", "hook": "postrouting", "prio": 40, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingsecurity", "handle": 98, "type": "filter", "hook": "postrouting", "prio": 50, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingsecurityp10", "handle": 99, "type": "filter", "hook": "postrouting", "prio": 60, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingsecurityp11", "handle": 100, "type": "filter", "hook": "postrouting", "prio": 61, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingdstnatm11", "handle": 101, "type": "filter", "hook": "prerouting", "prio": -111, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingdstnatm10", "handle": 102, "type": "filter", "hook": "prerouting", "prio": -110, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingdstnat", "handle": 103, "type": "filter", "hook": "prerouting", "prio": -100, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingdstnatp10", "handle": 104, "type": "filter", "hook": "prerouting", "prio": -90, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "preroutingdstnatp11", "handle": 105, "type": "filter", "hook": "prerouting", "prio": -89, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingsrcnatm11", "handle": 106, "type": "filter", "hook": "postrouting", "prio": 89, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingsrcnatm10", "handle": 107, "type": "filter", "hook": "postrouting", "prio": 90, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingsrcnat", "handle": 108, "type": "filter", "hook": "postrouting", "prio": 100, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingsrcnatp10", "handle": 109, "type": "filter", "hook": "postrouting", "prio": 110, "policy": "accept"}}, {"chain": {"family": "ip6", "table": "x", "name": "postroutingsrcnatp11", "handle": 110, "type": "filter", "hook": "postrouting", "prio": 111, "policy": "accept"}}, {"table": {"family": "inet", "name": "x", "handle": 3}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingrawm11", "handle": 1, "type": "filter", "hook": "prerouting", "prio": -311, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingrawm10", "handle": 2, "type": "filter", "hook": "prerouting", "prio": -310, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingraw", "handle": 3, "type": "filter", "hook": "prerouting", "prio": -300, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingrawp10", "handle": 4, "type": "filter", "hook": "prerouting", "prio": -290, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingrawp11", "handle": 5, "type": "filter", "hook": "prerouting", "prio": -289, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingmanglem11", "handle": 6, "type": "filter", "hook": "prerouting", "prio": -161, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingmanglem10", "handle": 7, "type": "filter", "hook": "prerouting", "prio": -160, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingmangle", "handle": 8, "type": "filter", "hook": "prerouting", "prio": -150, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingmanglep10", "handle": 9, "type": "filter", "hook": "prerouting", "prio": -140, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingmanglep11", "handle": 10, "type": "filter", "hook": "prerouting", "prio": -139, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingfilterm11", "handle": 11, "type": "filter", "hook": "prerouting", "prio": -11, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingfilterm10", "handle": 12, "type": "filter", "hook": "prerouting", "prio": -10, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingfilter", "handle": 13, "type": "filter", "hook": "prerouting", "prio": 0, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingfilterp10", "handle": 14, "type": "filter", "hook": "prerouting", "prio": 10, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingfilterp11", "handle": 15, "type": "filter", "hook": "prerouting", "prio": 11, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingsecuritym11", "handle": 16, "type": "filter", "hook": "prerouting", "prio": 39, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingsecuritym10", "handle": 17, "type": "filter", "hook": "prerouting", "prio": 40, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingsecurity", "handle": 18, "type": "filter", "hook": "prerouting", "prio": 50, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingsecurityp10", "handle": 19, "type": "filter", "hook": "prerouting", "prio": 60, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingsecurityp11", "handle": 20, "type": "filter", "hook": "prerouting", "prio": 61, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputrawm11", "handle": 21, "type": "filter", "hook": "input", "prio": -311, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputrawm10", "handle": 22, "type": "filter", "hook": "input", "prio": -310, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputraw", "handle": 23, "type": "filter", "hook": "input", "prio": -300, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputrawp10", "handle": 24, "type": "filter", "hook": "input", "prio": -290, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputrawp11", "handle": 25, "type": "filter", "hook": "input", "prio": -289, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputmanglem11", "handle": 26, "type": "filter", "hook": "input", "prio": -161, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputmanglem10", "handle": 27, "type": "filter", "hook": "input", "prio": -160, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputmangle", "handle": 28, "type": "filter", "hook": "input", "prio": -150, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputmanglep10", "handle": 29, "type": "filter", "hook": "input", "prio": -140, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputmanglep11", "handle": 30, "type": "filter", "hook": "input", "prio": -139, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputfilterm11", "handle": 31, "type": "filter", "hook": "input", "prio": -11, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputfilterm10", "handle": 32, "type": "filter", "hook": "input", "prio": -10, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputfilter", "handle": 33, "type": "filter", "hook": "input", "prio": 0, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputfilterp10", "handle": 34, "type": "filter", "hook": "input", "prio": 10, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputfilterp11", "handle": 35, "type": "filter", "hook": "input", "prio": 11, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputsecuritym11", "handle": 36, "type": "filter", "hook": "input", "prio": 39, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputsecuritym10", "handle": 37, "type": "filter", "hook": "input", "prio": 40, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputsecurity", "handle": 38, "type": "filter", "hook": "input", "prio": 50, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputsecurityp10", "handle": 39, "type": "filter", "hook": "input", "prio": 60, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "inputsecurityp11", "handle": 40, "type": "filter", "hook": "input", "prio": 61, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardrawm11", "handle": 41, "type": "filter", "hook": "forward", "prio": -311, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardrawm10", "handle": 42, "type": "filter", "hook": "forward", "prio": -310, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardraw", "handle": 43, "type": "filter", "hook": "forward", "prio": -300, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardrawp10", "handle": 44, "type": "filter", "hook": "forward", "prio": -290, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardrawp11", "handle": 45, "type": "filter", "hook": "forward", "prio": -289, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardmanglem11", "handle": 46, "type": "filter", "hook": "forward", "prio": -161, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardmanglem10", "handle": 47, "type": "filter", "hook": "forward", "prio": -160, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardmangle", "handle": 48, "type": "filter", "hook": "forward", "prio": -150, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardmanglep10", "handle": 49, "type": "filter", "hook": "forward", "prio": -140, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardmanglep11", "handle": 50, "type": "filter", "hook": "forward", "prio": -139, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardfilterm11", "handle": 51, "type": "filter", "hook": "forward", "prio": -11, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardfilterm10", "handle": 52, "type": "filter", "hook": "forward", "prio": -10, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardfilter", "handle": 53, "type": "filter", "hook": "forward", "prio": 0, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardfilterp10", "handle": 54, "type": "filter", "hook": "forward", "prio": 10, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardfilterp11", "handle": 55, "type": "filter", "hook": "forward", "prio": 11, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardsecuritym11", "handle": 56, "type": "filter", "hook": "forward", "prio": 39, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardsecuritym10", "handle": 57, "type": "filter", "hook": "forward", "prio": 40, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardsecurity", "handle": 58, "type": "filter", "hook": "forward", "prio": 50, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardsecurityp10", "handle": 59, "type": "filter", "hook": "forward", "prio": 60, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "forwardsecurityp11", "handle": 60, "type": "filter", "hook": "forward", "prio": 61, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputrawm11", "handle": 61, "type": "filter", "hook": "output", "prio": -311, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputrawm10", "handle": 62, "type": "filter", "hook": "output", "prio": -310, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputraw", "handle": 63, "type": "filter", "hook": "output", "prio": -300, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputrawp10", "handle": 64, "type": "filter", "hook": "output", "prio": -290, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputrawp11", "handle": 65, "type": "filter", "hook": "output", "prio": -289, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputmanglem11", "handle": 66, "type": "filter", "hook": "output", "prio": -161, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputmanglem10", "handle": 67, "type": "filter", "hook": "output", "prio": -160, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputmangle", "handle": 68, "type": "filter", "hook": "output", "prio": -150, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputmanglep10", "handle": 69, "type": "filter", "hook": "output", "prio": -140, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputmanglep11", "handle": 70, "type": "filter", "hook": "output", "prio": -139, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputfilterm11", "handle": 71, "type": "filter", "hook": "output", "prio": -11, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputfilterm10", "handle": 72, "type": "filter", "hook": "output", "prio": -10, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputfilter", "handle": 73, "type": "filter", "hook": "output", "prio": 0, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputfilterp10", "handle": 74, "type": "filter", "hook": "output", "prio": 10, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputfilterp11", "handle": 75, "type": "filter", "hook": "output", "prio": 11, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputsecuritym11", "handle": 76, "type": "filter", "hook": "output", "prio": 39, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputsecuritym10", "handle": 77, "type": "filter", "hook": "output", "prio": 40, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputsecurity", "handle": 78, "type": "filter", "hook": "output", "prio": 50, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputsecurityp10", "handle": 79, "type": "filter", "hook": "output", "prio": 60, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "outputsecurityp11", "handle": 80, "type": "filter", "hook": "output", "prio": 61, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingrawm11", "handle": 81, "type": "filter", "hook": "postrouting", "prio": -311, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingrawm10", "handle": 82, "type": "filter", "hook": "postrouting", "prio": -310, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingraw", "handle": 83, "type": "filter", "hook": "postrouting", "prio": -300, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingrawp10", "handle": 84, "type": "filter", "hook": "postrouting", "prio": -290, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingrawp11", "handle": 85, "type": "filter", "hook": "postrouting", "prio": -289, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingmanglem11", "handle": 86, "type": "filter", "hook": "postrouting", "prio": -161, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingmanglem10", "handle": 87, "type": "filter", "hook": "postrouting", "prio": -160, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingmangle", "handle": 88, "type": "filter", "hook": "postrouting", "prio": -150, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingmanglep10", "handle": 89, "type": "filter", "hook": "postrouting", "prio": -140, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingmanglep11", "handle": 90, "type": "filter", "hook": "postrouting", "prio": -139, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingfilterm11", "handle": 91, "type": "filter", "hook": "postrouting", "prio": -11, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingfilterm10", "handle": 92, "type": "filter", "hook": "postrouting", "prio": -10, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingfilter", "handle": 93, "type": "filter", "hook": "postrouting", "prio": 0, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingfilterp10", "handle": 94, "type": "filter", "hook": "postrouting", "prio": 10, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingfilterp11", "handle": 95, "type": "filter", "hook": "postrouting", "prio": 11, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingsecuritym11", "handle": 96, "type": "filter", "hook": "postrouting", "prio": 39, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingsecuritym10", "handle": 97, "type": "filter", "hook": "postrouting", "prio": 40, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingsecurity", "handle": 98, "type": "filter", "hook": "postrouting", "prio": 50, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingsecurityp10", "handle": 99, "type": "filter", "hook": "postrouting", "prio": 60, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingsecurityp11", "handle": 100, "type": "filter", "hook": "postrouting", "prio": 61, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingdstnatm11", "handle": 101, "type": "filter", "hook": "prerouting", "prio": -111, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingdstnatm10", "handle": 102, "type": "filter", "hook": "prerouting", "prio": -110, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingdstnat", "handle": 103, "type": "filter", "hook": "prerouting", "prio": -100, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingdstnatp10", "handle": 104, "type": "filter", "hook": "prerouting", "prio": -90, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "preroutingdstnatp11", "handle": 105, "type": "filter", "hook": "prerouting", "prio": -89, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingsrcnatm11", "handle": 106, "type": "filter", "hook": "postrouting", "prio": 89, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingsrcnatm10", "handle": 107, "type": "filter", "hook": "postrouting", "prio": 90, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingsrcnat", "handle": 108, "type": "filter", "hook": "postrouting", "prio": 100, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingsrcnatp10", "handle": 109, "type": "filter", "hook": "postrouting", "prio": 110, "policy": "accept"}}, {"chain": {"family": "inet", "table": "x", "name": "postroutingsrcnatp11", "handle": 110, "type": "filter", "hook": "postrouting", "prio": 111, "policy": "accept"}}, {"table": {"family": "arp", "name": "x", "handle": 4}}, {"chain": {"family": "arp", "table": "x", "name": "inputfilterm11", "handle": 1, "type": "filter", "hook": "input", "prio": -11, "policy": "accept"}}, {"chain": {"family": "arp", "table": "x", "name": "inputfilterm10", "handle": 2, "type": "filter", "hook": "input", "prio": -10, "policy": "accept"}}, {"chain": {"family": "arp", "table": "x", "name": "inputfilter", "handle": 3, "type": "filter", "hook": "input", "prio": 0, "policy": "accept"}}, {"chain": {"family": "arp", "table": "x", "name": "inputfilterp10", "handle": 4, "type": "filter", "hook": "input", "prio": 10, "policy": "accept"}}, {"chain": {"family": "arp", "table": "x", "name": "inputfilterp11", "handle": 5, "type": "filter", "hook": "input", "prio": 11, "policy": "accept"}}, {"chain": {"family": "arp", "table": "x", "name": "outputfilterm11", "handle": 6, "type": "filter", "hook": "output", "prio": -11, "policy": "accept"}}, {"chain": {"family": "arp", "table": "x", "name": "outputfilterm10", "handle": 7, "type": "filter", "hook": "output", "prio": -10, "policy": "accept"}}, {"chain": {"family": "arp", "table": "x", "name": "outputfilter", "handle": 8, "type": "filter", "hook": "output", "prio": 0, "policy": "accept"}}, {"chain": {"family": "arp", "table": "x", "name": "outputfilterp10", "handle": 9, "type": "filter", "hook": "output", "prio": 10, "policy": "accept"}}, {"chain": {"family": "arp", "table": "x", "name": "outputfilterp11", "handle": 10, "type": "filter", "hook": "output", "prio": 11, "policy": "accept"}}, {"table": {"family": "netdev", "name": "x", "handle": 5}}, {"chain": {"family": "netdev", "table": "x", "name": "ingressfilterm11", "handle": 1, "type": "filter", "hook": "ingress", "prio": -11, "policy": "accept"}}, {"chain": {"family": "netdev", "table": "x", "name": "ingressfilterm10", "handle": 2, "type": "filter", "hook": "ingress", "prio": -10, "policy": "accept"}}, {"chain": {"family": "netdev", "table": "x", "name": "ingressfilter", "handle": 3, "type": "filter", "hook": "ingress", "prio": 0, "policy": "accept"}}, {"chain": {"family": "netdev", "table": "x", "name": "ingressfilterp10", "handle": 4, "type": "filter", "hook": "ingress", "prio": 10, "policy": "accept"}}, {"chain": {"family": "netdev", "table": "x", "name": "ingressfilterp11", "handle": 5, "type": "filter", "hook": "ingress", "prio": 11, "policy": "accept"}}, {"chain": {"family": "netdev", "table": "x", "name": "egressfilterm11", "handle": 6, "type": "filter", "hook": "egress", "prio": -11, "policy": "accept"}}, {"chain": {"family": "netdev", "table": "x", "name": "egressfilterm10", "handle": 7, "type": "filter", "hook": "egress", "prio": -10, "policy": "accept"}}, {"chain": {"family": "netdev", "table": "x", "name": "egressfilter", "handle": 8, "type": "filter", "hook": "egress", "prio": 0, "policy": "accept"}}, {"chain": {"family": "netdev", "table": "x", "name": "egressfilterp10", "handle": 9, "type": "filter", "hook": "egress", "prio": 10, "policy": "accept"}}, {"chain": {"family": "netdev", "table": "x", "name": "egressfilterp11", "handle": 10, "type": "filter", "hook": "egress", "prio": 11, "policy": "accept"}}, {"table": {"family": "bridge", "name": "x", "handle": 6}}, {"chain": {"family": "bridge", "table": "x", "name": "preroutingfilterm11", "handle": 1, "type": "filter", "hook": "prerouting", "prio": -211, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "preroutingfilterm10", "handle": 2, "type": "filter", "hook": "prerouting", "prio": -210, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "preroutingfilter", "handle": 3, "type": "filter", "hook": "prerouting", "prio": -200, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "preroutingfilterp10", "handle": 4, "type": "filter", "hook": "prerouting", "prio": -190, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "preroutingfilterp11", "handle": 5, "type": "filter", "hook": "prerouting", "prio": -189, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "inputfilterm11", "handle": 6, "type": "filter", "hook": "input", "prio": -211, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "inputfilterm10", "handle": 7, "type": "filter", "hook": "input", "prio": -210, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "inputfilter", "handle": 8, "type": "filter", "hook": "input", "prio": -200, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "inputfilterp10", "handle": 9, "type": "filter", "hook": "input", "prio": -190, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "inputfilterp11", "handle": 10, "type": "filter", "hook": "input", "prio": -189, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "forwardfilterm11", "handle": 11, "type": "filter", "hook": "forward", "prio": -211, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "forwardfilterm10", "handle": 12, "type": "filter", "hook": "forward", "prio": -210, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "forwardfilter", "handle": 13, "type": "filter", "hook": "forward", "prio": -200, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "forwardfilterp10", "handle": 14, "type": "filter", "hook": "forward", "prio": -190, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "forwardfilterp11", "handle": 15, "type": "filter", "hook": "forward", "prio": -189, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "outputfilterm11", "handle": 16, "type": "filter", "hook": "output", "prio": -211, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "outputfilterm10", "handle": 17, "type": "filter", "hook": "output", "prio": -210, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "outputfilter", "handle": 18, "type": "filter", "hook": "output", "prio": -200, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "outputfilterp10", "handle": 19, "type": "filter", "hook": "output", "prio": -190, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "outputfilterp11", "handle": 20, "type": "filter", "hook": "output", "prio": -189, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "postroutingfilterm11", "handle": 21, "type": "filter", "hook": "postrouting", "prio": -211, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "postroutingfilterm10", "handle": 22, "type": "filter", "hook": "postrouting", "prio": -210, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "postroutingfilter", "handle": 23, "type": "filter", "hook": "postrouting", "prio": -200, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "postroutingfilterp10", "handle": 24, "type": "filter", "hook": "postrouting", "prio": -190, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "postroutingfilterp11", "handle": 25, "type": "filter", "hook": "postrouting", "prio": -189, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "preroutingdstnatm11", "handle": 26, "type": "filter", "hook": "prerouting", "prio": -311, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "preroutingdstnatm10", "handle": 27, "type": "filter", "hook": "prerouting", "prio": -310, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "preroutingdstnat", "handle": 28, "type": "filter", "hook": "prerouting", "prio": -300, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "preroutingdstnatp10", "handle": 29, "type": "filter", "hook": "prerouting", "prio": -290, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "preroutingdstnatp11", "handle": 30, "type": "filter", "hook": "prerouting", "prio": -289, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "outputoutm11", "handle": 31, "type": "filter", "hook": "output", "prio": 89, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "outputoutm10", "handle": 32, "type": "filter", "hook": "output", "prio": 90, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "outputout", "handle": 33, "type": "filter", "hook": "output", "prio": 100, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "outputoutp10", "handle": 34, "type": "filter", "hook": "output", "prio": 110, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "outputoutp11", "handle": 35, "type": "filter", "hook": "output", "prio": 111, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "postroutingsrcnatm11", "handle": 36, "type": "filter", "hook": "postrouting", "prio": 289, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "postroutingsrcnatm10", "handle": 37, "type": "filter", "hook": "postrouting", "prio": 290, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "postroutingsrcnat", "handle": 38, "type": "filter", "hook": "postrouting", "prio": 300, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "postroutingsrcnatp10", "handle": 39, "type": "filter", "hook": "postrouting", "prio": 310, "policy": "accept"}}, {"chain": {"family": "bridge", "table": "x", "name": "postroutingsrcnatp11", "handle": 40, "type": "filter", "hook": "postrouting", "prio": 311, "policy": "accept"}}]}
diff --git a/tests/shell/testcases/chains/dumps/0022prio_dummy_1.json-nft b/tests/shell/testcases/chains/dumps/0022prio_dummy_1.json-nft
new file mode 100644
index 00000000..170a5783
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0022prio_dummy_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "x", "handle": 1}}]}
diff --git a/tests/shell/testcases/chains/dumps/0023prio_inet_srcnat_1.json-nft b/tests/shell/testcases/chains/dumps/0023prio_inet_srcnat_1.json-nft
new file mode 100644
index 00000000..0f9bc889
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0023prio_inet_srcnat_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "x", "handle": 1}}, {"table": {"family": "ip6", "name": "x", "handle": 2}}, {"table": {"family": "inet", "name": "x", "handle": 3}}]}
diff --git a/tests/shell/testcases/chains/dumps/0024prio_inet_dstnat_1.json-nft b/tests/shell/testcases/chains/dumps/0024prio_inet_dstnat_1.json-nft
new file mode 100644
index 00000000..0f9bc889
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0024prio_inet_dstnat_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "x", "handle": 1}}, {"table": {"family": "ip6", "name": "x", "handle": 2}}, {"table": {"family": "inet", "name": "x", "handle": 3}}]}
diff --git a/tests/shell/testcases/chains/dumps/0025prio_arp_1.json-nft b/tests/shell/testcases/chains/dumps/0025prio_arp_1.json-nft
new file mode 100644
index 00000000..806b4878
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0025prio_arp_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "arp", "name": "x", "handle": 1}}]}
diff --git a/tests/shell/testcases/chains/dumps/0026prio_netdev_1.json-nft b/tests/shell/testcases/chains/dumps/0026prio_netdev_1.json-nft
new file mode 100644
index 00000000..6ca4f37b
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0026prio_netdev_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "netdev", "name": "x", "handle": 1}}]}
diff --git a/tests/shell/testcases/chains/dumps/0027prio_bridge_dstnat_1.json-nft b/tests/shell/testcases/chains/dumps/0027prio_bridge_dstnat_1.json-nft
new file mode 100644
index 00000000..6a2a1ccd
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0027prio_bridge_dstnat_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "bridge", "name": "x", "handle": 1}}]}
diff --git a/tests/shell/testcases/chains/dumps/0028prio_bridge_out_1.json-nft b/tests/shell/testcases/chains/dumps/0028prio_bridge_out_1.json-nft
new file mode 100644
index 00000000..6a2a1ccd
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0028prio_bridge_out_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "bridge", "name": "x", "handle": 1}}]}
diff --git a/tests/shell/testcases/chains/dumps/0029prio_bridge_srcnat_1.json-nft b/tests/shell/testcases/chains/dumps/0029prio_bridge_srcnat_1.json-nft
new file mode 100644
index 00000000..6a2a1ccd
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0029prio_bridge_srcnat_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "bridge", "name": "x", "handle": 1}}]}
diff --git a/tests/shell/testcases/chains/dumps/0030create_0.json-nft b/tests/shell/testcases/chains/dumps/0030create_0.json-nft
new file mode 100644
index 00000000..ee19cb85
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0030create_0.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "x", "handle": 1}}, {"chain": {"family": "ip", "table": "x", "name": "y", "handle": 1}}]}
diff --git a/tests/shell/testcases/chains/dumps/0031priority_variable_0.json-nft b/tests/shell/testcases/chains/dumps/0031priority_variable_0.json-nft
new file mode 100644
index 00000000..232720b0
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0031priority_variable_0.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "inet", "name": "global", "handle": 1}}, {"chain": {"family": "inet", "table": "global", "name": "prerouting", "handle": 1, "type": "filter", "hook": "prerouting", "prio": 0, "policy": "accept"}}]}
diff --git a/tests/shell/testcases/chains/dumps/0032priority_variable_0.json-nft b/tests/shell/testcases/chains/dumps/0032priority_variable_0.json-nft
new file mode 100644
index 00000000..f2e019e6
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0032priority_variable_0.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "inet", "name": "global", "handle": 1}}, {"chain": {"family": "inet", "table": "global", "name": "prerouting", "handle": 1, "type": "filter", "hook": "prerouting", "prio": 10, "policy": "accept"}}, {"chain": {"family": "inet", "table": "global", "name": "forward", "handle": 2, "type": "filter", "hook": "prerouting", "prio": -100, "policy": "accept"}}, {"chain": {"family": "inet", "table": "global", "name": "postrouting", "handle": 3, "type": "filter", "hook": "postrouting", "prio": -10, "policy": "accept"}}]}
diff --git a/tests/shell/testcases/chains/dumps/0033priority_variable_1.json-nft b/tests/shell/testcases/chains/dumps/0033priority_variable_1.json-nft
new file mode 100644
index 00000000..0048e6b1
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0033priority_variable_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}]}
diff --git a/tests/shell/testcases/chains/dumps/0034priority_variable_1.json-nft b/tests/shell/testcases/chains/dumps/0034priority_variable_1.json-nft
new file mode 100644
index 00000000..0048e6b1
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0034priority_variable_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}]}
diff --git a/tests/shell/testcases/chains/dumps/0035policy_variable_0.json-nft b/tests/shell/testcases/chains/dumps/0035policy_variable_0.json-nft
new file mode 100644
index 00000000..232720b0
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0035policy_variable_0.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "inet", "name": "global", "handle": 1}}, {"chain": {"family": "inet", "table": "global", "name": "prerouting", "handle": 1, "type": "filter", "hook": "prerouting", "prio": 0, "policy": "accept"}}]}
diff --git a/tests/shell/testcases/chains/dumps/0036policy_variable_0.json-nft b/tests/shell/testcases/chains/dumps/0036policy_variable_0.json-nft
new file mode 100644
index 00000000..2406b264
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0036policy_variable_0.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "inet", "name": "global", "handle": 1}}, {"chain": {"family": "inet", "table": "global", "name": "prerouting", "handle": 1, "type": "filter", "hook": "prerouting", "prio": 0, "policy": "drop"}}]}
diff --git a/tests/shell/testcases/chains/dumps/0037policy_variable_1.json-nft b/tests/shell/testcases/chains/dumps/0037policy_variable_1.json-nft
new file mode 100644
index 00000000..0048e6b1
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0037policy_variable_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}]}
diff --git a/tests/shell/testcases/chains/dumps/0038policy_variable_1.json-nft b/tests/shell/testcases/chains/dumps/0038policy_variable_1.json-nft
new file mode 100644
index 00000000..0048e6b1
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0038policy_variable_1.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}]}
diff --git a/tests/shell/testcases/chains/dumps/0039negative_priority_0.json-nft b/tests/shell/testcases/chains/dumps/0039negative_priority_0.json-nft
new file mode 100644
index 00000000..124f7205
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0039negative_priority_0.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "t", "handle": 1}}, {"chain": {"family": "ip", "table": "t", "name": "c", "handle": 1, "type": "filter", "hook": "input", "prio": -30, "policy": "accept"}}]}
diff --git a/tests/shell/testcases/chains/dumps/0042chain_variable_0.json-nft b/tests/shell/testcases/chains/dumps/0042chain_variable_0.json-nft
new file mode 100644
index 00000000..d6b73fdc
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0042chain_variable_0.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "netdev", "name": "filter1", "handle": 1}}, {"chain": {"family": "netdev", "table": "filter1", "name": "Main_Ingress1", "handle": 1, "type": "filter", "hook": "ingress", "prio": -500, "policy": "accept"}}, {"table": {"family": "netdev", "name": "filter2", "handle": 2}}, {"chain": {"family": "netdev", "table": "filter2", "name": "Main_Ingress2", "handle": 1, "type": "filter", "hook": "ingress", "prio": -500, "policy": "accept"}}, {"table": {"family": "netdev", "name": "filter3", "handle": 3}}, {"chain": {"family": "netdev", "table": "filter3", "name": "Main_Ingress3", "handle": 1, "type": "filter", "hook": "ingress", "prio": -500, "policy": "accept"}}, {"chain": {"family": "netdev", "table": "filter3", "name": "Main_Egress3", "handle": 2, "type": "filter", "hook": "egress", "prio": -500, "policy": "accept"}}]}
diff --git a/tests/shell/testcases/chains/dumps/0043chain_ingress_0.json-nft b/tests/shell/testcases/chains/dumps/0043chain_ingress_0.json-nft
new file mode 100644
index 00000000..64143d60
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0043chain_ingress_0.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "inet", "name": "filter", "handle": 1}}, {"chain": {"family": "inet", "table": "filter", "name": "ingress", "handle": 1, "type": "filter", "hook": "ingress", "prio": 0, "policy": "accept"}}, {"chain": {"family": "inet", "table": "filter", "name": "input", "handle": 2, "type": "filter", "hook": "input", "prio": 0, "policy": "accept"}}, {"chain": {"family": "inet", "table": "filter", "name": "forward", "handle": 3, "type": "filter", "hook": "forward", "prio": 0, "policy": "accept"}}]}
diff --git a/tests/shell/testcases/chains/dumps/0044chain_destroy_0.json-nft b/tests/shell/testcases/chains/dumps/0044chain_destroy_0.json-nft
new file mode 100644
index 00000000..e34102c3
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/0044chain_destroy_0.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "t", "handle": 1}}]}
diff --git a/tests/shell/testcases/chains/dumps/netdev_chain_0.json-nft b/tests/shell/testcases/chains/dumps/netdev_chain_0.json-nft
new file mode 100644
index 00000000..6ca4f37b
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/netdev_chain_0.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "netdev", "name": "x", "handle": 1}}]}
diff --git a/tests/shell/testcases/chains/dumps/netdev_chain_autoremove.json-nft b/tests/shell/testcases/chains/dumps/netdev_chain_autoremove.json-nft
new file mode 100644
index 00000000..0048e6b1
--- /dev/null
+++ b/tests/shell/testcases/chains/dumps/netdev_chain_autoremove.json-nft
@@ -0,0 +1 @@
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}]}