[ovs-dev] [v6tos] flow: flow_extract() improperly parses IPv6 TOS bits.

Justin Pettit jpettit at nicira.com
Wed Nov 16 04:57:09 UTC 2011


It's weird that this bug has been in there so long and been undetected.  In any case, the fix looks good to me.  Thanks for tracking it down.

--Justin


On Nov 15, 2011, at 6:43 PM, Ethan Jackson wrote:

> This problem could cause userspace to automatically evict IPv6
> flows from the datapath which had TOS bits set.
> 
> Bug #8323.
> ---
> lib/flow.c |    2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/lib/flow.c b/lib/flow.c
> index 8b03e76..3f0bea5 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;
> -- 
> 1.7.7.1
> 
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev




More information about the dev mailing list