On Thu, May 9, 2013 at 8:24 AM, Ken Ajiro <aj...@mxw.nes.nec.co.jp> wrote: > * A fix or workaround, if you have one. > > Modify parse_ipv6() at ovs/lib/flow.c as: > > --------- > *** flow.c 2012-12-10 15:11:18.000000000 +0900 > --- flow.c.new 2013-05-10 00:13:08.000000000 +0900 > *************** > *** 202,214 **** > return EINVAL; > } > > /* We only process the first fragment. */ > if (frag_hdr->ip6f_offlg != htons(0)) { > ! if ((frag_hdr->ip6f_offlg & IP6F_OFF_MASK) == htons(0)) { > ! flow->nw_frag = FLOW_NW_FRAG_ANY; > ! } else { > flow->nw_frag |= FLOW_NW_FRAG_LATER; > nexthdr = IPPROTO_FRAGMENT; > break; > } > } > --- 202,213 ---- > return EINVAL; > } > > /* We only process the first fragment. */ > if (frag_hdr->ip6f_offlg != htons(0)) { > ! flow->nw_frag = FLOW_NW_FRAG_ANY; > ! if ((frag_hdr->ip6f_offlg & IP6F_OFF_MASK) != htons(0)) { > flow->nw_frag |= FLOW_NW_FRAG_LATER; > nexthdr = IPPROTO_FRAGMENT; > break; > } > } > --------- > > In original code, FLOW_NW_FRAG_LATER is specified alone but > it looks like that it should be specified together with FLOW_NW_FRAG_ANY.
Thank you for the detailed bug report. The fix looks correct to me, can you please submit it as a formal patch? _______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss