2017-11-09 22:58 GMT+08:00 Eric Dumazet [off-list ref]:
On Thu, 2017-11-09 at 06:52 -0800, Eric Dumazet wrote:
quoted
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