netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
To: netdev@vger.kernel.org
Cc: roopa@cumulusnetworks.com, stephen@networkplumber.org,
	davem@davemloft.net, bridge@lists.linux-foundation.org,
	Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Subject: [PATCH net-next 0/4] net: bridge: simplify receive path and consolidate forwarding paths
Date: Thu, 14 Jul 2016 06:09:58 +0300	[thread overview]
Message-ID: <1468465802-4571-1-git-send-email-nikolay@cumulusnetworks.com> (raw)

Hi all,
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.

Thank you,
 Nik

Nikolay Aleksandrov (4):
  net: bridge: minor style adjustments in br_handle_frame_finish
  net: bridge: rearrange flood vs unicast receive paths
  net: bridge: drop skb2/skb0 variables and use a local_rcv boolean
  net: bridge: remove _deliver functions and consolidate forward code

 net/bridge/br_device.c                   |  22 ++--
 net/bridge/br_forward.c                  | 195 +++++++++++--------------------
 net/bridge/br_input.c                    |  62 +++++-----
 net/bridge/br_private.h                  |  29 ++---
 net/bridge/netfilter/nft_reject_bridge.c |   8 +-
 5 files changed, 125 insertions(+), 191 deletions(-)

-- 
2.4.3

             reply	other threads:[~2016-07-14 18:03 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-14  3:09 Nikolay Aleksandrov [this message]
2016-07-14  3:09 ` [PATCH net-next 1/4] net: bridge: minor style adjustments in br_handle_frame_finish Nikolay Aleksandrov
2016-07-14  3:10 ` [PATCH net-next 2/4] net: bridge: rearrange flood vs unicast receive paths Nikolay Aleksandrov
2016-07-15 17:35   ` Cong Wang
2016-07-15 17:37     ` Nikolay Aleksandrov
2016-07-14  3:10 ` [PATCH net-next 3/4] net: bridge: drop skb2/skb0 variables and use a local_rcv boolean Nikolay Aleksandrov
2016-07-14  3:10 ` [PATCH net-next 4/4] net: bridge: remove _deliver functions and consolidate forward code Nikolay Aleksandrov
2016-07-17  2:58 ` [PATCH net-next 0/4] net: bridge: simplify receive path and consolidate forwarding paths David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1468465802-4571-1-git-send-email-nikolay@cumulusnetworks.com \
    --to=nikolay@cumulusnetworks.com \
    --cc=bridge@lists.linux-foundation.org \
    --cc=davem@davemloft.net \
    --cc=netdev@vger.kernel.org \
    --cc=roopa@cumulusnetworks.com \
    --cc=stephen@networkplumber.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).