Is the lack of support for bitwise masking if the ethertype a kernel limitation or a userspace one? If it's a userspace limitation I think we should handle the case where it could be bitwise. If it's a kernel limitation, I think the current patch is fine.
Acked-by: Ethan Jackson <et...@nicira.com> On Thu, Jun 27, 2013 at 6:16 PM, Justin Pettit <jpet...@nicira.com> wrote: > When converting the VLAN from a flow to an ODP key, the processing logic > would always store the VLAN ethertype. However, when handling a mask, > it should be a mask, not an ethertype. And since we don't support > bit-wise masking of the ethertype, just make it an exact-match mask. > > Signed-off-by: Justin Pettit <jpet...@nicira.com> > --- > lib/odp-util.c | 6 +++++- > 1 files changed, 5 insertions(+), 1 deletions(-) > > diff --git a/lib/odp-util.c b/lib/odp-util.c > index 7724be4..5be8118 100644 > --- a/lib/odp-util.c > +++ b/lib/odp-util.c > @@ -2285,7 +2285,11 @@ odp_flow_key_from_flow__(struct ofpbuf *buf, const > struct flow *data, > memcpy(eth_key->eth_dst, data->dl_dst, ETH_ADDR_LEN); > > if (flow->vlan_tci != htons(0) || flow->dl_type == htons(ETH_TYPE_VLAN)) > { > - nl_msg_put_be16(buf, OVS_KEY_ATTR_ETHERTYPE, htons(ETH_TYPE_VLAN)); > + if (is_mask) { > + nl_msg_put_be16(buf, OVS_KEY_ATTR_ETHERTYPE, htons(UINT16_MAX)); > + } else { > + nl_msg_put_be16(buf, OVS_KEY_ATTR_ETHERTYPE, > htons(ETH_TYPE_VLAN)); > + } > nl_msg_put_be16(buf, OVS_KEY_ATTR_VLAN, data->vlan_tci); > encap = nl_msg_start_nested(buf, OVS_KEY_ATTR_ENCAP); > if (flow->vlan_tci == htons(0)) { > -- > 1.7.5.4 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev X-CudaMail-Whitelist-To: dev@openvswitch.org _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev