--- /dev/null
+#!/bin/bash
+
+set -e
+
+RULESET="flush ruleset
+
+table ip x {
+ map m {
+ typeof ct bytes : meta priority
+ flags interval
+ elements = {
+ 0-2048000 : 1:0001,
+ 2048001-4000000 : 1:0002,
+ }
+ }
+
+ chain y {
+ type filter hook output priority 0; policy accept;
+
+ meta priority set ct bytes map @m
+ }
+}"
+
+$NFT -f - <<< $RULESET
+
+$NFT delete element ip x m { 0-2048000 }
+$NFT add element ip x m { 0-2048000 : 1:0002 }
+$NFT delete element ip x m { 0-2048000 : 1:0002 }
--- /dev/null
+#!/bin/bash
+
+# NFT_TEST_REQUIRES(NFT_TEST_HAVE_catchall_element)
+
+set -e
+
+RULESET="flush ruleset
+
+table ip x {
+ map m {
+ typeof ct bytes : meta priority
+ flags interval
+ elements = {
+ 0-2048000 : 1:0001,
+ * : 1:0002,
+ }
+ }
+
+ chain y {
+ type filter hook output priority 0; policy accept;
+
+ meta priority set ct bytes map @m
+ }
+}"
+
+$NFT -f - <<< $RULESET
+
+$NFT delete element ip x m { 0-2048000 }
+$NFT add element ip x m { 0-2048000 : 1:0002 }
+$NFT delete element ip x m { 0-2048000 : 1:0002 }
+
+$NFT 'delete element ip x m { * }'
+$NFT 'add element ip x m { * : 1:0003 }'
+$NFT 'delete element ip x m { * : 1:0003 }'
+$NFT 'add element ip x m { * : 1:0003 }'
--- /dev/null
+table ip x {
+ map m {
+ typeof ct bytes : meta priority
+ flags interval
+ elements = { * : 1:3 }
+ }
+
+ chain y {
+ type filter hook output priority filter; policy accept;
+ meta priority set ct bytes map @m
+ }
+}
--- /dev/null
+table ip x {
+ map m {
+ typeof ct bytes : meta priority
+ flags interval
+ elements = { 2048001-4000000 : 1:2 }
+ }
+
+ chain y {
+ type filter hook output priority filter; policy accept;
+ meta priority set ct bytes map @m
+ }
+}