All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: Andrey Volkov <andrey.volkov@nexvision.fr>,
	Florian Fainelli <f.fainelli@gmail.com>
Cc: Andrew Lunn <andrew@lunn.ch>, netdev <netdev@vger.kernel.org>,
	David Miller <davem@davemloft.net>,
	Vivien Didelot <vivien.didelot@savoirfairelinux.com>,
	jerome.oufella@savoirfairelinux.com,
	Chris Healy <cphealy@gmail.com>
Subject: Re: [PATCH RFC 1/2] net: dsa: integrate with SWITCHDEV for HW bridging
Date: Wed, 25 Feb 2015 06:25:54 -0800	[thread overview]
Message-ID: <54EDDB72.1090706@roeck-us.net> (raw)
In-Reply-To: <54EDD172.4010606@nexvision.fr>

Andrey,

On 02/25/2015 05:43 AM, Andrey Volkov wrote:
> Gunter, Florian,
>
> Le 23/02/2015 19:35, Guenter Roeck a wrote :
>> On Mon, Feb 23, 2015 at 10:05:41AM -0800, Florian Fainelli wrote:
>>> On 23/02/15 08:01, Andrew Lunn wrote:
>>>>> I currently use ATU command 110 (flush all non-static entries in a
>>>>> particular FID). I see means to flush either all entries or all
>>>>> non-static entries, but no means to only flush unicast or multicast
>>>>> entries. Does any of the standards distinguish between learned unicast
>>>>> and multicast addresses ? Flushing those selectively might be a
>>>>> challenge.
>>> Lucky you, on Broadcom switches you have to issue an ARL search, get the
>>> results (there are all valid MAC entries, fortunately), and invalidate
>>> the entries one by one for your particular ports of interest, there is
>>> no "flush all non-static entries".
>>>
>>>> You might need to walk the table and flush records individually if you
>>>> are only interested in one type.
>>>>
>>>> We should also consider do we need to make these flush operations
>>>> atomic with respect to other operations? Do we need to disable
>>>> learning, flush, change the port STP status, and then enable learning?
>> Wonder what if anything RSTP specifies for flush operation details.
>>
>>> I think we may have to do this to guarantee no race conditions between
>>> flushing the switch's FDB, although it would look like only "joining" a
>>> bridge needs to be a more controlled operation, on leave we can probably
>>> just leave the bridge, flush entries and the switch port will start
>>> learning new MAC addresses, right?
>>>
>>> Alternatively, would not setting a very low aging timeout and
>>> maintaining HW learning still allow us to simplify these operations?
>> That is what STP specifies. With RSTP, the expectation is that the database
>> is flushed immediately on port status changes. Also, the minimum aging
>> period on Marvell switches is 15 seconds, which is way too long for RSTP.
>>
>> Guenter
>>
> I simply modify port's fid to the new one in the leave routine and set to common bridge FID in enter
> (I'm using Marvell's chips). So the port's database will cleaned up automatically for the leave and will
> contain something useful at the enter time. Also I've look through yours patches and I haven't

Does removing a port from a fid clean up the entries associated with it
in the database ?

