Lines Matching refs:ip6
150 struct ipv6hdr* ip6 = is_ethernet ? (void*)(eth + 1) : data; local
153 if (data + l2_header_size + sizeof(*ip6) > data_end) return TC_ACT_PIPE;
159 if (ip6->version != 6) TC_PUNT(INVALID_IPV6_VERSION);
163 if (ip6->hop_limit <= 1) TC_PUNT(LOW_TTL);
167 if (ip6->nexthdr == IPPROTO_TCP) {
168 struct tcphdr* tcph = (void*)(ip6 + 1);
171 if (data + l2_header_size + sizeof(*ip6) + sizeof(*tcph) > data_end)
179 __be32 src32 = ip6->saddr.s6_addr32[0];
185 __be32 dst32 = ip6->daddr.s6_addr32[0];
191 if (!stream.down && (src32 == dst32) && (ip6->saddr.s6_addr32[1] == ip6->daddr.s6_addr32[1]))
196 .neigh6 = ip6->daddr,
202 .src64 = *(uint64_t*)&(ip6->saddr.s6_addr32[0]),
265 ip6 = (void*)(eth + 1);
268 if (data + sizeof(struct ethhdr) + sizeof(*ip6) > data_end) {
281 uint8_t old_hl = ip6->hop_limit;
282 --ip6->hop_limit;
283 uint8_t new_hl = ip6->hop_limit;