2017-11-09 22:58 GMT+08:00 Eric Dumazet <eric.duma...@gmail.com>: > 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. >
I'm also very sad that I'm still using IPv4 in 2017 : ( Okay then another issue, shoule we reduce the complexity in the function tcp4_seq_show() ? Thanks Yafang