Vladimir Oltean
2021-Jul-20 14:46 UTC
[Bridge] [PATCH v5 net-next 00/10] Let switchdev drivers offload and unoffload bridge ports at their own convenience
On Tue, Jul 20, 2021 at 05:25:08PM +0300, Ido Schimmel wrote:> If you don't want to change the order, then at least make the > replay/cleanup optional and set it to 'false' for mlxsw. This should > mean that the only change in mlxsw should be adding calls to > switchdev_bridge_port_offload() / switchdev_bridge_port_unoffload() in > mlxsw_sp_bridge_port_create() / mlxsw_sp_bridge_port_destroy(), > respectively.I mean, I could guard br_{vlan,mdb,fdb}_replay() against NULL notifier block pointers, and then make mlxsw pass NULL for both the atomic_nb and blocking_nb. But why? How do you deal with a host-joined mdb that was auto-installed while there was no port under the bridge? How does anyone deal with that? What's optional about it? Why would driver X opt out of it but Y not (apart for the case where driver X does not offload MDBs at all, that I can understand).
Ido Schimmel
2021-Jul-20 14:51 UTC
[Bridge] [PATCH v5 net-next 00/10] Let switchdev drivers offload and unoffload bridge ports at their own convenience
On Tue, Jul 20, 2021 at 02:46:18PM +0000, Vladimir Oltean wrote:> On Tue, Jul 20, 2021 at 05:25:08PM +0300, Ido Schimmel wrote: > > If you don't want to change the order, then at least make the > > replay/cleanup optional and set it to 'false' for mlxsw. This should > > mean that the only change in mlxsw should be adding calls to > > switchdev_bridge_port_offload() / switchdev_bridge_port_unoffload() in > > mlxsw_sp_bridge_port_create() / mlxsw_sp_bridge_port_destroy(), > > respectively. > > I mean, I could guard br_{vlan,mdb,fdb}_replay() against NULL notifier > block pointers, and then make mlxsw pass NULL for both the atomic_nb and > blocking_nb. > > But why? How do you deal with a host-joined mdb that was auto-installed > while there was no port under the bridge?mlxsw does not currently support such entries. It's on my TODO list. When we add support for that, we will also take care of the replay.> How does anyone deal with that? What's optional about it? Why would > driver X opt out of it but Y not (apart for the case where driver X > does not offload MDBs at all, that I can understand).