RE: [PATCH v5 2/6] staging: fsl-dpaa2/ethsw: Add Freescale DPAA2 Ethernet Switch driver

From: Razvan Stefanescu
Date: Tue Mar 13 2018 - 11:20:47 EST




> -----Original Message-----
> From: Andrew Lunn [mailto:andrew@xxxxxxx]
> Sent: Tuesday, March 13, 2018 4:23 PM
> To: Razvan Stefanescu <razvan.stefanescu@xxxxxxx>
> Cc: gregkh@xxxxxxxxxxxxxxxxxxx; devel@xxxxxxxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx; Alexander Graf
> <agraf@xxxxxxx>; arnd@xxxxxxxx; Alexandru Marginean
> <alexandru.marginean@xxxxxxx>; Ruxandra Ioana Ciocoi Radulescu
> <ruxandra.radulescu@xxxxxxx>; Ioana Ciornei <ioana.ciornei@xxxxxxx>;
> Laurentiu Tudor <laurentiu.tudor@xxxxxxx>; stuyoder@xxxxxxxxx
> Subject: Re: [PATCH v5 2/6] staging: fsl-dpaa2/ethsw: Add Freescale DPAA2
> Ethernet Switch driver
>
> > +/* For the moment, only flood setting needs to be updated */
> > +static int port_bridge_join(struct net_device *netdev,
> > + struct net_device *upper_dev)
> > +{
> > + struct ethsw_port_priv *port_priv = netdev_priv(netdev);
> > + struct ethsw_core *ethsw = port_priv->ethsw_data;
> > + int i, err;
> > +
> > + for (i = 0; i < ethsw->sw_attr.num_ifs; i++)
> > + if (ethsw->ports[i]->bridge_dev &&
> > + (ethsw->ports[i]->bridge_dev != upper_dev)) {
> > + netdev_err(netdev,
> > + "Another switch port is connected to %s\n",
> > + ethsw->ports[i]->bridge_dev->name);
> > + return -EINVAL;
> > + }
> > +
> > + /* Enable flooding */
> > + err = ethsw_port_set_flood(port_priv, 1);
> > + if (!err)
> > + port_priv->bridge_dev = upper_dev;
> > +
> > + return err;
> > +}
>
> Hi Razvan
>
> That is not what i was meaning.
>
> brctl addbr br0
> brctl addbr br1
> brctl addif br0 lan0
> brctl addif br0 lan1
> brctl addif br1 lan2
> brctl addif br1 lan3
>
> Is there somewhere in the code which sets the scope for the flooding?
> lan0 can flood to lan1, but it should not flood to lan2 or lan3, since
> they are in a different bridge. I was expecting that
> ethsw_port_set_flood() takes upper_dev, in order to configure which
> ports it should flood to.
>
> Andrew

Hello Andrew,

The current driver implementation uses only a single FDB for the switch,
so it is not possible configure multiple flooding domains to accommodate
ports partitioning.

The configuration that you mentioned will be possible when support for
multiple FDBs in the switch is added. Ports added to the same bridge
will have their flooding domain limited to a specific FDB.

Switch ports partitioning is a feature on the roadmap. I will add this
information to the TODO list.

Best regards,
Razvan Stefanescu