From: Florian Fainelli <f.fainelli@gmail.com>
To: sfeldma@gmail.com, netdev@vger.kernel.org
Cc: jiri@resnulli.us, makita.toshiaki@lab.ntt.co.jp,
roopa@cumulusnetworks.com, jhs@mojatatu.com,
simon.horman@netronome.com
Subject: Re: [PATCH net-next] bridge: use either ndo VLAN ops or switchdev VLAN ops to install MASTER vlans
Date: Thu, 11 Jun 2015 12:39:19 -0700 [thread overview]
Message-ID: <5579E3E7.30005@gmail.com> (raw)
In-Reply-To: <1434050122-26405-1-git-send-email-sfeldma@gmail.com>
On 11/06/15 12:15, sfeldma@gmail.com wrote:
> From: Scott Feldman <sfeldma@gmail.com>
>
> To maintain backward compatibility with the existing iproute2 "bridge vlan"
> command, let bridge's setlink/dellink handler call into either the port
> driver's 8021q ndo ops or the port driver's bridge_setlink/dellink ops.
>
> This allows port driver to choose 8021q ops or the newer
> bridge_setlink/dellink ops when implementing VLAN add/del filtering on the
> device. The iproute "bridge vlan" command does not need to be modified.
>
> To summarize using the "bridge vlan" command examples, we have:
>
> 1) bridge vlan add|del vid VID dev DEV
>
> Here iproute2 sets MASTER flag. Bridge's bridge_setlink/dellink is called.
> Vlan is set on bridge for port. If port driver implements ndo 8021q ops,
> call those to port driver can install vlan filter on device. Otherwise, if
> port driver implements bridge_setlink/dellink ops, call those to install
> vlan filter to device. This option only works if port is bridged.
>
> 2) bridge vlan add|del vid VID dev DEV master
>
> Same as 1)
>
> 3) bridge vlan add|del vid VID dev DEV self
>
> Bridge's bridge_setlink/dellink isn't called. Port driver's
> bridge_setlink/dellink is called, if implemented. This option works if
> port is bridged or not. If port is not bridged, a VLAN can still be
> added/deleted to device filter using this variant.
>
> 4) bridge vlan add|del vid VID dev DEV master self
>
> This is a combination of 1) and 3), but will only work if port is bridged.
Woah, I now realize how confused I was with how it is meant to be used,
still am actually.
>
> Signed-off-by: Scott Feldman <sfeldma@gmail.com>
> ---
[snip]
> +static int __vlan_vid_add(struct net_device *dev, struct net_bridge *br,
> + u16 vid, u16 flags)
> +{
> + const struct net_device_ops *ops = dev->netdev_ops;
> + struct switchdev_obj vlan_obj = {
> + .id = SWITCHDEV_OBJ_PORT_VLAN,
> + .u.vlan = {
> + .flags = flags,
> + .vid_start = vid,
> + .vid_end = vid,
> + },
> + };
> + int err;
> +
> + /* If driver uses VLAN ndo ops, use 8021q to install vid
> + * on device, otherwise try switchdev ops to install vid.
> + */
> +
> + if (ops->ndo_vlan_rx_add_vid) {
> + err = vlan_vid_add(dev, br->vlan_proto, vid);
> + } else {
Do we need to be more restrictive here and make sure that we did not set
BRIDGE_VLAN_INFO_UNTAGGED or BRIDGE_VLAN_INFO_PVID for this vid since
the legacy 802.1q ndos do not make any distinction and just assume tagged?
--
Florian
next prev parent reply other threads:[~2015-06-11 19:40 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-11 19:15 [PATCH net-next] bridge: use either ndo VLAN ops or switchdev VLAN ops to install MASTER vlans sfeldma
2015-06-11 19:18 ` Scott Feldman
2015-06-11 19:39 ` Florian Fainelli [this message]
2015-06-11 19:58 ` Scott Feldman
2015-06-12 0:20 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5579E3E7.30005@gmail.com \
--to=f.fainelli@gmail.com \
--cc=jhs@mojatatu.com \
--cc=jiri@resnulli.us \
--cc=makita.toshiaki@lab.ntt.co.jp \
--cc=netdev@vger.kernel.org \
--cc=roopa@cumulusnetworks.com \
--cc=sfeldma@gmail.com \
--cc=simon.horman@netronome.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.