From: Vlad Yasevich <vyasevic@redhat.com>
To: Shmulik Ladkani <shmulik.ladkani@gmail.com>
Cc: netdev@vger.kernel.org, shemminger@vyatta.com,
davem@davemloft.net, or.gerlitz@gmail.com, jhs@mojatatu.com,
mst@redhat.com, erdnetdev@gmail.com, jiri@resnulli.us
Subject: Re: [PATCH net-next V4 03/13] bridge: Validate that vlan is permitted on ingress
Date: Thu, 20 Dec 2012 10:41:28 -0500 [thread overview]
Message-ID: <50D331A8.3080206@redhat.com> (raw)
In-Reply-To: <20121220160713.30cdfc05@pixies.home.jungo.com>
On 12/20/2012 09:07 AM, Shmulik Ladkani wrote:
> Hi Vlad,
>
> On Wed, 19 Dec 2012 12:48:14 -0500 Vlad Yasevich <vyasevic@redhat.com> wrote:
>> +static bool br_allowed_ingress(struct net_bridge_port *p, struct sk_buff *skb)
>> +{
>> + struct net_port_vlan *pve;
>> + u16 vid;
>> +
>> + /* If there are no vlan in the permitted list, all packets are
>> + * permitted.
>> + */
>> + if (list_empty(&p->vlan_list))
>> + return true;
>
> I assumed the default policy would be Drop in such case, otherwise
> leaking between vlan domains is possible.
> Or maybe, ingress policy when port isn't a member of ingress VID should
> be configurable (drop/allow).
We have have to default to allow since we want to retain original bridge
functionality if there is no configuration.
>
>> + vid = br_get_vlan(skb);
>> + pve = nbp_vlan_find(p, vid);
>
> Why search by iterating through NBP's vlan_list?
> You know the VID (hence may fetch the net_bridge_vlan from the hash), so
> why don't you directly consult the net_bridge_vlan's port_bitmap?
It's an alternative... I am betting that this port isn't in too many
vlans and that searching the list might be faster.
>
>> @@ -54,6 +74,9 @@ int br_handle_frame_finish(struct sk_buff *skb)
>> if (!p || p->state == BR_STATE_DISABLED)
>> goto drop;
>>
>> + if (!br_allowed_ingress(p, skb))
>> + goto drop;
>> +
>
> This condition should be also encorporated upon "ingress" at the "bridge
> master port" (that is, early at br_dev_xmit).
> Think of the "bridge master port" as yet another port:
> upon "ingress" (meaning, tx packets from the ip stack), we should
> also enforce any ingress permission rules.
>
I've tried that before and now can't think of a reason why I rejected
it. I'll try to remember...
Thanks
-vlad
> Regards,
> Shmulik
>
next prev parent reply other threads:[~2012-12-20 15:41 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-19 17:48 [PATCH net-next V4 00/13] Add basic VLAN support to bridges Vlad Yasevich
2012-12-19 17:48 ` [PATCH net-next V4 01/13] vlan: wrap hw-acceleration calls in separate functions Vlad Yasevich
2012-12-19 17:48 ` [PATCH net-next V4 02/13] bridge: Add vlan filtering infrastructure Vlad Yasevich
2012-12-20 13:39 ` Shmulik Ladkani
2012-12-20 15:31 ` Vlad Yasevich
2012-12-19 17:48 ` [PATCH net-next V4 03/13] bridge: Validate that vlan is permitted on ingress Vlad Yasevich
2012-12-20 7:27 ` Cong Wang
2012-12-20 14:07 ` Shmulik Ladkani
2012-12-20 15:41 ` Vlad Yasevich [this message]
2012-12-20 16:24 ` Shmulik Ladkani
2012-12-20 16:54 ` Vlad Yasevich
2012-12-20 20:13 ` Shmulik Ladkani
2012-12-21 4:48 ` Shmulik Ladkani
2012-12-19 17:48 ` [PATCH net-next V4 04/13] bridge: Verify that a vlan is allowed to egress on give port Vlad Yasevich
2012-12-20 14:28 ` Shmulik Ladkani
2012-12-19 17:48 ` [PATCH net-next V4 05/13] bridge: Cache vlan in the cb for faster egress lookup Vlad Yasevich
2012-12-19 17:48 ` [PATCH net-next V4 06/13] bridge: Add vlan to unicast fdb entries Vlad Yasevich
2012-12-19 17:48 ` [PATCH net-next V4 07/13] bridge: Add vlan id to multicast groups Vlad Yasevich
2012-12-20 8:05 ` Cong Wang
2012-12-19 17:48 ` [PATCH net-next V4 08/13] bridge: Add netlink interface to configure vlans on bridge ports Vlad Yasevich
2012-12-20 7:48 ` Cong Wang
2012-12-19 17:48 ` [PATCH net-next V4 09/13] bridge: Add vlan support to static neighbors Vlad Yasevich
2012-12-19 17:48 ` [PATCH net-next V4 10/13] bridge: Add the ability to configure untagged vlans Vlad Yasevich
2012-12-19 17:48 ` [PATCH net-next V4 11/13] bridge: Implement untagged vlan handling Vlad Yasevich
2012-12-19 17:48 ` [PATCH net-next V4 12/13] bridge: Dump vlan information from a bridge port Vlad Yasevich
2012-12-19 17:48 ` [PATCH net-next V4 13/13] bridge: Add vlan support for local fdb entries Vlad Yasevich
2012-12-19 22:54 ` [PATCH net-next V4 00/13] Add basic VLAN support to bridges Andrew Collins
2012-12-19 22:58 ` Vlad Yasevich
2012-12-20 10:08 ` Vitalii Demianets
2012-12-20 17:07 ` Stephen Hemminger
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=50D331A8.3080206@redhat.com \
--to=vyasevic@redhat.com \
--cc=davem@davemloft.net \
--cc=erdnetdev@gmail.com \
--cc=jhs@mojatatu.com \
--cc=jiri@resnulli.us \
--cc=mst@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=or.gerlitz@gmail.com \
--cc=shemminger@vyatta.com \
--cc=shmulik.ladkani@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.