Hello, On Wed, 19 Feb 2014, Hans Schillstrom wrote: > The problem is if icmp6 is not the first header it will not work... > i.e. it can be other headers before icmp and if you have -1 you will not > always get the icmp header. > > > The patch that broke it was: > commit 9195bb8e381d81d5a315f911904cdf0cfcc919b8 > Author: Ansis Atteka <aatteka@xxxxxxxxxx> > > Before there was a > while (nexthdr != target) { > .. > } > > now it's > > do { > .. > } while (!found) > > which doesn't work for ipvs, when target is != -1 > > If you specify a target and it's the first header you should break. > > I need to look deeper into the other users also to see that it doesn't > break anything. > > Ansis, I don't think it will break your patch or ? > > > --- a/net/ipv6/exthdrs_core.c 2014-02-19 16:36:22.031686037 +0100 > +++ b/net/ipv6/exthdrs_core.c 2014-02-19 16:37:28.838082168 +0100 > @@ -211,6 +211,9 @@ int ipv6_find_hdr(const struct sk_buff * > unsigned int hdrlen; > found = (nexthdr == target); > > + if (found && (target > 0)) > + break; > + This is against the goal of the above commit. > if ((!ipv6_ext_hdr(nexthdr)) || nexthdr == NEXTHDR_NONE) > { > if (target < 0) > break; May be above check should be: if (target < 0 || found) break; We have to check some callers with -1, may be some need check for NEXTHDR_NONE, for example, tproxy_tg6_v1(), also the second call in hmark_pkt_set_htuple_ipv6(). Not sure about nft_set_pktinfo_ipv6 and its callers. Regards -- Julian Anastasov <ja@xxxxxx> -- To unsubscribe from this list: send the line "unsubscribe lvs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html