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
[email protected]
http://openvswitch.org/mailman/listinfo/dev