From: Vlad Yasevich <vyasevic@redhat.com>
To: Stephen Hemminger <stephen@networkplumber.org>,
Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Cc: "David S . Miller" <davem@davemloft.net>,
netdev@vger.kernel.org,
Toshiaki Makita <toshiaki.makita1@gmail.com>
Subject: Re: [PATCH v2 net 2/4] bridge: Apply the PVID to priority-tagged frames
Date: Wed, 16 Oct 2013 12:16:09 -0400 [thread overview]
Message-ID: <525EBBC9.8050809@redhat.com> (raw)
In-Reply-To: <20131016085537.1cbe9c37@nehalam.linuxnetplumber.net>
On 10/16/2013 11:55 AM, Stephen Hemminger wrote:
> On Wed, 16 Oct 2013 17:07:14 +0900
> Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp> wrote:
>
>> IEEE 802.1Q says that when we receive priority-tagged (VID 0) frames
>> use the PVID for the port as its VID.
>> (See IEEE 802.1Q-2011 6.9.1 and Table 9-2)
>>
>> Apply the PVID to not only untagged frames but also priority-tagged frames.
>>
>> Signed-off-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
>> ---
>> net/bridge/br_vlan.c | 27 ++++++++++++++++++++-------
>> 1 file changed, 20 insertions(+), 7 deletions(-)
>>
>> diff --git a/net/bridge/br_vlan.c b/net/bridge/br_vlan.c
>> index 21b6d21..5a9c44a 100644
>> --- a/net/bridge/br_vlan.c
>> +++ b/net/bridge/br_vlan.c
>> @@ -189,6 +189,8 @@ out:
>> bool br_allowed_ingress(struct net_bridge *br, struct net_port_vlans *v,
>> struct sk_buff *skb, u16 *vid)
>> {
>> + int err;
>> +
>> /* If VLAN filtering is disabled on the bridge, all packets are
>> * permitted.
>> */
>> @@ -201,20 +203,31 @@ bool br_allowed_ingress(struct net_bridge *br, struct net_port_vlans *v,
>> if (!v)
>> return false;
>>
>> - if (br_vlan_get_tag(skb, vid)) {
>> + err = br_vlan_get_tag(skb, vid);
>> + if (!*vid) {
>> u16 pvid = br_get_pvid(v);
>
> Ok, but it looks like br_vlan_get_tag() could be cleaner if it just returned
> the tag, and there was another br_vlan_tag_present() function.
I was just thinking about that as well. If we make br_vlan_get_tag()
return either the actual tag (if the packet is tagged), or the pvid
if (untagged/prio_tagged), then we can skp most of this.
>
> Also, does this still work if CONFIG_BRIDGE_VLAN_FILTERING is disabled?
Yes. br_allowed_ingress becomes an inline if the config option is disabled.
-vlad
next prev parent reply other threads:[~2013-10-16 16:16 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-16 8:07 [PATCH v2 net 0/4] bridge: Fix problems around the PVID Toshiaki Makita
2013-10-16 8:07 ` [PATCH v2 net 1/4] bridge: Don't use VID 0 and 4095 in vlan filtering Toshiaki Makita
2013-10-16 15:47 ` Stephen Hemminger
2013-10-16 8:07 ` [PATCH v2 net 2/4] bridge: Apply the PVID to priority-tagged frames Toshiaki Makita
2013-10-16 15:52 ` Vlad Yasevich
2013-10-16 15:55 ` Stephen Hemminger
2013-10-16 16:16 ` Vlad Yasevich [this message]
2013-10-17 12:14 ` Toshiaki Makita
2013-10-17 17:39 ` Vlad Yasevich
2013-10-18 14:01 ` Toshiaki Makita
2013-10-16 8:07 ` [PATCH v2 net 3/4] bridge: Fix the way the PVID is referenced Toshiaki Makita
2013-10-16 8:07 ` [PATCH v2 net 4/4] bridge: Fix updating FDB entries when the PVID is applied Toshiaki Makita
2013-10-16 15:57 ` Stephen Hemminger
2013-10-16 16:11 ` Vlad Yasevich
2013-10-17 12:52 ` Toshiaki Makita
2013-10-18 20:03 ` [PATCH v2 net 0/4] bridge: Fix problems around the PVID 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=525EBBC9.8050809@redhat.com \
--to=vyasevic@redhat.com \
--cc=davem@davemloft.net \
--cc=makita.toshiaki@lab.ntt.co.jp \
--cc=netdev@vger.kernel.org \
--cc=stephen@networkplumber.org \
--cc=toshiaki.makita1@gmail.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.