Re: [PATCH net-next 1/7] net: sched: Add a trap-and-forward action
From: Jamal Hadi Salim <jhs@mojatatu.com>
Date: 2021-04-08 14:05:13
Hi Petr, On 2021-04-08 9:38 a.m., Petr Machata wrote:
The TC action "trap" is used to instruct the HW datapath to drop the matched packet and transfer it for processing in the SW pipeline. If instead it is desirable to forward the packet and transferring a _copy_ to the SW pipeline, there is no practical way to achieve that. To that end add a new generic action, trap_fwd. In the software pipeline, it is equivalent to an OK. When offloading, it should forward the packet to the host, but unlike trap it should not drop the packet.
I am concerned about adding new opcodes which only make sense if you offload (or make sense only if you are running in s/w). Those opcodes are intended to be generic abstractions so the dispatcher can decide what to do next. Adding things that are specific only to scenarios of hardware offload removes that opaqueness. I must have missed the discussion on ACT_TRAP because it is the same issue there i.e shouldnt be an opcode. For details see: https://people.netfilter.org/pablo/netdev0.1/papers/Linux-Traffic-Control-Classifier-Action-Subsystem-Architecture.pdf IMO: It seems to me there are two actions here encapsulated in one. The first is to "trap" and the second is to "drop". This is no different semantically than say "mirror and drop" offload being enunciated by "skip_sw". Does the spectrum not support multiple actions? e.g with a policy like: match blah action trap action drop skip_sw cheers, jamal