netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: John Fastabend <john.r.fastabend@intel.com>
To: Sridhar Samudrala <sri@us.ibm.com>
Cc: bhutchings@solarflare.com, roprabhu@cisco.com,
	netdev@vger.kernel.org, mst@redhat.com, chrisw@redhat.com,
	davem@davemloft.net, gregory.v.rose@intel.com,
	shemminger@vyatta.com, kvm@vger.kernel.org
Subject: Re: [RFC PATCH v0 1/2] net: bridge: propagate FDB table into hardware
Date: Thu, 09 Feb 2012 12:30:36 -0800	[thread overview]
Message-ID: <4F342CEC.8080104@intel.com> (raw)
In-Reply-To: <1328811287.19664.9.camel@oc1677441337.ibm.com>

On 2/9/2012 10:14 AM, Sridhar Samudrala wrote:
> On Wed, 2012-02-08 at 19:22 -0800, John Fastabend wrote:
>> Propagate software FDB table into hardware uc, mc lists when
>> the NETIF_F_HW_FDB is set.
>>
>> This resolves the case below where an embedded switch is used
>> in hardware to do inter-VF or VF-PF switching. This patch
>> pushes the FDB entry (specifically the MAC address) into the
>> embedded switch with dev_add_uc and dev_add_mc so the switch
>> "learns" about the software bridge.
>>
>>
>>           veth0  veth2
>>             |      |
>>           ------------
>>           |  bridge0 |   <---- software bridging
>>           ------------
>>                /
>>                /
>>   ethx.y      ethx
>>     VF         PF
>>      \         \          <---- propagate FDB entries to HW
>>      \         \
>>   --------------------
>>   |  Embedded Bridge |    <---- hardware offloaded switching
>>   --------------------
>>
> 
> This scenario works now as adding an interface to a bridge puts it in
> promiscuous mode. So adding a PF to a software bridge should not be
> a problem as it supports promiscuous mode. But adding a VF will not
> work.

It shouldn't work because the embedded bridge will lookup the address
in its FDB and when it doesn't match any unicast filters it will forward
the packet onto the wire. Because the veth0 and veth2 above never get
inserted into the embedded brdige's FDB the packets will _never_ get
routed there.

That said the current 'ixgbe' driver is doing something broken in that
it is always setting the unicast hash table and mirroring bits to 1. So
if you think this is working your seeing a bug where packets are being
sent onto the wire AND upto the PF. Packets with destination addresses
matching veth1 should not end up on the wire and vice versa. This is
specific to ixgbe and is not the case for other SR-IOV devices.

This causes some issues (a) has some very real performance implications,
(b) at this point you have some strange behavior from my point of view.
The embedded bridge is not a learning bridge nor is it acting like an
802.1Q VEB or VEPA.

> 
> Are you trying to avoid the requirement of having to put the interface 
> in promiscuous mode when adding to a bridge?
> 

I think the bridge being in promiscuous mode is correct.

Hope that helps sorry its a bit long winded.
John




  reply	other threads:[~2012-02-09 20:30 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-09  3:22 [RFC PATCH v0 1/2] net: bridge: propagate FDB table into hardware John Fastabend
2012-02-09  3:22 ` [RFC PATCH v0 2/2] ixgbe: add NETIF_F_HW_FDB to supported flags John Fastabend
2012-02-09  4:36 ` [RFC PATCH v0 1/2] net: bridge: propagate FDB table into hardware Stephen Hemminger
2012-02-09 17:36   ` John Fastabend
2012-02-09 17:40     ` Stephen Hemminger
2012-02-09 17:52       ` John Fastabend
2012-02-09 21:11         ` jamal
2012-02-10  2:14           ` John Fastabend
2012-02-10  4:14             ` John Fastabend
2012-02-10 15:18               ` jamal
2012-02-10 16:39                 ` Stephen Hemminger
2012-02-13 13:54                   ` jamal
2012-02-13 15:13                 ` John Fastabend
2012-02-14 13:18                   ` jamal
2012-02-14 18:57                     ` John Fastabend
2012-02-14 19:05                       ` Stephen Hemminger
2012-02-14 19:08                         ` John Fastabend
2012-02-15 14:10                       ` Jamal Hadi Salim
2012-02-16  1:26                         ` John Fastabend
2012-02-17 14:28                           ` jamal
2012-02-17 17:10                             ` John Fastabend
2012-02-18 12:41                               ` jamal
2012-02-29  4:40                                 ` John Fastabend
2012-02-29  5:14                                   ` John Fastabend
2012-02-29 13:57                                     ` Jamal Hadi Salim
2012-02-29 13:56                                   ` Jamal Hadi Salim
2012-02-29 17:25                                     ` John Fastabend
2012-02-29 17:52                                       ` Stephen Hemminger
2012-02-29 18:19                                         ` John Fastabend
2012-03-01 13:36                                           ` Jamal Hadi Salim
2012-03-01 22:17                                             ` John Fastabend
2012-03-02 13:20                                               ` jamal
2012-03-05 17:00                                             ` Lennert Buytenhek
2012-03-01 13:24                                       ` Jamal Hadi Salim
2012-03-01 14:14                                       ` Michael S. Tsirkin
2012-03-01 22:10                                         ` John Fastabend
2012-03-05 16:53                                   ` Lennert Buytenhek
2012-03-06  3:45                                     ` John Fastabend
2012-03-06 14:15                                       ` Lennert Buytenhek
2012-03-06 13:42                                     ` jamal
2012-03-06 14:09                                       ` Lennert Buytenhek
2012-03-07 14:11                                         ` Jamal Hadi Salim
2012-03-12  8:48                                           ` Lennert Buytenhek
2012-03-13 13:52                                             ` Jamal Hadi Salim
2012-02-16  3:58                 ` Ben Hutchings
2012-02-16 19:18                   ` Shradha Shah
2012-02-17 14:37                   ` jamal
2012-02-10 13:45     ` Roopa Prabhu
2012-02-09 18:14 ` Sridhar Samudrala
2012-02-09 20:30   ` John Fastabend [this message]
2012-02-10  0:39     ` Sridhar Samudrala
2012-02-10  0:51       ` John Fastabend

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=4F342CEC.8080104@intel.com \
    --to=john.r.fastabend@intel.com \
    --cc=bhutchings@solarflare.com \
    --cc=chrisw@redhat.com \
    --cc=davem@davemloft.net \
    --cc=gregory.v.rose@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=roprabhu@cisco.com \
    --cc=shemminger@vyatta.com \
    --cc=sri@us.ibm.com \
    /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).