From: Xiao Liang Date: Tue, 25 Feb 2025 10:02:17 +0000 (+0800) Subject: fib: Change data type of fib oifname to "ifname" X-Git-Tag: v1.1.2~79 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=316d99246644268e5e0453afa3ade163fda21d7f;p=thirdparty%2Fnftables.git 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 --- diff --git a/doc/primary-expression.txt b/doc/primary-expression.txt index c6a33bbe..40aca3d3 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 e95271c9..5a7c1170 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 2dbcd22b..ea581406 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 55cd4f26..6f9832a9 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 }