From: Paul Blakey <pa...@mellanox.com> Date: Wed, 4 Sep 2019 16:56:37 +0300
> Offloaded OvS datapath rules are translated one to one to tc rules, > for example the following simplified OvS rule: > > recirc_id(0),in_port(dev1),eth_type(0x0800),ct_state(-trk) > actions:ct(),recirc(2) > > Will be translated to the following tc rule: > > $ tc filter add dev dev1 ingress \ > prio 1 chain 0 proto ip \ > flower tcp ct_state -trk \ > action ct pipe \ > action goto chain 2 > > Received packets will first travel though tc, and if they aren't stolen > by it, like in the above rule, they will continue to OvS datapath. > Since we already did some actions (action ct in this case) which might > modify the packets, and updated action stats, we would like to continue > the proccessing with the correct recirc_id in OvS (here recirc_id(2)) > where we left off. > > To support this, introduce a new skb extension for tc, which > will be used for translating tc chain to ovs recirc_id to > handle these miss cases. Last tc chain index will be set > by tc goto chain action and read by OvS datapath. > > Signed-off-by: Paul Blakey <pa...@mellanox.com> > Signed-off-by: Vlad Buslov <vla...@mellanox.com> > Acked-by: Jiri Pirko <j...@mellanox.com> > --- > Changelog: > V3->V4: > Removed changes to tcf_result, instead us action return value to get > chain index Applied to net-next.