[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7b4bb63d-45f5-b28b-f866-a097d20ae743@solarflare.com>
Date: Fri, 6 Mar 2020 13:16:39 +0000
From: Edward Cree <ecree@...arflare.com>
To: Paul Blakey <paulb@...lanox.com>,
Saeed Mahameed <saeedm@...lanox.com>,
"Oz Shlomo" <ozsh@...lanox.com>,
Jakub Kicinski <jakub.kicinski@...ronome.com>,
Vlad Buslov <vladbu@...lanox.com>,
David Miller <davem@...emloft.net>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
Jiri Pirko <jiri@...lanox.com>, Roi Dayan <roid@...lanox.com>
Subject: Re: [PATCH net-next ct-offload 03/13] net/sched: act_ct: Support
restoring conntrack info on skbs
On 05/03/2020 15:34, Paul Blakey wrote:
> Provide an API to restore the ct state pointer.
>
> This may be used by drivers to restore the ct state if they
> miss in tc chain after they already did the hardware connection
> tracking action (ct_metadata action).
>
> For example, consider the following rule on chain 0 that is in_hw,
> however chain 1 is not_in_hw:
>
> $ tc filter add dev ... chain 0 ... \
> flower ... action ct pipe action goto chain 1
>
> Packets of a flow offloaded (via nf flow table offload) by the driver
> hit this rule in hardware, will be marked with the ct metadata action
> (mark, label, zone) that does the equivalent of the software ct action,
> and when the packet jumps to hardware chain 1, there would be a miss.
>
> CT was already processed in hardware. Therefore, the driver's miss
> handling should restore the ct state on the skb, using the provided API,
> and continue the packet processing in chain 1.
IMNSHO this demonstrates why hardware should do all-or-nothingoffload,
in the cases where it can't perform the whole filtering it should
provide the unmodified packet so that SW can start over from a clean
state.
But as long as these epicycles don't affect drivers for such HW, I guess
I can't object too hard to them being added.
Powered by blists - more mailing lists