Lines Matching refs:iph
91 struct iphdr *iph; in tcf_nat() local
118 if (!pskb_may_pull(skb, sizeof(*iph) + noff)) in tcf_nat()
121 iph = ip_hdr(skb); in tcf_nat()
124 addr = iph->saddr; in tcf_nat()
126 addr = iph->daddr; in tcf_nat()
130 !skb_clone_writable(skb, sizeof(*iph) + noff) && in tcf_nat()
138 iph = ip_hdr(skb); in tcf_nat()
140 iph->saddr = new_addr; in tcf_nat()
142 iph->daddr = new_addr; in tcf_nat()
144 csum_replace4(&iph->check, addr, new_addr); in tcf_nat()
145 } else if ((iph->frag_off & htons(IP_OFFSET)) || in tcf_nat()
146 iph->protocol != IPPROTO_ICMP) { in tcf_nat()
150 ihl = iph->ihl * 4; in tcf_nat()
153 switch (iph->frag_off & htons(IP_OFFSET) ? 0 : iph->protocol) { in tcf_nat()
202 if (!pskb_may_pull(skb, ihl + sizeof(*icmph) + sizeof(*iph) + in tcf_nat()
207 iph = (void *)(icmph + 1); in tcf_nat()
209 addr = iph->daddr; in tcf_nat()
211 addr = iph->saddr; in tcf_nat()
218 sizeof(*iph) + noff) && in tcf_nat()
223 iph = (void *)(icmph + 1); in tcf_nat()
230 iph->daddr = new_addr; in tcf_nat()
232 iph->saddr = new_addr; in tcf_nat()