On 10/14/16 12:33 AM, Eric Dumazet wrote: > There is a catch here. > TCP moves IP6CB() in a different location. > > Reference : > > 971f10eca186 ("tcp: better TCP_SKB_CB layout to reduce cache line misses")
thanks for the reference. > Problem is that the lookup can happen from IP early demux, before TCP > moved IP{6}CB around. For TCP we only need the exact_dif match for listen sockets, so early demux does not apply. > > So you might need to let the caller pass IP6CB(skb)->flags (or > TCP_SKB_CB(skb)->header.h6.flags ) instead of skb since > inet6_exact_dif_match() does not know where to fetch the flags. > > Same issue for IPv4. I'll update the match functions to pull from TCP_SKB_CB instead of IP6CB and make a note of the above. Thanks for the review