diff options
author | Paul Blakey <paulb@nvidia.com> | 2023-02-18 00:36:14 +0200 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2023-02-20 16:46:10 -0800 |
commit | 80cd22c35c9001fe72bf614d29439de41933deca (patch) | |
tree | 0a4953069a9b1876740444178bc5091f4ff6d089 /include/linux/skbuff.h | |
parent | db4b49025c0c7116f1d2dfe8d5bbfc983ac054de (diff) | |
download | lwn-80cd22c35c9001fe72bf614d29439de41933deca.tar.gz lwn-80cd22c35c9001fe72bf614d29439de41933deca.zip |
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>
Diffstat (limited to 'include/linux/skbuff.h')
-rw-r--r-- | include/linux/skbuff.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index d5602b15c714..ff7ad331fb82 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -319,12 +319,16 @@ struct nf_bridge_info { * and read by ovs to recirc_id. */ struct tc_skb_ext { - __u32 chain; + union { + u64 act_miss_cookie; + __u32 chain; + }; __u16 mru; __u16 zone; u8 post_ct:1; u8 post_ct_snat:1; u8 post_ct_dnat:1; + u8 act_miss:1; /* Set if act_miss_cookie is used */ }; #endif |