]> Gentwo Git Trees - linux/.git/commitdiff
netfilter: flowtable: remove hw_ifidx
authorPablo Neira Ayuso <pablo@netfilter.org>
Fri, 10 Oct 2025 10:50:07 +0000 (12:50 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 28 Nov 2025 00:00:22 +0000 (00:00 +0000)
hw_ifidx was originally introduced to store the real netdevice as a
requirement for the hardware offload support in:

 73f97025a972 ("netfilter: nft_flow_offload: use direct xmit if hardware offload is enabled")

Since ("netfilter: flowtable: consolidate xmit path"), ifidx and
hw_ifidx points to the real device in the xmit path, remove it.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/net/netfilter/nf_flow_table.h
net/netfilter/nf_flow_table_core.c
net/netfilter/nf_flow_table_offload.c
net/netfilter/nf_flow_table_path.c

index 7c330caae52bff2c3950ab075041c5e727a03584..f7306276ece7141210d7928b05f2a56b43b2cd0b 100644 (file)
@@ -146,7 +146,6 @@ struct flow_offload_tuple {
                };
                struct {
                        u32             ifidx;
-                       u32             hw_ifidx;
                        u8              h_source[ETH_ALEN];
                        u8              h_dest[ETH_ALEN];
                } out;
index 98d7b3708602f90633f0e1de2b60459206480971..6c6a5165f9933b130e772c096a01d3fcb1d61c94 100644 (file)
@@ -127,7 +127,6 @@ static int flow_offload_fill_route(struct flow_offload *flow,
                memcpy(flow_tuple->out.h_source, route->tuple[dir].out.h_source,
                       ETH_ALEN);
                flow_tuple->out.ifidx = route->tuple[dir].out.ifindex;
-               flow_tuple->out.hw_ifidx = route->tuple[dir].out.hw_ifindex;
                dst_release(dst);
                break;
        case FLOW_OFFLOAD_XMIT_XFRM:
index e06bc36f49fe74e89c4074eb8b32409bc7035e8c..d8f7bfd60ac66bfc1697ce2e4644112bcf6080ca 100644 (file)
@@ -555,7 +555,7 @@ static void flow_offload_redirect(struct net *net,
        switch (this_tuple->xmit_type) {
        case FLOW_OFFLOAD_XMIT_DIRECT:
                this_tuple = &flow->tuplehash[dir].tuple;
-               ifindex = this_tuple->out.hw_ifidx;
+               ifindex = this_tuple->out.ifidx;
                break;
        case FLOW_OFFLOAD_XMIT_NEIGH:
                other_tuple = &flow->tuplehash[!dir].tuple;
index c51e310bb2ab23172bc60355292c515bd2bda286..eb9b33a1873a0a6b32c0184716615f02a6d1af1c 100644 (file)
@@ -75,7 +75,6 @@ static int nft_dev_fill_forward_path(const struct nf_flow_route *route,
 struct nft_forward_info {
        const struct net_device *indev;
        const struct net_device *outdev;
-       const struct net_device *hw_outdev;
        struct id {
                __u16   id;
                __be16  proto;
@@ -159,7 +158,6 @@ static void nft_dev_path_info(const struct net_device_path_stack *stack,
                }
        }
        info->outdev = info->indev;
-       info->hw_outdev = info->indev;
 
        if (nf_flowtable_hw_offload(flowtable) &&
            nft_is_valid_ether_device(info->indev))
@@ -212,7 +210,6 @@ static void nft_dev_forward_path(struct nf_flow_route *route,
        if (info.xmit_type == FLOW_OFFLOAD_XMIT_DIRECT) {
                memcpy(route->tuple[dir].out.h_source, info.h_source, ETH_ALEN);
                memcpy(route->tuple[dir].out.h_dest, info.h_dest, ETH_ALEN);
-               route->tuple[dir].out.hw_ifindex = info.hw_outdev->ifindex;
                route->tuple[dir].xmit_type = info.xmit_type;
        }
 }