Re: [PATCH net-next v2 3/7] rocker: rocker_main: Ignore bridge VLAN events

2018-05-29 Thread Ilias Apalodimas
On Tue, May 29, 2018 at 05:37:30PM +0300, Petr Machata wrote:
> Ilias Apalodimas  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
> portvlan 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


Re: [PATCH net-next v2 3/7] rocker: rocker_main: Ignore bridge VLAN events

2018-05-29 Thread Petr Machata
Ilias Apalodimas  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
portvlan ids
br   1 PVID Egress Untagged

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


Re: [PATCH net-next v2 3/7] rocker: rocker_main: Ignore bridge VLAN events

2018-05-29 Thread Ilias Apalodimas
Hi Petr, 

On Mon, May 28, 2018 at 12:50:09PM +0200, Petr Machata wrote:
> Ignore VLAN events where the orig_dev is the bridge device itself.
> 
> Signed-off-by: Petr Machata 
> ---
>  drivers/net/ethernet/rocker/rocker_main.c | 6 ++
>  1 file changed, 6 insertions(+)
> 
> 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 ?

>   if (!wops->port_obj_vlan_add)
>   return -EOPNOTSUPP;
>  
> @@ -1647,6 +1650,9 @@ rocker_world_port_obj_vlan_del(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;
> +
>   if (!wops->port_obj_vlan_del)
>   return -EOPNOTSUPP;
>   return wops->port_obj_vlan_del(rocker_port, vlan);
> -- 
> 2.4.11
> 
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH net-next v2 3/7] rocker: rocker_main: Ignore bridge VLAN events

2018-05-28 Thread Petr Machata
Ignore VLAN events where the orig_dev is the bridge device itself.

Signed-off-by: Petr Machata 
---
 drivers/net/ethernet/rocker/rocker_main.c | 6 ++
 1 file changed, 6 insertions(+)

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;
+
if (!wops->port_obj_vlan_add)
return -EOPNOTSUPP;
 
@@ -1647,6 +1650,9 @@ rocker_world_port_obj_vlan_del(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;
+
if (!wops->port_obj_vlan_del)
return -EOPNOTSUPP;
return wops->port_obj_vlan_del(rocker_port, vlan);
-- 
2.4.11

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel