On Thu, 8 Apr 2021 10:05:07 -0400 Jamal Hadi Salim wrote: > 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
To make sure I understand - are you saying that trap should become more general and support both "and then drop" as well as "and then pass" semantics? Seems like that ship has sailed, but also - how does it make it any better WRT not having HW only opcodes? Or are you saying one is better than two?