Lines Matching refs:ip
117 static bool ipv4_is_fragment(const struct iphdr *ip) in ipv4_is_fragment() argument
119 uint16_t frag_off = ip->frag_off & bpf_htons(IP_OFFSET_MASK); in ipv4_is_fragment()
120 return (ip->frag_off & bpf_htons(IP_MF)) != 0 || frag_off > 0; in ipv4_is_fragment()
403 encap_gre->ip.protocol = IPPROTO_GRE; in forward_with_gre()
404 encap_gre->ip.daddr = next_hop->s_addr; in forward_with_gre()
405 encap_gre->ip.saddr = ENCAPSULATION_IP; in forward_with_gre()
406 encap_gre->ip.tot_len = in forward_with_gre()
407 bpf_htons(bpf_ntohs(encap_gre->ip.tot_len) + delta); in forward_with_gre()
410 pkt_ipv4_checksum((void *)&encap_gre->ip); in forward_with_gre()
439 uint32_t old_saddr = encap->ip.saddr; in forward_to_next_hop()
440 encap->ip.saddr = encap->ip.daddr; in forward_to_next_hop()
441 encap->ip.daddr = next_hop->s_addr; in forward_to_next_hop()
447 const uint64_t off = offsetof(typeof(*encap), ip.check); in forward_to_next_hop()
872 if (encap->ip.ihl != 5) in cls_redirect()
876 if (encap->ip.daddr != ENCAPSULATION_IP || in cls_redirect()
877 encap->ip.protocol != IPPROTO_UDP) in cls_redirect()
887 if (ipv4_is_fragment((void *)&encap->ip)) { in cls_redirect()