On 11/9/20 4:44 PM, Jakub Kicinski wrote: > On Fri, 6 Nov 2020 08:30:30 +0100 Martin Willi wrote: >> VRF devices use an optimized direct path on output if a default qdisc >> is involved, calling Netfilter hooks directly. This path, however, does >> not consider Netfilter rules completing asynchronously, such as with >> NFQUEUE. The Netfilter okfn() is called for asynchronously accepted >> packets, but the VRF never passes that packet down the stack to send >> it out over the slave device. Using the slower redirect path for this >> seems not feasible, as we do not know beforehand if a Netfilter hook >> has asynchronously completing rules. >> >> Fix the use of asynchronously completing Netfilter rules in OUTPUT and >> POSTROUTING by using a special completion function that additionally >> calls dst_output() to pass the packet down the stack. Also, slightly >> adjust the use of nf_reset_ct() so that is called in the asynchronous >> case, too. >> >> Fixes: dcdd43c41e60 ("net: vrf: performance improvements for IPv4") >> Fixes: a9ec54d1b0cd ("net: vrf: performance improvements for IPv6") >> Signed-off-by: Martin Willi <martin@xxxxxxxxxxxxxx> > > David, can we get an ack? > It would be good to get a netfilter maintainer to review; I think it is ok.