• Eric Dumazet's avatar
    ipv6: make lookups simpler and faster · efe4208f
    Eric Dumazet authored
    TCP listener refactoring, part 4 :
    To speed up inet lookups, we moved IPv4 addresses from inet to struct
    Now is time to do the same for IPv6, because it permits us to have fast
    lookups for all kind of sockets, including upcoming SYN_RECV.
    Getting IPv6 addresses in TCP lookups currently requires two extra cache
    lines, plus a dereference (and memory stall).
    inet6_sk(sk) does the dereference of inet_sk(__sk)->pinet6
    This patch is way bigger than its IPv4 counter part, because for IPv4,
    we could add aliases (inet_daddr, inet_rcv_saddr), while on IPv6,
    it's not doable easily.
    inet6_sk(sk)->daddr becomes sk->sk_v6_daddr
    inet6_sk(sk)->rcv_saddr becomes sk->sk_v6_rcv_saddr
    And timewait socket also have tw->tw_v6_daddr & tw->tw_v6_rcv_saddr
    at the same offset.
    We get rid of INET6_TW_MATCH() as INET6_MATCH() is now the generic
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
lsm_audit.c 9.29 KB