summaryrefslogtreecommitdiffstats
path: root/tests/expr/meta
diff options
context:
space:
mode:
Diffstat (limited to 'tests/expr/meta')
-rw-r--r--tests/expr/meta/00-len_ok.t6
-rw-r--r--tests/expr/meta/01-protocol_ok.t6
-rw-r--r--tests/expr/meta/02-priority_ok.t6
-rw-r--r--tests/expr/meta/03-mark_ok.t6
-rw-r--r--tests/expr/meta/04-iif_ok.t6
-rw-r--r--tests/expr/meta/05-oif-bad-cmp_err.t6
-rw-r--r--tests/expr/meta/05-oif_ok.t6
-rw-r--r--tests/expr/meta/06-iifname-bad_reg_err.t6
-rw-r--r--tests/expr/meta/06-iifname_ok.t6
-rw-r--r--tests/expr/meta/07-oifname_ok.t6
-rw-r--r--tests/expr/meta/08-iftype_ok.t6
-rw-r--r--tests/expr/meta/09-oiftype_ok.t6
-rw-r--r--tests/expr/meta/10-cgroup_ok.t6
-rw-r--r--tests/expr/meta/10-skuid_ok.t6
-rw-r--r--tests/expr/meta/11-skgid_ok.t6
-rw-r--r--tests/expr/meta/12-nftrace_err.t5
-rw-r--r--tests/expr/meta/13-rtclassid_ok.t6
-rw-r--r--tests/expr/meta/14-secmark_ok.t6
-rw-r--r--tests/expr/meta/15-nfproto_ok.t6
-rw-r--r--tests/expr/meta/16-l4proto_ok.t6
-rw-r--r--tests/expr/meta/17-bri-iifname-bad-family_err.t6
-rw-r--r--tests/expr/meta/17-bri-iifname_ok.t6
-rw-r--r--tests/expr/meta/18-bri-oifname-bad-family_err.t6
-rw-r--r--tests/expr/meta/18-bri-oifname-bad-reg_err.t6
-rw-r--r--tests/expr/meta/18-bri-oifname_ok.t6
-rw-r--r--tests/expr/meta/19-pkt-type_ok.t6
-rw-r--r--tests/expr/meta/20-cpu_ok.t6
-rw-r--r--tests/expr/meta/21-iifgroup_ok.t6
-rw-r--r--tests/expr/meta/22-oifgroup_ok.t6
-rw-r--r--tests/expr/meta/23-cgroup_ok.t6
-rw-r--r--tests/expr/meta/24-prandom_ok.t6
-rw-r--r--tests/expr/meta/28-bri-iifpvid_ok.t6
-rw-r--r--tests/expr/meta/29-bri-iifvproto_ok.t6
-rw-r--r--tests/expr/meta/30-time-ns-bad-reg_err.t6
-rw-r--r--tests/expr/meta/30-time-ns_ok.t6
-rw-r--r--tests/expr/meta/31-time-day_ok.t6
-rw-r--r--tests/expr/meta/32-time-hour_ok.t6
-rw-r--r--tests/expr/meta/33-sd-if_ok.t6
-rw-r--r--tests/expr/meta/34-sd-ifname_ok.t6
-rw-r--r--tests/expr/meta/35-bri-broute_err.t6
-rw-r--r--tests/expr/meta/36-unsupp-key_err.t6
-rw-r--r--tests/expr/meta/no-key_err.t6
-rw-r--r--tests/expr/meta/set-02-priority_ok.t6
-rw-r--r--tests/expr/meta/set-03-mark_ok.t6
-rw-r--r--tests/expr/meta/set-12-nftrace_ok.t6
-rw-r--r--tests/expr/meta/set-14-secmark_ok.t6
-rw-r--r--tests/expr/meta/set-19-pkttype_ok.t6
-rw-r--r--tests/expr/meta/set-36-unsupp-key_err.t6
-rw-r--r--tests/expr/meta/sreg-dreg_err.t6
49 files changed, 293 insertions, 0 deletions
diff --git a/tests/expr/meta/00-len_ok.t b/tests/expr/meta/00-len_ok.t
new file mode 100644
index 0000000..4b5676e
--- /dev/null
+++ b/tests/expr/meta/00-len_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "0");
+cmp("NFT_REG32_15", "0", "ffffffff");
+commit();
diff --git a/tests/expr/meta/01-protocol_ok.t b/tests/expr/meta/01-protocol_ok.t
new file mode 100644
index 0000000..e077814
--- /dev/null
+++ b/tests/expr/meta/01-protocol_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "1");
+cmp("NFT_REG32_15", "0", "ffff");
+commit();
diff --git a/tests/expr/meta/02-priority_ok.t b/tests/expr/meta/02-priority_ok.t
new file mode 100644
index 0000000..2e7b666
--- /dev/null
+++ b/tests/expr/meta/02-priority_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "2");
+cmp("NFT_REG32_15", "0", "ffffffff");
+commit();
diff --git a/tests/expr/meta/03-mark_ok.t b/tests/expr/meta/03-mark_ok.t
new file mode 100644
index 0000000..944b83e
--- /dev/null
+++ b/tests/expr/meta/03-mark_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "3");
+cmp("NFT_REG32_15", "0", "ffffffff");
+commit();
diff --git a/tests/expr/meta/04-iif_ok.t b/tests/expr/meta/04-iif_ok.t
new file mode 100644
index 0000000..49cc144
--- /dev/null
+++ b/tests/expr/meta/04-iif_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "4");
+cmp("NFT_REG32_15", "0", "ffffffff");
+commit();
diff --git a/tests/expr/meta/05-oif-bad-cmp_err.t b/tests/expr/meta/05-oif-bad-cmp_err.t
new file mode 100644
index 0000000..940de35
--- /dev/null
+++ b/tests/expr/meta/05-oif-bad-cmp_err.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", NULL, NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "5");
+cmp("NFT_REG32_15", "0", "ffffffffffffffff");
+commit();
diff --git a/tests/expr/meta/05-oif_ok.t b/tests/expr/meta/05-oif_ok.t
new file mode 100644
index 0000000..87270dd
--- /dev/null
+++ b/tests/expr/meta/05-oif_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "5");
+cmp("NFT_REG32_15", "0", "ffffffff");
+commit();
diff --git a/tests/expr/meta/06-iifname-bad_reg_err.t b/tests/expr/meta/06-iifname-bad_reg_err.t
new file mode 100644
index 0000000..4b2626e
--- /dev/null
+++ b/tests/expr/meta/06-iifname-bad_reg_err.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", NULL, NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_13", "7");
+cmp("NFT_REG32_15", "0", "ffffffffffffffffffffffff");
+commit();
diff --git a/tests/expr/meta/06-iifname_ok.t b/tests/expr/meta/06-iifname_ok.t
new file mode 100644
index 0000000..bd896d1
--- /dev/null
+++ b/tests/expr/meta/06-iifname_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_00", "7");
+cmp("NFT_REG32_00", "0", "ffffffffffffffffffffffffffffffff");
+commit();
diff --git a/tests/expr/meta/07-oifname_ok.t b/tests/expr/meta/07-oifname_ok.t
new file mode 100644
index 0000000..2ed715b
--- /dev/null
+++ b/tests/expr/meta/07-oifname_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_00", "6");
+cmp("NFT_REG32_00", "0", "ffffffffffffffffffffffffffffffff");
+commit();
diff --git a/tests/expr/meta/08-iftype_ok.t b/tests/expr/meta/08-iftype_ok.t
new file mode 100644
index 0000000..40129b7
--- /dev/null
+++ b/tests/expr/meta/08-iftype_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "8");
+cmp("NFT_REG32_15", "0", "ffffffff");
+commit();
diff --git a/tests/expr/meta/09-oiftype_ok.t b/tests/expr/meta/09-oiftype_ok.t
new file mode 100644
index 0000000..d804978
--- /dev/null
+++ b/tests/expr/meta/09-oiftype_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "9");
+cmp("NFT_REG32_15", "0", "ffffffff");
+commit();
diff --git a/tests/expr/meta/10-cgroup_ok.t b/tests/expr/meta/10-cgroup_ok.t
new file mode 100644
index 0000000..2f32a5b
--- /dev/null
+++ b/tests/expr/meta/10-cgroup_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_14", "23");
+cmp("NFT_REG32_14", "0", "01020304");
+commit();
diff --git a/tests/expr/meta/10-skuid_ok.t b/tests/expr/meta/10-skuid_ok.t
new file mode 100644
index 0000000..a80fc29
--- /dev/null
+++ b/tests/expr/meta/10-skuid_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "10");
+cmp("NFT_REG32_15", "0", "ffffffff");
+commit();
diff --git a/tests/expr/meta/11-skgid_ok.t b/tests/expr/meta/11-skgid_ok.t
new file mode 100644
index 0000000..5b4f2c2
--- /dev/null
+++ b/tests/expr/meta/11-skgid_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "11");
+cmp("NFT_REG32_15", "0", "ffffffff");
+commit();
diff --git a/tests/expr/meta/12-nftrace_err.t b/tests/expr/meta/12-nftrace_err.t
new file mode 100644
index 0000000..6cbfb58
--- /dev/null
+++ b/tests/expr/meta/12-nftrace_err.t
@@ -0,0 +1,5 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "12");
+commit();
diff --git a/tests/expr/meta/13-rtclassid_ok.t b/tests/expr/meta/13-rtclassid_ok.t
new file mode 100644
index 0000000..34e5dc0
--- /dev/null
+++ b/tests/expr/meta/13-rtclassid_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "13");
+cmp("NFT_REG32_15", "0", "ffffffff");
+commit();
diff --git a/tests/expr/meta/14-secmark_ok.t b/tests/expr/meta/14-secmark_ok.t
new file mode 100644
index 0000000..48bacff
--- /dev/null
+++ b/tests/expr/meta/14-secmark_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "14");
+cmp("NFT_REG32_15", "0", "ffffffff");
+commit();
diff --git a/tests/expr/meta/15-nfproto_ok.t b/tests/expr/meta/15-nfproto_ok.t
new file mode 100644
index 0000000..ee3491e
--- /dev/null
+++ b/tests/expr/meta/15-nfproto_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "15");
+cmp("NFT_REG32_15", "0", "ff000000");
+commit();
diff --git a/tests/expr/meta/16-l4proto_ok.t b/tests/expr/meta/16-l4proto_ok.t
new file mode 100644
index 0000000..061a44c
--- /dev/null
+++ b/tests/expr/meta/16-l4proto_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "16");
+cmp("NFT_REG32_15", "0", "ff000000");
+commit();
diff --git a/tests/expr/meta/17-bri-iifname-bad-family_err.t b/tests/expr/meta/17-bri-iifname-bad-family_err.t
new file mode 100644
index 0000000..894fbc4
--- /dev/null
+++ b/tests/expr/meta/17-bri-iifname-bad-family_err.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_00", "17");
+cmp("NFT_REG32_00", "0", "ffffffffffffffffffffffffffffffff");
+commit();
diff --git a/tests/expr/meta/17-bri-iifname_ok.t b/tests/expr/meta/17-bri-iifname_ok.t
new file mode 100644
index 0000000..ef2fa9c
--- /dev/null
+++ b/tests/expr/meta/17-bri-iifname_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_BRIDGE, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_00", "17");
+cmp("NFT_REG32_00", "0", "ffffffffffffffffffffffffffffffff");
+commit();
diff --git a/tests/expr/meta/18-bri-oifname-bad-family_err.t b/tests/expr/meta/18-bri-oifname-bad-family_err.t
new file mode 100644
index 0000000..f798d5c
--- /dev/null
+++ b/tests/expr/meta/18-bri-oifname-bad-family_err.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_00", "18");
+cmp("NFT_REG32_00", "0", "ffffffffffffffffffffffffffffffff");
+commit();
diff --git a/tests/expr/meta/18-bri-oifname-bad-reg_err.t b/tests/expr/meta/18-bri-oifname-bad-reg_err.t
new file mode 100644
index 0000000..822581b
--- /dev/null
+++ b/tests/expr/meta/18-bri-oifname-bad-reg_err.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_BRIDGE, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_13", "18");
+cmp("NFT_REG32_12", "0", "ffffffffffffffffffffffffffffffff");
+commit();
diff --git a/tests/expr/meta/18-bri-oifname_ok.t b/tests/expr/meta/18-bri-oifname_ok.t
new file mode 100644
index 0000000..e0f3c7b
--- /dev/null
+++ b/tests/expr/meta/18-bri-oifname_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_BRIDGE, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_00", "18");
+cmp("NFT_REG32_00", "0", "ffffffffffffffffffffffffffffffff");
+commit();
diff --git a/tests/expr/meta/19-pkt-type_ok.t b/tests/expr/meta/19-pkt-type_ok.t
new file mode 100644
index 0000000..ee13162
--- /dev/null
+++ b/tests/expr/meta/19-pkt-type_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_INET, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "19");
+cmp("NFT_REG32_15", "0", "01020304");
+commit();
diff --git a/tests/expr/meta/20-cpu_ok.t b/tests/expr/meta/20-cpu_ok.t
new file mode 100644
index 0000000..3b22e72
--- /dev/null
+++ b/tests/expr/meta/20-cpu_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_INET, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "20");
+cmp("NFT_REG32_15", "0", "01020304");
+commit();
diff --git a/tests/expr/meta/21-iifgroup_ok.t b/tests/expr/meta/21-iifgroup_ok.t
new file mode 100644
index 0000000..4b380c2
--- /dev/null
+++ b/tests/expr/meta/21-iifgroup_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_INET, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "21");
+cmp("NFT_REG32_15", "0", "01020304");
+commit();
diff --git a/tests/expr/meta/22-oifgroup_ok.t b/tests/expr/meta/22-oifgroup_ok.t
new file mode 100644
index 0000000..c5de784
--- /dev/null
+++ b/tests/expr/meta/22-oifgroup_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_INET, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "22");
+cmp("NFT_REG32_15", "0", "01020304");
+commit();
diff --git a/tests/expr/meta/23-cgroup_ok.t b/tests/expr/meta/23-cgroup_ok.t
new file mode 100644
index 0000000..18f671e
--- /dev/null
+++ b/tests/expr/meta/23-cgroup_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "23");
+cmp("NFT_REG32_15", "0", "ffffffff");
+commit();
diff --git a/tests/expr/meta/24-prandom_ok.t b/tests/expr/meta/24-prandom_ok.t
new file mode 100644
index 0000000..5b4f2c2
--- /dev/null
+++ b/tests/expr/meta/24-prandom_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "11");
+cmp("NFT_REG32_15", "0", "ffffffff");
+commit();
diff --git a/tests/expr/meta/28-bri-iifpvid_ok.t b/tests/expr/meta/28-bri-iifpvid_ok.t
new file mode 100644
index 0000000..018d556
--- /dev/null
+++ b/tests/expr/meta/28-bri-iifpvid_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_BRIDGE, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "28");
+cmp("NFT_REG32_15", "0", "0102");
+commit();
diff --git a/tests/expr/meta/29-bri-iifvproto_ok.t b/tests/expr/meta/29-bri-iifvproto_ok.t
new file mode 100644
index 0000000..2052d87
--- /dev/null
+++ b/tests/expr/meta/29-bri-iifvproto_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_BRIDGE, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "29");
+cmp("NFT_REG32_15", "0", "0102");
+commit();
diff --git a/tests/expr/meta/30-time-ns-bad-reg_err.t b/tests/expr/meta/30-time-ns-bad-reg_err.t
new file mode 100644
index 0000000..150265e
--- /dev/null
+++ b/tests/expr/meta/30-time-ns-bad-reg_err.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "30");
+cmp("NFT_REG32_15", "0", "ffffffff");
+commit();
diff --git a/tests/expr/meta/30-time-ns_ok.t b/tests/expr/meta/30-time-ns_ok.t
new file mode 100644
index 0000000..46b3ba7
--- /dev/null
+++ b/tests/expr/meta/30-time-ns_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_14", "30");
+cmp("NFT_REG32_14", "0", "ffffffffffffffff");
+commit();
diff --git a/tests/expr/meta/31-time-day_ok.t b/tests/expr/meta/31-time-day_ok.t
new file mode 100644
index 0000000..26b7e17
--- /dev/null
+++ b/tests/expr/meta/31-time-day_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "31");
+cmp("NFT_REG32_15", "0", "ffffffff");
+commit();
diff --git a/tests/expr/meta/32-time-hour_ok.t b/tests/expr/meta/32-time-hour_ok.t
new file mode 100644
index 0000000..16280d0
--- /dev/null
+++ b/tests/expr/meta/32-time-hour_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "32");
+cmp("NFT_REG32_15", "0", "ffffffff");
+commit();
diff --git a/tests/expr/meta/33-sd-if_ok.t b/tests/expr/meta/33-sd-if_ok.t
new file mode 100644
index 0000000..f945bd7
--- /dev/null
+++ b/tests/expr/meta/33-sd-if_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "33");
+cmp("NFT_REG32_15", "0", "01020304");
+commit();
diff --git a/tests/expr/meta/34-sd-ifname_ok.t b/tests/expr/meta/34-sd-ifname_ok.t
new file mode 100644
index 0000000..30d57c4
--- /dev/null
+++ b/tests/expr/meta/34-sd-ifname_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_12", "34");
+cmp("NFT_REG32_12", "0", "01020304010203040102030401020304");
+commit();
diff --git a/tests/expr/meta/35-bri-broute_err.t b/tests/expr/meta/35-bri-broute_err.t
new file mode 100644
index 0000000..46ae1ab
--- /dev/null
+++ b/tests/expr/meta/35-bri-broute_err.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_BRIDGE, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "35");
+cmp("NFT_REG32_15", "0", "01020304");
+commit();
diff --git a/tests/expr/meta/36-unsupp-key_err.t b/tests/expr/meta/36-unsupp-key_err.t
new file mode 100644
index 0000000..dce3630
--- /dev/null
+++ b/tests/expr/meta/36-unsupp-key_err.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", "36");
+cmp("NFT_REG32_15", "0", "ffffffff");
+commit();
diff --git a/tests/expr/meta/no-key_err.t b/tests/expr/meta/no-key_err.t
new file mode 100644
index 0000000..f3df709
--- /dev/null
+++ b/tests/expr/meta/no-key_err.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+meta(NULL, "NFT_REG32_15", NULL);
+cmp("NFT_REG32_15", "0", "ffffffff");
+commit();
diff --git a/tests/expr/meta/set-02-priority_ok.t b/tests/expr/meta/set-02-priority_ok.t
new file mode 100644
index 0000000..03a6065
--- /dev/null
+++ b/tests/expr/meta/set-02-priority_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+immediate("NFT_REG32_15", NULL, NULL, NULL, "00000001");
+meta("NFT_REG32_15", NULL, "2");
+commit();
diff --git a/tests/expr/meta/set-03-mark_ok.t b/tests/expr/meta/set-03-mark_ok.t
new file mode 100644
index 0000000..13cde43
--- /dev/null
+++ b/tests/expr/meta/set-03-mark_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+immediate("NFT_REG32_15", NULL, NULL, NULL, "00000001");
+meta("NFT_REG32_15", NULL, "3");
+commit();
diff --git a/tests/expr/meta/set-12-nftrace_ok.t b/tests/expr/meta/set-12-nftrace_ok.t
new file mode 100644
index 0000000..5282acf
--- /dev/null
+++ b/tests/expr/meta/set-12-nftrace_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+immediate("NFT_REG32_15", NULL, NULL, NULL, "00000001");
+meta("NFT_REG32_15", NULL, "12");
+commit();
diff --git a/tests/expr/meta/set-14-secmark_ok.t b/tests/expr/meta/set-14-secmark_ok.t
new file mode 100644
index 0000000..1c03eff
--- /dev/null
+++ b/tests/expr/meta/set-14-secmark_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+immediate("NFT_REG32_15", NULL, NULL, NULL, "00000001");
+meta("NFT_REG32_15", NULL, "14");
+commit();
diff --git a/tests/expr/meta/set-19-pkttype_ok.t b/tests/expr/meta/set-19-pkttype_ok.t
new file mode 100644
index 0000000..a32a708
--- /dev/null
+++ b/tests/expr/meta/set-19-pkttype_ok.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+immediate("NFT_REG32_15", NULL, NULL, NULL, "00000001");
+meta("NFT_REG32_15", NULL, "19");
+commit();
diff --git a/tests/expr/meta/set-36-unsupp-key_err.t b/tests/expr/meta/set-36-unsupp-key_err.t
new file mode 100644
index 0000000..7aab70f
--- /dev/null
+++ b/tests/expr/meta/set-36-unsupp-key_err.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+immediate("NFT_REG32_15", NULL, NULL, NULL, "00000001");
+meta("NFT_REG32_15", NULL, "36");
+commit();
diff --git a/tests/expr/meta/sreg-dreg_err.t b/tests/expr/meta/sreg-dreg_err.t
new file mode 100644
index 0000000..9bf69b7
--- /dev/null
+++ b/tests/expr/meta/sreg-dreg_err.t
@@ -0,0 +1,6 @@
+add_table(NFPROTO_IPV4, "test", NULL, NULL, NULL);
+add_chain("test", NULL, NULL, NULL, NULL);
+add_rule("test", "0x1", NULL, NULL, NULL);
+immediate("NFT_REG32_15", NULL, NULL, NULL, "00000001");
+meta("NFT_REG32_15", "NFT_REG32_15", "2");
+commit();