summaryrefslogtreecommitdiff
path: root/drivers/net/netdevsim
diff options
context:
space:
mode:
authorDavide Caratti <dcaratti@redhat.com>2026-03-19 19:40:55 +0100
committerJakub Kicinski <kuba@kernel.org>2026-03-20 20:13:14 -0700
commitabdf5133bfa12c45d402f7b73d39bca772f3644a (patch)
tree3698e361d8ebca120c6a5a8aa1eb3ae74ecc8a44 /drivers/net/netdevsim
parent544921efd4e4b1f135c87335dd59114a302c574d (diff)
netdevsim: support tc-ets offload
Extend netdevsim to accept ndo_setup_tc(TC_SETUP_QDISC_ETS) calls, so that it's possible to run tdc on ETS offload code path. Reviewed-by: Jamal Hadi Salim <jhs@mojatatu.com> Signed-off-by: Davide Caratti <dcaratti@redhat.com> Link: https://patch.msgid.link/d04086cd0204d4aaf6524e972198faa1a4e5d657.1773945414.git.dcaratti@redhat.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/netdevsim')
-rw-r--r--drivers/net/netdevsim/tc.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/net/netdevsim/tc.c b/drivers/net/netdevsim/tc.c
index 8a1960f5f99e..8f013a5895a2 100644
--- a/drivers/net/netdevsim/tc.c
+++ b/drivers/net/netdevsim/tc.c
@@ -2,6 +2,7 @@
#include <linux/netdevice.h>
#include <net/pkt_sched.h>
+#include <net/pkt_cls.h>
#include "netdevsim.h"
@@ -36,6 +37,25 @@ static int nsim_setup_tc_taprio(struct net_device *dev,
return err;
}
+static int nsim_setup_tc_ets(struct net_device *dev,
+ struct tc_ets_qopt_offload *offload)
+{
+ int err = 0;
+
+ switch (offload->command) {
+ case TC_ETS_REPLACE:
+ case TC_ETS_DESTROY:
+ break;
+ case TC_ETS_STATS:
+ _bstats_update(offload->stats.bstats, 0, 0);
+ break;
+ default:
+ err = -EOPNOTSUPP;
+ }
+
+ return err;
+}
+
static LIST_HEAD(nsim_block_cb_list);
int
@@ -46,6 +66,8 @@ nsim_setup_tc(struct net_device *dev, enum tc_setup_type type, void *type_data)
switch (type) {
case TC_SETUP_QDISC_TAPRIO:
return nsim_setup_tc_taprio(dev, type_data);
+ case TC_SETUP_QDISC_ETS:
+ return nsim_setup_tc_ets(dev, type_data);
case TC_SETUP_BLOCK:
return flow_block_cb_setup_simple(type_data,
&nsim_block_cb_list,