]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
netdevsim: move TC offload code to a dedicated file
authorDavide Caratti <dcaratti@redhat.com>
Thu, 19 Mar 2026 18:40:54 +0000 (19:40 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sat, 21 Mar 2026 03:13:14 +0000 (20:13 -0700)
This commit has no functional change.

Reviewed-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: Davide Caratti <dcaratti@redhat.com>
Link: https://patch.msgid.link/b7881fd53f8a5d8eff4eae8121576c3cd60c2ed7.1773945414.git.dcaratti@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/netdevsim/Makefile
drivers/net/netdevsim/netdev.c
drivers/net/netdevsim/netdevsim.h
drivers/net/netdevsim/tc.c [new file with mode: 0644]

index 14a553e000ec26e07c6f2050b752ecf7ad336b92..87718204fb4de67366134abc20a4a069acc6c802 100644 (file)
@@ -3,7 +3,7 @@
 obj-$(CONFIG_NETDEVSIM) += netdevsim.o
 
 netdevsim-objs := \
-       netdev.o dev.o ethtool.o fib.o bus.o health.o hwstats.o udp_tunnels.o
+       netdev.o dev.o ethtool.o fib.o bus.o health.o hwstats.o udp_tunnels.o tc.o
 
 ifeq ($(CONFIG_BPF_SYSCALL),y)
 netdevsim-objs += \
index 3645ebde049a0245febbd454151745675ef80b23..c71b8d116f18af40cdb2280f5215707e23b967e0 100644 (file)
@@ -202,12 +202,6 @@ static int nsim_change_mtu(struct net_device *dev, int new_mtu)
        return 0;
 }
 
-static int
-nsim_setup_tc_block_cb(enum tc_setup_type type, void *type_data, void *cb_priv)
-{
-       return nsim_bpf_setup_tc_block_cb(type, type_data, cb_priv);
-}
-
 static int nsim_set_vf_mac(struct net_device *dev, int vf, u8 *mac)
 {
        struct netdevsim *ns = netdev_priv(dev);
@@ -338,51 +332,6 @@ static int nsim_set_vf_link_state(struct net_device *dev, int vf, int state)
        return 0;
 }
 
-static void nsim_taprio_stats(struct tc_taprio_qopt_stats *stats)
-{
-       stats->window_drops = 0;
-       stats->tx_overruns = 0;
-}
-
-static int nsim_setup_tc_taprio(struct net_device *dev,
-                               struct tc_taprio_qopt_offload *offload)
-{
-       int err = 0;
-
-       switch (offload->cmd) {
-       case TAPRIO_CMD_REPLACE:
-       case TAPRIO_CMD_DESTROY:
-               break;
-       case TAPRIO_CMD_STATS:
-               nsim_taprio_stats(&offload->stats);
-               break;
-       default:
-               err = -EOPNOTSUPP;
-       }
-
-       return err;
-}
-
-static LIST_HEAD(nsim_block_cb_list);
-
-static int
-nsim_setup_tc(struct net_device *dev, enum tc_setup_type type, void *type_data)
-{
-       struct netdevsim *ns = netdev_priv(dev);
-
-       switch (type) {
-       case TC_SETUP_QDISC_TAPRIO:
-               return nsim_setup_tc_taprio(dev, type_data);
-       case TC_SETUP_BLOCK:
-               return flow_block_cb_setup_simple(type_data,
-                                                 &nsim_block_cb_list,
-                                                 nsim_setup_tc_block_cb,
-                                                 ns, ns, true);
-       default:
-               return -EOPNOTSUPP;
-       }
-}
-
 static int
 nsim_set_features(struct net_device *dev, netdev_features_t features)
 {
index f767fc8a75053984fa2d28f8964dbe31fc8a92b7..c904e14f6b3f934aa3beadf4ec0e15a98c322d60 100644 (file)
@@ -455,6 +455,9 @@ static inline void
 nsim_psp_handle_ext(struct sk_buff *skb, struct skb_ext *psp_ext) {}
 #endif
 
+int nsim_setup_tc(struct net_device *dev, enum tc_setup_type type,
+                 void *type_data);
+
 struct nsim_bus_dev {
        struct device dev;
        struct list_head list;
diff --git a/drivers/net/netdevsim/tc.c b/drivers/net/netdevsim/tc.c
new file mode 100644 (file)
index 0000000..8a1960f
--- /dev/null
@@ -0,0 +1,57 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <linux/netdevice.h>
+#include <net/pkt_sched.h>
+
+#include "netdevsim.h"
+
+static int
+nsim_setup_tc_block_cb(enum tc_setup_type type, void *type_data, void *cb_priv)
+{
+       return nsim_bpf_setup_tc_block_cb(type, type_data, cb_priv);
+}
+
+static void nsim_taprio_stats(struct tc_taprio_qopt_stats *stats)
+{
+       stats->window_drops = 0;
+       stats->tx_overruns = 0;
+}
+
+static int nsim_setup_tc_taprio(struct net_device *dev,
+                               struct tc_taprio_qopt_offload *offload)
+{
+       int err = 0;
+
+       switch (offload->cmd) {
+       case TAPRIO_CMD_REPLACE:
+       case TAPRIO_CMD_DESTROY:
+               break;
+       case TAPRIO_CMD_STATS:
+               nsim_taprio_stats(&offload->stats);
+               break;
+       default:
+               err = -EOPNOTSUPP;
+       }
+
+       return err;
+}
+
+static LIST_HEAD(nsim_block_cb_list);
+
+int
+nsim_setup_tc(struct net_device *dev, enum tc_setup_type type, void *type_data)
+{
+       struct netdevsim *ns = netdev_priv(dev);
+
+       switch (type) {
+       case TC_SETUP_QDISC_TAPRIO:
+               return nsim_setup_tc_taprio(dev, type_data);
+       case TC_SETUP_BLOCK:
+               return flow_block_cb_setup_simple(type_data,
+                                                 &nsim_block_cb_list,
+                                                 nsim_setup_tc_block_cb,
+                                                 ns, ns, true);
+       default:
+               return -EOPNOTSUPP;
+       }
+}