On Tue, May 29, 2018 at 05:37:30PM +0300, Petr Machata wrote:
> Ilias Apalodimas <ilias.apalodi...@linaro.org> writes:
> 
> >> diff --git a/drivers/net/ethernet/rocker/rocker_main.c 
> >> b/drivers/net/ethernet/rocker/rocker_main.c
> >> index e73e4fe..aeafdb9 100644
> >> --- a/drivers/net/ethernet/rocker/rocker_main.c
> >> +++ b/drivers/net/ethernet/rocker/rocker_main.c
> >> @@ -1632,6 +1632,9 @@ rocker_world_port_obj_vlan_add(struct rocker_port 
> >> *rocker_port,
> >>  {
> >>    struct rocker_world_ops *wops = rocker_port->rocker->wops;
> >>  
> >> +  if (netif_is_bridge_master(vlan->obj.orig_dev))
> >> +          return -EOPNOTSUPP;
> >> +
> > What will happen to the "bridge vlan add dev br0 vid X pvid untagged self" 
> > when
> > the lower level (the driver) returns -EOPNOTSUPP? Will it avoid adding a 
> > vlan on
> > the bridge ?
> 
> No, it will still do it. The reasons are:
> 
> - that's what currently happens anyway: none of the drivers has any
>   support, yet the bridge logic is done
> 
> - -EOPNOTSUPP is what switchdev_port_obj_*() return if switchdev is not
>   compiled in
> 
> In order to suppress the setting, return e.g. -EINVAL:
> 
> # bridge vlan add dev br vid 111 self
> RTNETLINK answers: Invalid argument
> # bridge vlan show dev br
> port    vlan ids
> br       1 PVID Egress Untagged
> 
> Thanks,
> Petr
Ok that's perfect then. As i mentioned it's really useful for a use case i am
doing on a switch that needs it's cpu port configured individually.

Thanks,
Ilias
_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to