From: Ido Schimmel Date: Thu, 7 Apr 2022 07:35:31 +0000 (+0300) Subject: net/sched: cls_api: Add extack message for unsupported action offload X-Git-Tag: v5.19-rc1~159^2~366^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c440615ffbcb9c06975103e5abbcb094589329d1;p=thirdparty%2Fkernel%2Flinux.git net/sched: cls_api: Add extack message for unsupported action offload For better error reporting to user space, add an extack message when the requested action does not support offload. Example: # echo 1 > /sys/kernel/tracing/events/netlink/netlink_extack/enable # tc filter add dev dummy0 ingress pref 1 proto all matchall skip_sw action nat ingress 192.0.2.1 198.51.100.1 Error: cls_matchall: Failed to setup flow action. We have an error talking to the kernel # cat /sys/kernel/tracing/trace_pipe tc-181 [000] b..1. 88.406093: netlink_extack: msg=Action does not support offload tc-181 [000] ..... 88.406108: netlink_extack: msg=cls_matchall: Failed to setup flow action Signed-off-by: Ido Schimmel Reviewed-by: Petr Machata Signed-off-by: David S. Miller --- diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c index dd711ae048ff4..d8a22bedd0262 100644 --- a/net/sched/cls_api.c +++ b/net/sched/cls_api.c @@ -3517,11 +3517,13 @@ static int tc_setup_offload_act(struct tc_action *act, struct netlink_ext_ack *extack) { #ifdef CONFIG_NET_CLS_ACT - if (act->ops->offload_act_setup) + if (act->ops->offload_act_setup) { return act->ops->offload_act_setup(act, entry, index_inc, true, extack); - else + } else { + NL_SET_ERR_MSG(extack, "Action does not support offload"); return -EOPNOTSUPP; + } #else return 0; #endif