From: Ethan Jackson Date: Wed, 16 Nov 2011 02:35:26 +0000 (-0800) Subject: flow: flow_extract() improperly parses IPv6 TOS bits. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=25cfd5cac3ef31c8969db2efb067140cf4e7f08f;p=openvswitch flow: flow_extract() improperly parses IPv6 TOS bits. This problem could cause userspace to automatically evict IPv6 flows from the datapath which had TOS bits set. Bug #8323. --- diff --git a/lib/flow.c b/lib/flow.c index 8b03e76e..3f0bea55 100644 --- a/lib/flow.c +++ b/lib/flow.c @@ -148,7 +148,7 @@ parse_ipv6(struct ofpbuf *packet, struct flow *flow) flow->ipv6_dst = nh->ip6_dst; tc_flow = get_unaligned_be32(&nh->ip6_flow); - flow->nw_tos = ntohl(tc_flow) >> 4; + flow->nw_tos = ntohl(tc_flow) >> 20; flow->ipv6_label = tc_flow & htonl(IPV6_LABEL_MASK); flow->nw_ttl = nh->ip6_hlim; flow->nw_proto = IPPROTO_NONE;