net/sched: cls_api: Support hardware miss to tc action
authorPaul Blakey <paulb@nvidia.com>
Fri, 17 Feb 2023 22:36:14 +0000 (00:36 +0200)
committerJakub Kicinski <kuba@kernel.org>
Tue, 21 Feb 2023 00:46:10 +0000 (16:46 -0800)
commit80cd22c35c9001fe72bf614d29439de41933deca
tree0a4953069a9b1876740444178bc5091f4ff6d089
parentdb4b49025c0c7116f1d2dfe8d5bbfc983ac054de
net/sched: cls_api: Support hardware miss to tc action

For drivers to support partial offload of a filter's action list,
add support for action miss to specify an action instance to
continue from in sw.

CT action in particular can't be fully offloaded, as new connections
need to be handled in software. This imposes other limitations on
the actions that can be offloaded together with the CT action, such
as packet modifications.

Assign each action on a filter's action list a unique miss_cookie
which drivers can then use to fill action_miss part of the tc skb
extension. On getting back this miss_cookie, find the action
instance with relevant cookie and continue classifying from there.

Signed-off-by: Paul Blakey <paulb@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Reviewed-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/skbuff.h
include/net/flow_offload.h
include/net/pkt_cls.h
include/net/sch_generic.h
net/openvswitch/flow.c
net/sched/act_api.c
net/sched/cls_api.c