On Mon, Dec 03, 2012 at 09:28:55AM -0800, Jesse Gross wrote: > On Mon, Dec 3, 2012 at 6:04 AM, Pablo Neira Ayuso <pa...@netfilter.org> wrote: > > On Thu, Nov 29, 2012 at 10:35:45AM -0800, Jesse Gross wrote: > >> @@ -159,9 +162,10 @@ int ipv6_find_hdr(const struct sk_buff *skb, unsigned > >> int *offset, > >> } > >> len = skb->len - start; > >> > >> - while (nexthdr != target) { > > > > If the offset is set as parameter via ipv6_find_hdr, we now are always > > entering the loop even if we found the target header we're looking > > for, before that didn't happen. > > > > Something seems wrong here to me. > > If the target header is a routing header then you might still need to > continue searching because the first one that you see could be empty.
OK, but if it's not a routing header what we're searching for (which seems to be the case of netfilter/IPVS) we waste way more cycles on copying the IPv6 header again and with way more things that are completely useless. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev