• David Ahern's avatar
    net/ipv6: Add fib6_lookup · 138118ec
    David Ahern authored
    Add IPv6 equivalent to fib_lookup. Does a fib lookup, including rules,
    but returns a FIB entry, fib6_info, rather than a dst based rt6_info.
    fib6_lookup is any where from 140% (MULTIPLE_TABLES config disabled)
    to 60% faster than any of the dst based lookup methods (without custom
    rules) and 25% faster with custom rules (e.g., l3mdev rule).
    
    Since the lookup function has a completely different signature,
    fib6_rule_action is split into 2 paths: the existing one is
    renamed __fib6_rule_action and a new one for the fib6_info path
    is added. fib6_rule_action decides which to call based on the
    lookup_ptr. If it is fib6_table_lookup then the new path is taken.
    
    Caller must hold rcu lock as no reference is taken on the returned
    fib entry.
    Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
    Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    138118ec
fib6_rules.c 11.8 KB