Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote: > On Tue, 2014-12-02 at 01:28 +0100, Florian Westphal wrote: > > ... to avoid per-packet FIB lookup if possible. > > > > The cached dst is re-used provided the input interface > > is the same as that of the previous packet in the same direction. > > > > If not, the cached dst is invalidated. > > > > This should speed up forwarding when conntrack is already in use > > anyway, especially when using reverse path filtering -- active RPF > > enforces two FIB lookups for each packet. > > > > Before the routing cache removal this didn't matter since RPF > > was performed only when route cache didn't yield a result; but without > > route cache it comes at high price. > > > > Signed-off-by: Florian Westphal <fw@xxxxxxxxx> > > --- > > Seems a good idea (but you might need some IPv6 care, as ( dst = > dst_check(dst, 0); ) seems to handle IPv4 only) As usual, you're right... AFAICS its enough to stash fib sernum of the rt6info too and pass that as the cookie, phew :-) > Another idea would be to re-use TCP ehash so that regular IP early demux > can be used, with a single lookup for both local and forwarded sessions. Hmm, I'll look at this. Maybe... > (That would probably require a bit more memory, as you would need to > insert into TCP ehash some kind of 'tiny sockets' ) ... such tiny socket could be stored/tied to the conntrack extension area. I think we need to be careful to not re-add the route cache (and the DoS issues associated with it). Thanks Eric! -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html