On Fri, Oct 25, 2013 at 9:13 AM, Jarno Rajahalme <jrajaha...@nicira.com> wrote: > >> On Oct 25, 2013, at 9:06 AM, Jesse Gross <je...@nicira.com> wrote: >> >>> On Thu, Oct 24, 2013 at 9:01 AM, Jarno Rajahalme <jrajaha...@nicira.com> >>> wrote: >>> diff --git a/datapath/flow_netlink.c b/datapath/flow_netlink.c >>> index 515a9f6..fc6f42e 100644 >>> --- a/datapath/flow_netlink.c >>> +++ b/datapath/flow_netlink.c >>> @@ -154,8 +155,10 @@ static bool match_validate(const struct sw_flow_match >>> *match, >>> >>> if (match->key->ip.proto == IPPROTO_TCP) { >>> key_expected |= 1ULL << OVS_KEY_ATTR_TCP; >>> - if (match->mask && >>> (match->mask->key.ip.proto == 0xff)) >>> + if (match->mask && >>> (match->mask->key.ip.proto == 0xff)) { >>> mask_allowed |= 1ULL << >>> OVS_KEY_ATTR_TCP; >>> + mask_allowed |= 1ULL << >>> OVS_KEY_ATTR_TCP_FLAGS; >> >> One thing that I should mention about this is that it doesn't require >> the TCP_FLAGS key to be present if the protocol indicates that the >> protocol is TCP. Requiring it would be the most consistent with the >> rest of our netlink interface. However, I'm not sure that it's really >> necessary any more now that we don't require exact match on all fields >> with megaflows. > > I made it that way on purpose for compatibility with older userspaces. Maybe > this is worth a comment, though.
I don't think that it's necessary from a compatibility point of view because older userspace will just echo back the fields that they received. The protocol is supposed to be able to handle the addition of new fields like this. This will kill performance on those versions though. I thought that I had gone through it before and decided that this wouldn't be a problem but I can't remember what I was thinking now. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev