On Tue, May 17, 2016 at 04:51:08PM +0200, Jiri Benc wrote:
> On Wed,  4 May 2016 16:36:31 +0900, Simon Horman wrote:
> > +   /* Packets from user space for execution only have metadata key
> > +    * attributes.  OVS_KEY_ATTR_PACKET_ETHERTYPE is then used to specify
> > +    * the starting layer of the packet.  Packets with Ethernet headers
> > +    * have this attribute set to 0
> > +    */
> > +   if (*attrs & (1ULL << OVS_KEY_ATTR_PACKET_ETHERTYPE)) {
> > +           __be16 eth_type;
> > +
> > +           if (is_mask) {
> > +                   /* Always exact match packet EtherType */
> > +                   eth_type = htons(0xffff);
> > +           } else {
> > +                   eth_type = 
> > nla_get_be16(a[OVS_KEY_ATTR_PACKET_ETHERTYPE]);
> > +                   is_layer3 = ((eth_type == htons(ETH_P_IP)) ||
> > +                                (eth_type == htons(ETH_P_IPV6)));
> 
> Unknown types need to be rejected, not treated as layer2, otherwise we
> may run into problems later (with combination of this kernel + newer
> user space) when we add more types, such as ETH_P_NSH.

I believe this is fixed by the following patch.

Possibly it makes sense to squash that patch into and earlier patches.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to