From: Florian Fainelli <f.fainelli@gmail.com>
To: Andrew Lunn <andrew@lunn.ch>, David Miller <davem@davemloft.net>
Cc: netdev <netdev@vger.kernel.org>,
Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Subject: Re: [PATCH] net: dsa: Don't add vlans when vlan filtering is disabled
Date: Mon, 6 Nov 2017 15:13:19 -0800 [thread overview]
Message-ID: <62a458f9-4b09-5098-ec06-0549812ddcf4@gmail.com> (raw)
In-Reply-To: <1510009464-22145-1-git-send-email-andrew@lunn.ch>
Hi Andrew,
On 11/06/2017 03:04 PM, Andrew Lunn wrote:
> The software bridge can be build with vlan filtering support
> included. However, by default it is turned off. In its turned off
> state, it still passes VLANs via switchev, even though they are not to
> be used. Don't pass these VLANs to the hardware. Only do so when vlan
> filtering is enabled.
Do not we have a possible interface problem here in that we should know
whether VLAN filtering is enabled or not, and in such a case switch
drivers should do the following:
- if VLAN filtering is disabled, accept VLAN programming coming from
DSA, but do not enforce that frames ingress/egressing with an unknown
VID be rejected
- if VLAN filtering is enabled, accept VLAN programming coming from DSA,
enforce that frames ingressing/egressing with an unknown VID should be
rejected
>
> This fixes at least one corner case. There are still issues in other
> corners, such as when vlan_filtering is later enabled.
>
> Signed-off-by: Andrew Lunn <andrew@lunn.ch>
> ---
> net/dsa/port.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/net/dsa/port.c b/net/dsa/port.c
> index bb30b1a7de3a..00d691765b9d 100644
> --- a/net/dsa/port.c
> +++ b/net/dsa/port.c
> @@ -252,7 +252,10 @@ int dsa_port_vlan_add(struct dsa_port *dp,
> .vlan = vlan,
> };
>
> - return dsa_port_notify(dp, DSA_NOTIFIER_VLAN_ADD, &info);
> + if (br_vlan_enabled(dp->bridge_dev))
> + return dsa_port_notify(dp, DSA_NOTIFIER_VLAN_ADD, &info);
> +
> + return 0;
> }
>
> int dsa_port_vlan_del(struct dsa_port *dp,
> @@ -264,7 +267,10 @@ int dsa_port_vlan_del(struct dsa_port *dp,
> .vlan = vlan,
> };
>
> - return dsa_port_notify(dp, DSA_NOTIFIER_VLAN_DEL, &info);
> + if (br_vlan_enabled(dp->bridge_dev))
> + return dsa_port_notify(dp, DSA_NOTIFIER_VLAN_DEL, &info);
> +
> + return 0;
> }
>
> int dsa_port_fixed_link_register_of(struct dsa_port *dp)
>
--
Florian
next prev parent reply other threads:[~2017-11-06 23:13 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-06 23:04 [PATCH] net: dsa: Don't add vlans when vlan filtering is disabled Andrew Lunn
2017-11-06 23:10 ` Andrew Lunn
2017-11-06 23:13 ` Florian Fainelli [this message]
2017-11-06 23:26 ` Andrew Lunn
2017-11-10 5:29 ` 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=62a458f9-4b09-5098-ec06-0549812ddcf4@gmail.com \
--to=f.fainelli@gmail.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=vivien.didelot@savoirfairelinux.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.