> seen any mutichip bridges/hardwared "trunks" support (in the Marvell's sense), did anyone, except me, use it?
>
Not me. That would be difficult to test without real hardware.

The above suggests that you have a HW bridge implementation for Marvell chips as well.
Would it make sense to merge our implementations, or just use yours if it is better ?

> Btw your current FID implementation contain funny security problem: same ports in the different chips,
> interconnected by DSA, will have same FID and as result they will treated as bridged together by
> internal switch logic...
>
You mean if multiple switch chips are used ? Those ports are configured to only send
data to the CPU port. Doesn't that take care of the problem ? Granted, I have not
looked into multi-chip applications, so there may well be some problems. Maybe
it is possible to merge a chip ID into the fid to solve it.

Thanks,
Guenter

  reply	other threads:[~2015-02-25 14:26 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-17 19:26 [PATCH RFC 0/2] net: dsa: integration with SWITCHDEV for HW bridging Florian Fainelli
2015-02-17 19:26 ` [PATCH RFC 1/2] net: dsa: integrate " Florian Fainelli
2015-02-17 20:13   ` Guenter Roeck
2015-02-17 20:24     ` Florian Fainelli
2015-02-17 20:28       ` Guenter Roeck
2015-02-18  1:19   ` Andrew Lunn
2015-02-18  1:43     ` Florian Fainelli
2015-02-18  3:53     ` Guenter Roeck
2015-02-18  4:53       ` Florian Fainelli
2015-02-18  6:14         ` Guenter Roeck
2015-02-18 13:49         ` Andrew Lunn
2015-02-18 14:05           ` Guenter Roeck
2015-02-23  2:20   ` Guenter Roeck
2015-02-23  3:14     ` Andrew Lunn
2015-02-23  4:07       ` Guenter Roeck
2015-02-23  4:22         ` Andrew Lunn
2015-02-23  4:33           ` Florian Fainelli
2015-02-23  4:38           ` Guenter Roeck
2015-02-23  4:43             ` Florian Fainelli
2015-02-23  6:19               ` Guenter Roeck
2015-02-23 13:34               ` Andrew Lunn
2015-02-23 14:23                 ` Guenter Roeck
2015-02-23 16:01                   ` Andrew Lunn
2015-02-23 18:05                     ` Florian Fainelli
2015-02-23 18:35                       ` Guenter Roeck
2015-02-25 13:43                         ` Andrey Volkov
2015-02-25 14:25                           ` Guenter Roeck [this message]
2015-02-25 16:05                             ` Andrey Volkov
2015-02-25 17:41                               ` Guenter Roeck
2015-02-26  1:18                                 ` Andrey Volkov
2015-02-27 17:09                             ` Andrey Volkov
2015-02-28  7:53                               ` Guenter Roeck
2015-03-02 14:38                                 ` Andrey Volkov
2015-03-02 14:49                                   ` Guenter Roeck
2015-03-02 15:27                                     ` Andrey Volkov
2015-03-02 17:16                                       ` Guenter Roeck
2015-03-04 10:07                                         ` Andrey Volkov
2015-02-17 19:26 ` [PATCH RFC 2/2] net: dsa: bcm_sf2: implement HW bridging operations Florian Fainelli
2015-02-19  2:48   ` Florian Fainelli
2015-02-19  5:59     ` Guenter Roeck
2015-02-19 17:27       ` Florian Fainelli
2015-02-19 17:46         ` Guenter Roeck
2015-02-19 23:50           ` Florian Fainelli
2015-02-20  0:09             ` Guenter Roeck
2015-02-20  0:51               ` roopa
2015-02-20  1:03                 ` Guenter Roeck
2015-02-20  1:46                   ` roopa
2015-02-20  2:00                     ` Florian Fainelli
2015-02-20  2:41                       ` roopa
2015-02-20  4:05                         ` Guenter Roeck
2015-02-20  4:58                           ` Scott Feldman
2015-02-20  4:59                           ` roopa
2015-02-20  3:20                       ` Andy Gospodarek
2015-02-20  3:53                         ` Viswanath Bandaru
2015-02-20  3:56                         ` Andy Gospodarek
2015-02-20  2:18                     ` Andrew Lunn
2015-02-20  2:51                       ` roopa
2015-02-20  3:52                         ` Andrew Lunn
2015-02-20  4:07                           ` Guenter Roeck
2015-02-20  2:02               ` Andrew Lunn
2015-02-20  3:55                 ` Guenter Roeck
2015-02-20  2:03               ` Florian Fainelli
2015-02-20  2:46                 ` roopa
2015-02-18  0:48 ` [PATCH RFC 0/2] net: dsa: integration with SWITCHDEV for HW bridging Scott Feldman
2015-02-18  1:09   ` Florian Fainelli

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=54EDDB72.1090706@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=andrew@lunn.ch \
    --cc=andrey.volkov@nexvision.fr \
    --cc=cphealy@gmail.com \
    --cc=davem@davemloft.net \
    --cc=f.fainelli@gmail.com \
    --cc=jerome.oufella@savoirfairelinux.com \
    --cc=netdev@vger.kernel.org \
    --cc=vivien.didelot@savoirfairelinux.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.