• Florian Westphal's avatar
    bridge: netfilter: unroll NF_HOOK helper in bridge input path · 971502d7
    Florian Westphal authored
    Replace NF_HOOK() based invocation of the netfilter hooks with a private
    copy of nf_hook_slow().
    
    This copy has one difference: it can return the rx handler value expected
    by the stack, i.e. RX_HANDLER_CONSUMED or RX_HANDLER_PASS.
    
    This is needed by the next patch to invoke the ebtables
    "broute" table via the standard netfilter hooks rather than the custom
    "br_should_route_hook" indirection that is used now.
    
    When the skb is to be "brouted", we must return RX_HANDLER_PASS from the
    bridge rx input handler, but there is no way to indicate this via
    NF_HOOK(), unless perhaps by some hack such as exposing bridge_cb in the
    netfilter core or a percpu flag.
    
      text    data     bss     dec   filename
      3369      56       0    3425   net/bridge/br_input.o.before
      3458      40       0    3498   net/bridge/br_input.o.after
    
    This allows removal of the "br_should_route_hook" in the next patch.
    Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
    Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
    Acked-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    971502d7
br_input.c 9.21 KB