Lines Matching refs:ip6
127 struct ipv6hdr* ip6 = is_ethernet ? (void*)(eth + 1) : data; local
130 if (data + l2_header_size + sizeof(*ip6) > data_end) return TC_ACT_OK;
136 if (ip6->version != 6) TC_PUNT(INVALID_IP_VERSION);
140 if (ip6->hop_limit <= 1) TC_PUNT(LOW_TTL);
144 if (ip6->nexthdr == IPPROTO_TCP) {
145 struct tcphdr* tcph = (void*)(ip6 + 1);
148 if (data + l2_header_size + sizeof(*ip6) + sizeof(*tcph) > data_end)
156 __be32 src32 = ip6->saddr.s6_addr32[0];
162 __be32 dst32 = ip6->daddr.s6_addr32[0];
168 if (!downstream && (src32 == dst32) && (ip6->saddr.s6_addr32[1] == ip6->daddr.s6_addr32[1]))
173 .neigh6 = ip6->daddr,
240 ip6 = (void*)(eth + 1);
243 if (data + sizeof(struct ethhdr) + sizeof(*ip6) > data_end) {
256 uint8_t old_hl = ip6->hop_limit;
257 --ip6->hop_limit;
258 uint8_t new_hl = ip6->hop_limit;