From: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx> Date: Thu, 14 Jul 2016 06:09:58 +0300 > This set tries to simplify the receive and forwarding paths. Patch 01 is > a trivial style adjustment, patch 02 removes one conditional from the > unicast fast path, patch 03 removes another conditional and more imporantly > removes the skb0/skb2 ambiguity about locally receiving the skb and > switches to a boolean called "local_rcv". > Patch 04 is the most important change which consolidates the forwarding > paths for locally originated and forwarded packets into __br_forward. This > allows us to remove the function pointers giving a minor performance boost, > more importantly it makes it much easier to reason about the forwarding > path and reduces the code duplication that was needed when making changes. > Also it allows the receive path to fully setup the environment prior to > calling any forwarding functions (i.e. to properly set unicast, local_rcv > and search for unicast/mcast dst). > Functionally everything should stay the same after this set. > > I've done basic tests with unicast/multicast/broadcast Tx/Rx. Please > review carefully. I've reviewed this twice and can't find any problems, so applied to net-next, thanks.