On 06/12/14 at 09:04am, Jesse Gross wrote:
> On Wed, Jun 11, 2014 at 11:06 PM, Avinash <avinashand...@gmail.com> wrote:
> > On 6/11/14, Jesse Gross <je...@nicira.com> wrote:
> >> On Wed, Jun 11, 2014 at 7:26 AM, Avinash <avinashand...@gmail.com> wrote:
> >>> On 6/10/14, Thomas Graf <tg...@suug.ch> wrote:
> >>>> On 06/10/14 at 07:03pm, Avinash wrote:
> >>>>> @@ -471,10 +497,14 @@ int ovs_flow_extract(struct sk_buff *skb, u16
> >>>>> in_port, struct sw_flow_key *key)
> >>>>>
> >>>>>         if (vlan_tx_tag_present(skb))
> >>>>>                 key->eth.tci = htons(vlan_get_tci(skb));
> >>>>> -       else if (eth->h_proto == htons(ETH_P_8021Q))
> >>>>> +        else if (eth->h_proto == htons(ETH_P_8021Q) ||
> >>>>> +                 eth->h_proto == htons(ETH_P_8021AD))
> >>>>>                 if (unlikely(parse_vlan(skb, key)))
> >>>>>                         return -ENOMEM;
> >>>>>
> >>>>> +        if (unlikely(parse_remaining_vlans(skb)))
> >>>>> +                return -ENOMEM;
> >>>>
> >>>> How about adding the functionality of parse_remaining_vlans() to
> >>>> parse_vlan() directly instead of checking every single packet?
> >>>>
> >>>
> >>> Combining parse_remaining_vlans() with the parse_vlan() might not skip
> >>> the inner VLANs present in the packet when the execution enters the
> >>> condition vlan_tx_tag_present().
> >>
> >> You shouldn't blindly skip vlan tags anyways. This patch also
> >> misreports EtherTypes in Netlink since it doesn't actually store them
> >> in the flow. You need to find a cleaner approach that will work for
> >> all situations and be possible to extend in the future.
> >>
> >
> > Storing the inner vlans in the flow might not be useful as these are not
> > processed to the user space. Userspace makes decision considering only
> > the outer vlan. Also for supporting stacked VLANs (2 or more vlans), storing
> > may requires an array of vlans.
> >
> > Do you see any issue storing only the outer VLAN in the flow ?
> 
> It's fine to only look at the outer tag, that's what is done today.
> What's not fine is parsing the packet and throwing the information
> away which you have done with both the VLAN TPI and further tags. At a
> minimum, this changes existing behavior and makes it difficult to
> extend in the future, which is why I said that you need to think this
> through more.

I think it would make sense to separate out the ETH_P_8021AD tag
matching from the patch since that is of obvious good value and then
discuss the stacked tag behaviour separately.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to