On Tue, 5 Jun 2018 11:04:03 +0300, Paul Blakey wrote: > When using a vxlan device as the ingress dev, we count it as a > "no offload dev", so when such a rule comes and err stop is true, > we fail early and don't try the egdev route which can offload it > through the egress device. > > Fix that by not calling the block offload if one of the devices > attached to it is not offload capable, but make sure egress on such case > is capable instead. > > Fixes: caa7260156eb ("net: sched: keep track of offloaded filters [..]") > Reviewed-by: Roi Dayan <r...@mellanox.com> > Acked-by: Jiri Pirko <j...@mellanox.com> > Signed-off-by: Paul Blakey <pa...@mellanox.com>
Very poor commit message. What you're doing is re-enabling skip_sw filters on tunnel devices which semantically make no sense and shouldn't have been allowed in the first place. This will breaks block sharing between tunnels and HW netdevs (because you skip the tcf_block_cb_call() completely). The entire egdev idea remains badly broken accepting filters like this: # tc filter add dev vxlan0 ingress \ matchall action skip_sw \ mirred egress redirect dev lo \ mirred egress redirect dev sw1np0 Do we still care about correctness and not breaking backward compatibility?