From: Nikolay Aleksandrov <razor@xxxxxxxxxxxxx> Date: Tue, 28 Jul 2015 13:10:44 +0200 > From: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx> > > Since mdb states were introduced when deleting an entry the state was > left as it was set in the delete request from the user which leads to > the following output when doing a monitor (for example): > $ bridge mdb add dev br0 port eth3 grp 239.0.0.1 permanent > (monitor) dev br0 port eth3 grp 239.0.0.1 permanent > $ bridge mdb del dev br0 port eth3 grp 239.0.0.1 permanent > (monitor) dev br0 port eth3 grp 239.0.0.1 temp > ^^^ > Note the "temp" state in the delete notification which is wrong since > the entry was permanent, the state in a delete is always reported as > "temp" regardless of the real state of the entry. > > After this patch: > $ bridge mdb add dev br0 port eth3 grp 239.0.0.1 permanent > (monitor) dev br0 port eth3 grp 239.0.0.1 permanent > $ bridge mdb del dev br0 port eth3 grp 239.0.0.1 permanent > (monitor) dev br0 port eth3 grp 239.0.0.1 permanent > > There's one important note to make here that the state is actually not > matched when doing a delete, so one can delete a permanent entry by > stating "temp" in the end of the command, I've chosen this fix in order > not to break user-space tools which rely on this (incorrect) behaviour. > > So to give an example after this patch and using the wrong state: > $ bridge mdb add dev br0 port eth3 grp 239.0.0.1 permanent > (monitor) dev br0 port eth3 grp 239.0.0.1 permanent > $ bridge mdb del dev br0 port eth3 grp 239.0.0.1 temp > (monitor) dev br0 port eth3 grp 239.0.0.1 permanent > > Note the state of the entry that got deleted is correct in the > notification. > > Signed-off-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx> > Fixes: ccb1c31a7a87 ("bridge: add flags to distinguish permanent mdb entires") Applied and queued up for -stable, thanks.