Richard Gobert wrote: > Currently there is no test which checks that IPv6 extension header packets > successfully coalesce. This commit adds a test, which verifies two IPv6 > packets with HBH extension headers do coalesce, and another test which > checks that packets with different extension header data do not coalesce > in GRO. > > I changed the receive socket filter to accept a packet with one extension > header. This change exposed a bug in the fragment test -- the old BPF did > not accept the fragment packet. I updated correct_num_packets in the > fragment test accordingly. > > Signed-off-by: Richard Gobert <richardbgobert@xxxxxxxxx> Reviewed-by: Willem de Bruijn <willemb@xxxxxxxxxx> Thanks for adding the second test. > +static void add_ipv6_exthdr(void *buf, void *optpkt, __u8 exthdr_type, char *ext_payload) > +{ > + struct ipv6_opt_hdr *exthdr = (struct ipv6_opt_hdr *)(optpkt + tcp_offset); > + struct ipv6hdr *iph = (struct ipv6hdr *)(optpkt + ETH_HLEN); > + char *exthdr_payload_start = (char *)(exthdr + 1); > + > + exthdr->hdrlen = 0; > + exthdr->nexthdr = IPPROTO_TCP; > + > + if (ext_payload) > + memcpy(exthdr_payload_start, ext_payload, MIN_EXTHDR_SIZE - sizeof(*exthdr)); minor nit, in case this gets respun: ext_payload is always true.