Subject: Re: [PATCH 3/3] bridge; Automatically filter vlans configured on top of bridge

From: Toshiaki Makita <[email-masked]>
Date: Tue, 16 Sep 2014 23:39:53 +0900

(14/09/16 (火) 22:31), Vlad Yasevich wrote:
> On 09/16/2014 07:28 AM, Toshiaki Makita wrote:
>> On 2014/09/16 0:19, Vlad Yasevich wrote:
>>> On 09/14/2014 11:39 AM, Toshiaki Makita wrote:
>>>> (14/09/13 (土) 5:44), Vladislav Yasevich wrote:
>>>>> If the user configures vlan devices on top of the bridge,
>>>>> automatically set up filter entries for it as long as
>>>>> bridge vlan protocol matches that of the vlan.
>>>>> This allows the user to atomatically receive vlan traffic
>>>>> for the vlans that are convifgured.
>>>>
>>>> Changing br->vlan_proto seems to cause inconsistency between vlan
>>>> interfaces and filter settings.
>>>> Can we automatically change filters when setting vlan_proto?
>>>>
>>>
>>> I thought we already do that in br_vlan_set_proto()?  Nothing
>>> here introduces any new kinds of issue with that code.
>>
>> I'm referring to a case like this:
>> 1. create br0.10 (802.1ad)
>> 2. change br->vlan_proto into 88a8
>>
>> When creating br0.10 (1), br->vlan_proto is 8100 and different from
>> protocol of br0.10, so it is ignored by br_vlan_rx_add_vid().
>> After changing br->vlan_proto (2), we might expect vlan 10 is not
>> filtered on br0, but it will be filtered.
> 
> Ok, I see what you mean.  This one is a bit tough.  Our options are:
>   1) Return an error when configuring br0.10.  This might break user-space.  Not good.
>   2) Ignore protocol when crating the filter.  This is not good either as the user
>      may not switch the bridge vlan_proto value and we'd end up with a wrong filter.
>   3) Re-implement .1ad support per-vlan instead of per-bridge.
> 
> You see another other alternatives?

We might be able to configure filterings on changing vlan_proto.
4) Memorize different protocol's filtering requests in
br_vlan_rx_add_vid() and use them when switching vlan_proto.
5) Scan vlan devices on bridge device when changing vlan_proto.

Thanks,
Toshiaki Makita