Lines Matching refs:ipv6
61 struct ipv6hdr *ipv6;
100 ctx->ipv6 = (struct ipv6hdr *)(ctx->eth + 1);
102 if (ctx->ipv6 + 1 > ctx->data_end)
105 if (ctx->ipv6->version != 6)
108 if (ctx->ipv6->nexthdr != NEXTHDR_TCP)
111 ctx->tcp = (struct tcphdr *)(ctx->ipv6 + 1);
144 ctx->ipv6 = NULL;
148 ctx->ipv6 = (struct ipv6hdr *)(ctx->eth + 1);
149 ctx->tcp = (struct tcphdr *)(ctx->ipv6 + 1);
168 return csum_ipv6_magic(&ctx->ipv6->saddr, &ctx->ipv6->daddr,
192 } else if (ctx->ipv6) {
293 (ctx->ipv6 && ctx->attrs.mss != MSS_LOCAL_IPV6))
328 } else if (ctx->ipv6) {
335 first = (u64)ctx->ipv6->saddr.in6_u.u6_addr8[0] << 32 |
336 ctx->ipv6->daddr.in6_u.u6_addr32[0];
442 } else if (ctx->ipv6) {
443 swap(ctx->ipv6->saddr, ctx->ipv6->daddr);
446 *(__be32 *)ctx->ipv6 = bpf_htonl(0x60000000);
447 ctx->ipv6->payload_len = bpf_htons((long)ctx->ptr32 - (long)ctx->tcp);
448 ctx->ipv6->hop_limit = 64;
471 else if (ctx->ipv6)
472 first = (u64)ctx->ipv6->saddr.in6_u.u6_addr8[0] << 32 |
473 ctx->ipv6->daddr.in6_u.u6_addr32[0];
525 } else if (ctx->ipv6) {
526 __builtin_memcpy(tuple.ipv6.saddr, &ctx->ipv6->saddr, sizeof(tuple.ipv6.saddr));
527 __builtin_memcpy(tuple.ipv6.daddr, &ctx->ipv6->daddr, sizeof(tuple.ipv6.daddr));
528 tuple.ipv6.sport = ctx->tcp->source;
529 tuple.ipv6.dport = ctx->tcp->dest;
530 tuple_size = sizeof(tuple.ipv6);