ptr = ipv6_skip_exthdr(skb, ptr, &nexthdr, len); 
ptr = ipv6_skip_exthdr(skb, ptr, &nexthdr); 
static int is_ineligible(struct sk_buff *skb){	int ptr = (u8*)(skb->nh.ipv6h+1) - skb->data;	int len = skb->len - ptr;	__u8 nexthdr = skb->nh.ipv6h->nexthdr;	if (len < 0)		return 1;	ptr = ipv6_skip_exthdr(skb, ptr, &nexthdr, len);	if (ptr < 0)		return 0;	if (nexthdr == IPPROTO_ICMPV6) {		u8 _type, *tp;		tp = skb_header_pointer(skb,			ptr+offsetof(struct icmp6hdr, icmp6_type),			sizeof(_type), &_type);		if (tp == NULL ||		    !(*tp & ICMPV6_INFOMSG_MASK))			return 1;	}	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/0d3d077cd4f1154e63a9858e47fe3fb1ad0c03e5/icmp.c/clean/net/ipv6/icmp.c