From: Justin Pettit Date: Fri, 28 Jun 2013 18:31:48 +0000 (-0700) Subject: flow: Don't assume non-IPv4 is IPv6 for un-wildcarding. X-Git-Tag: sliver-openvswitch-1.10.90-3~4^2~12 X-Git-Url: http://git.onelab.eu/?p=sliver-openvswitch.git;a=commitdiff_plain;h=7f8a65cac1a42e1c8eb1b1f6ebf76b57718befc4 flow: Don't assume non-IPv4 is IPv6 for un-wildcarding. When determinining what fields to un-wildcard for the symmetric L4 hash, don't include the IPv6 address fields if the packet isn't IPv6. Reported-by: Jarno Rajahalme Signed-off-by: Justin Pettit Acked-by: Ethan Jackson --- diff --git a/lib/flow.c b/lib/flow.c index 1a5084b60..d899d260d 100644 --- a/lib/flow.c +++ b/lib/flow.c @@ -795,7 +795,7 @@ flow_mask_hash_fields(const struct flow *flow, struct flow_wildcards *wc, if (flow->dl_type == htons(ETH_TYPE_IP)) { memset(&wc->masks.nw_src, 0xff, sizeof wc->masks.nw_src); memset(&wc->masks.nw_dst, 0xff, sizeof wc->masks.nw_dst); - } else { + } else if (flow->dl_type == htons(ETH_TYPE_IPV6)) { memset(&wc->masks.ipv6_src, 0xff, sizeof wc->masks.ipv6_src); memset(&wc->masks.ipv6_dst, 0xff, sizeof wc->masks.ipv6_dst); }