existing_set = set_cache_find(table, set->handle.set.name);
if (!existing_set)
set_cache_add(set_get(set), table);
- else if (!datatype_equal(existing_set->key->dtype, set->key->dtype))
- return set_error(ctx, set, "%s definition has conflicting key (%s vs %s)\n",
- type, set->key->dtype->name, existing_set->key->dtype->name);
if (existing_set && existing_set->flags & NFT_SET_EVAL) {
uint32_t existing_flags = existing_set->flags & ~NFT_SET_EVAL;
+++ /dev/null
-table inet t {
- set s3 {
- type inet_proto
- flags interval
- elements = { 100-11.0.0.0, }
- }
- set s3 {
- type ipv4_addr
- flags interval
- elements = { 100-11.0.0.0, }
- }
-}
--- /dev/null
+#!/bin/bash
+
+# NFT_TEST_REQUIRES(NFT_TEST_HAVE_pipapo)
+
+$NFT -f /dev/stdin <<EOF
+table t {
+ set s {
+ type ipv4_addr . ifname
+ flags interval
+ elements = { 1.2.3.4 . "foo" }
+ }
+
+ set s {
+ type ipv4_addr . ifname
+ flags interval
+ elements = { 1.2.3.4 . "foo" }
+
+ }
+}
+EOF
+
+# run-tests.sh will validate dumpfile.
--- /dev/null
+{"nftables": [{"metainfo": {"version": "VERSION", "release_name": "RELEASE_NAME", "json_schema_version": 1}}, {"table": {"family": "ip", "name": "t", "handle": 0}}, {"set": {"family": "ip", "name": "s", "table": "t", "type": ["ipv4_addr", "ifname"], "handle": 0, "flags": ["interval"], "elem": [{"concat": ["1.2.3.4", "foo"]}]}}]}
--- /dev/null
+table ip t {
+ set s {
+ type ipv4_addr . ifname
+ flags interval
+ elements = { 1.2.3.4 . "foo" }
+ }
+}