On Thu, 2017-11-09 at 06:52 -0800, Eric Dumazet wrote: > Wow. > > > Since all three variants of sockets (full sockets, request sockets, > timewait sockets) are all hashed into ehash table these days, they all > have the fields at the same offset > > For IPv4, that would be : > > __sk_common.skc_daddr (or inet_daddr) > __sk_common.skc_rcv_saddr (or inet_rcv_saddr ) > __sk_common.skc_dport (or inet_dport) > __sk_common.skc_num (or inet_num) > > Look at __inet_lookup_established() and INET_MATCH() : They deal with > the three variants, without having to look at sk_state. > > If you were using the fields that are common to all sockets, no need to > add all this unnecessary complexity. >
Not to mention that your patch took care of IPv4 only. I can not say how sad I am that in 2017 IPv6 seems to be second class citizen.