On 2016/11/23 0:46, Vivien Didelot wrote: > Hi Florian, > > Florian Fainelli <f.fainelli@xxxxxxxxx> writes: > >> bridge vlan add vid 2 dev br0 self >> -> CPU port gets programmed >> bridge vlan add vid 2 dev port0 >> -> port0 (switch port 0) gets programmed > > Although this is not specific to this patch, I'd like to point out that > this seems not to be the behavior bridge expects. > > The bridge manpage says: > > bridge vlan add - add a new vlan filter entry > ... > > self the vlan is configured on the specified physical device. > Required if the device is the bridge device. > > master the vlan is configured on the software bridge (default). > > So if I'm not mistaken, the switch chip must be programmed only when the > bridge command is called with the "self" attribute. Without it, only > software configuration must be made, like what happens when the driver > returns -EOPNOTSUPP. > > Currently, both commands below program the hardware: > > # bridge vlan add vid 2 dev port0 [master] > # bridge vlan add vid 2 dev port0 [master] self Actually this is intended behavior, which keeps backward compatibility. http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=7f1095394918c7058ff81c96c3bab3a897e97a9d Thanks, Toshiaki Makita