On Sun, May 31, 2015 at 10:06 AM, Guenter Roeck <li...@roeck-us.net> wrote:
> On 05/31/2015 09:48 AM, Scott Feldman wrote:
>>
>> On Fri, May 29, 2015 at 3:42 PM, Guenter Roeck <li...@roeck-us.net> wrote:
>>>
>>> Scott,
>>>
>>>
>>> On 05/28/2015 10:02 PM, Scott Feldman wrote:
>>>>
>>>>
>>>> On Thu, May 28, 2015 at 2:37 PM, Vivien Didelot
>>>> <vivien.dide...@savoirfairelinux.com> wrote:
>>>>>
>>>>>
>>>>> This RFC is based on v4.1-rc3.
>>>>>
>>>>> It is meant to get a glance to the commits responsible to implement the
>>>>> necessary NDOs between DSA and the Marvell 88E6352 switch driver.
>>>>>
>>>>> With this support, I am able to create VLANs with (un)tagged ports,
>>>>> setting
>>>>> their default VID, from a bridge.
>>>>>
>>>>> To create a bridge containing all switch ports, with a VLAN ID 400,
>>>>> swp2
>>>>> and
>>>>> swp3 untagged (pvid), and swp4 tagged, the userspace commands look like
>>>>> this:
>>>>>
>>>>>       ip link add name br0 type bridge
>>>>>       [...]
>>>>>       ip link set dev swp2 up master br0
>>>>>       [...]
>>>>>       bridge vlan add vid 400 pvid untagged dev swp2
>>>>>       bridge vlan add vid 400 pvid untagged dev swp3
>>>>>       bridge vlan add vid 400 dev swp4
>>>>>       [...]
>>>>>       ip link add link br0 name br0.400 type vlan id 400
>>>>>       [...]
>>>>>       bridge vlan add dev br0 vid 400 self
>>>>>
>>>>> The code is currently being rebased to the latest net-next/master.
>>>>>
>>>>> Seems like the way to go now is through switchdev attr getter/setter...
>>>>
>>>>
>>>>
>>>> Indeed, for dsa_slave you should be able to port this to switchdev and
>>>> set your ndo_bridge_setlink/dellink handlers to
>>>> switchdev_port_bridge_setlink/dellink.  (And also implement the
>>>> switchdev ops for vlans).
>>>>
>>>> If you use switchdev_port_bridge_setlink/dellink, you shouldn't need
>>>> to implement ndo_vlan_rx_add_vid/ndo_vlan_rx_kill_vid at all.  The
>>>
>>>
>>>
>>> Those functions are called from net/8021q/vlan_core.c if a vlan is
>>> configured on or removed from an interface. Does that result in a call to
>>> setlink/dellink as well, even if a switch port is not a member of a
>>> bridge group ?
>>
>>
>> No, not if you're using 8021q module for vlan setup on non-bridged
>> ports.  If using 8021q module, you'll need to retain the ndo ops.
>>
>> The alternative to the ndo ops for non-bridged ports is to use the
>> bridge_setlink/dellink interface on self:
>>
>>    bridge vlan add vid VID dev DEV self
>>
>> The would call into DEV port's bridge_setlink to add VID to port.  The
>> driver would setup HW to ingress VID tagged frames and egress VID
>> tagged frames on DEV port.
>>
>
> Hi Scott,
>
> If I understand you correctly, that means we would expect users to
> use bridge commands even on non-bridged dsa ports. I don't think we can
> make this kind of assumption. Users will expect configure VLANs on
> non-bridge ports as they would normally configure VLANs, using the 8021q
> module.
>
> So I guess we'll have to support the ndo ops for dsa.

I think that's fine.  There is flexibility here.  Using the "bridge"
command for non-bridged ports is a little weird.  You'll still need
setlink to get the PVID/untagged flags, for the bridged-port cases, as
was done in the original RFC patch.

I wonder if a new command "vlan" for the iproute2 pkg would be useful?
 It would absorb the vconfig command options, making vconfig obsolete.
Some of vconfig functionality is already in iproute2, for example "ip
link add link ... type vlan ..."

-scott
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to