mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 01:32:21 +02:00
netdevsim: tc: allow to test nf_tables offload control plane code
The actual 'offload' is phony, all commands are ignored: this is only useful to test control plane code. Tag the existing callback to permit error injection to test rollback/abort code in nf_tables. This is also for fuzzers - the fault injection framework allows probabilistic error insertion. Signed-off-by: Florian Westphal <fw@strlen.de> Link: https://patch.msgid.link/20260612092209.11966-2-fw@strlen.de Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
5184fd3421
commit
07ca2ab4ce
|
|
@ -123,12 +123,6 @@ int nsim_bpf_setup_tc_block_cb(enum tc_setup_type type,
|
|||
struct netdevsim *ns = cb_priv;
|
||||
struct bpf_prog *oldprog;
|
||||
|
||||
if (type != TC_SETUP_CLSBPF) {
|
||||
NSIM_EA(cls_bpf->common.extack,
|
||||
"only offload of BPF classifiers supported");
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
if (!tc_cls_can_offload_and_chain0(ns->netdev, &cls_bpf->common))
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,22 @@
|
|||
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);
|
||||
struct flow_cls_common_offload *common = type_data;
|
||||
int err = 0;
|
||||
|
||||
switch (type) {
|
||||
case TC_SETUP_CLSBPF:
|
||||
err = nsim_bpf_setup_tc_block_cb(type, type_data, cb_priv);
|
||||
break;
|
||||
case TC_SETUP_CLSFLOWER:
|
||||
break;
|
||||
default:
|
||||
NSIM_EA(common->extack, "offload type not supported");
|
||||
err = -EOPNOTSUPP;
|
||||
break;
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
static void nsim_taprio_stats(struct tc_taprio_qopt_stats *stats)
|
||||
|
|
@ -73,7 +88,10 @@ nsim_setup_tc(struct net_device *dev, enum tc_setup_type type, void *type_data)
|
|||
&nsim_block_cb_list,
|
||||
nsim_setup_tc_block_cb,
|
||||
ns, ns, true);
|
||||
case TC_SETUP_FT:
|
||||
return 0;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
ALLOW_ERROR_INJECTION(nsim_setup_tc, ERRNO);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user