Lines Matching refs:iph
90 struct iphdr *iph; in tcf_nat() local
117 if (!pskb_may_pull(skb, sizeof(*iph) + noff)) in tcf_nat()
120 iph = ip_hdr(skb); in tcf_nat()
123 addr = iph->saddr; in tcf_nat()
125 addr = iph->daddr; in tcf_nat()
129 !skb_clone_writable(skb, sizeof(*iph) + noff) && in tcf_nat()
137 iph = ip_hdr(skb); in tcf_nat()
139 iph->saddr = new_addr; in tcf_nat()
141 iph->daddr = new_addr; in tcf_nat()
143 csum_replace4(&iph->check, addr, new_addr); in tcf_nat()
144 } else if ((iph->frag_off & htons(IP_OFFSET)) || in tcf_nat()
145 iph->protocol != IPPROTO_ICMP) { in tcf_nat()
149 ihl = iph->ihl * 4; in tcf_nat()
152 switch (iph->frag_off & htons(IP_OFFSET) ? 0 : iph->protocol) { in tcf_nat()
200 if (!pskb_may_pull(skb, ihl + sizeof(*icmph) + sizeof(*iph) + in tcf_nat()
205 iph = (void *)(icmph + 1); in tcf_nat()
207 addr = iph->daddr; in tcf_nat()
209 addr = iph->saddr; in tcf_nat()
216 sizeof(*iph) + noff) && in tcf_nat()
221 iph = (void *)(icmph + 1); in tcf_nat()
228 iph->daddr = new_addr; in tcf_nat()
230 iph->saddr = new_addr; in tcf_nat()