On Tue, Jan 5, 2016 at 5:22 PM, Eric Dumazet <eric.duma...@gmail.com> wrote: > On Tue, 2016-01-05 at 14:08 -0800, Eric Dumazet wrote: >> From: Eric Dumazet <eduma...@google.com> >> >> udp_dump_one() uses __udp4_lib_lookup() & __udp6_lib_lookup() >> which cannot properly handle the provided cookie when SO_REUSEPORT >> is used, as many sockets share the same 4-tuple >> >> Instead, let's use the provided 64bit cookie to uniquely identify >> the socket. >> >> This will allow us to remove a check against skb being NULL in >> reuseport_select_sock(), as we no longer share __udp4_lib_lookup() & >> __udp6_lib_lookup() with packet processing path. >> >> Signed-off-by: Eric Dumazet <eduma...@google.com> >> --- > > I'll send a v2, removing the EXPORT_SYMBOL(__udp4_lib_lookup) and add a > static qualifier. (Same for v6) > > Also, INET_UDP_DIAG can depends on INET_DIAG instead of "depends on > INET_DIAG && (IPV6 || IPV6=n)"
Thanks Eric! Still reading through this, but I noticed a couple other paths as well. Anything that comes through the exported udp4_lib_lookup. Currently xt_TPROXY.c and xt_socket.c. Though, these could probably be changed to pass through the skb. That may be worth addressing in a separate patch, though... -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html