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

Ethan Jackson ethan at nicira.com
Wed Nov 16 05:08:25 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.

It only happens on IPv6 traffic with the tos bit set which is not
super common (I think).

Ethan

>
> --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