From 316d99246644268e5e0453afa3ade163fda21d7f Mon Sep 17 00:00:00 2001 From: Xiao Liang Date: Tue, 25 Feb 2025 18:02:17 +0800 Subject: [PATCH] fib: Change data type of fib oifname to "ifname" Change data type of fib oifname from "string" to "ifname", so that it can be matched against a set of ifnames: set x { type ifname } chain y { fib saddr oifname @x drop } Signed-off-by: Xiao Liang Signed-off-by: Florian Westphal --- doc/primary-expression.txt | 4 ++-- src/fib.c | 2 +- tests/shell/testcases/sets/0029named_ifname_dtype_0 | 1 + tests/shell/testcases/sets/dumps/0029named_ifname_dtype_0.nft | 1 + 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/primary-expression.txt b/doc/primary-expression.txt index c6a33bbe4..40aca3d3f 100644 --- a/doc/primary-expression.txt +++ b/doc/primary-expression.txt @@ -354,10 +354,10 @@ address types can be shown with *nft* *describe* *fib_addrtype*. |Keyword| Description| Result Type |oif| Output interface index| -integer (32 bit) +iface_index |oifname| Output interface name| -string +ifname |type| Address type | fib_addrtype (see *nft* *describe* *fib_addrtype* for a list) diff --git a/src/fib.c b/src/fib.c index e95271c9d..5a7c1170b 100644 --- a/src/fib.c +++ b/src/fib.c @@ -179,7 +179,7 @@ struct expr *fib_expr_alloc(const struct location *loc, type = &ifindex_type; break; case NFT_FIB_RESULT_OIFNAME: - type = &string_type; + type = &ifname_type; len = IFNAMSIZ * BITS_PER_BYTE; break; case NFT_FIB_RESULT_ADDRTYPE: diff --git a/tests/shell/testcases/sets/0029named_ifname_dtype_0 b/tests/shell/testcases/sets/0029named_ifname_dtype_0 index 2dbcd22bb..ea5814069 100755 --- a/tests/shell/testcases/sets/0029named_ifname_dtype_0 +++ b/tests/shell/testcases/sets/0029named_ifname_dtype_0 @@ -40,6 +40,7 @@ EXPECTED="table inet t { chain c { iifname @s accept oifname @s accept + fib saddr oifname @s accept tcp dport . meta iifname @sc accept meta iifname . meta mark @nv accept } diff --git a/tests/shell/testcases/sets/dumps/0029named_ifname_dtype_0.nft b/tests/shell/testcases/sets/dumps/0029named_ifname_dtype_0.nft index 55cd4f262..6f9832a96 100644 --- a/tests/shell/testcases/sets/dumps/0029named_ifname_dtype_0.nft +++ b/tests/shell/testcases/sets/dumps/0029named_ifname_dtype_0.nft @@ -51,6 +51,7 @@ table inet t { chain c { iifname @s accept oifname @s accept + fib saddr oifname @s accept tcp dport . iifname @sc accept iifname . meta mark @nv accept } -- 2.47.2