Hi Ioana > >> + 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; > >> + } > > > > Am i reading this correct? You only support a single bridge? The > > error message is not very informative. Also, i think you should be > > returning EOPNOTSUPP, indicating the offload is not possible. Linux > > will then do it in software. If it could actually receive/transmit the > > frames.... > > > > Yes, we only support a single bridge.
That is a pretty severe restriction for a device of this class. Some of the very simple switches DSA support have a similar restriction, but in general, most do support multiple bridges. Are there any plans to fix this? Thanks Andrew