On Wed, Jul 06, 2016 at 07:58:56PM +0200, Simon Horman wrote: [snip]
> --- a/lib/odp-util.c > +++ b/lib/odp-util.c ... > @@ -4614,14 +4623,38 @@ odp_key_to_pkt_metadata(const struct nlattr *key, > size_t key_len, > md->in_port.odp_port = nl_attr_get_odp_port(nla); > wanted_attrs &= ~(1u << OVS_KEY_ATTR_IN_PORT); > break; > + case OVS_KEY_ATTR_ETHERNET: > + wanted_attrs &= ~(1u << OVS_KEY_ATTR_ETHERNET); > + break; > + case OVS_KEY_ATTR_ETHERTYPE: > + ethertype = nl_attr_get_be16(nla); > + wanted_attrs &= ~(1u << OVS_KEY_ATTR_ETHERTYPE); > + break; > + case OVS_KEY_ATTR_IPV4: > + wanted_attrs &= ~(1u << OVS_KEY_ATTR_IPV4); > + break; > + case OVS_KEY_ATTR_IPV6: > + wanted_attrs &= ~(1u << OVS_KEY_ATTR_IPV6); > + break; > default: > break; > } > > if (!wanted_attrs) { > - return; /* Have everything. */ > + break; /* Have everything. */ > } > } > + > + /* OVS_KEY_ATTR_ETHERTYPE present and OVS_KEY_ATTR_ETHERTYPE absent The above line should be: /* OVS_KEY_ATTR_ETHERTYPE present and OVS_KEY_ATTR_ETHERNET absent > + * indicates Layer 3. */ > + if (!(wanted_attrs & (1u << OVS_KEY_ATTR_ETHERTYPE)) && > + wanted_attrs & (1u << OVS_KEY_ATTR_ETHERTYPE)) { The above line should be: wanted_attrs & (1u << OVS_KEY_ATTR_ETHERNET)) { > + md->base_layer = LAYER_3; > + md->packet_ethertype = ethertype; > + } else { > + md->base_layer = LAYER_2; > + } > + > } > > uint32_t ... _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev