Searched refs:iph (Results 1 - 200 of 224) sorted by relevance

12

/linux-4.4.14/include/net/
H A Ddsfield.h15 static inline __u8 ipv4_get_dsfield(const struct iphdr *iph) ipv4_get_dsfield() argument
17 return iph->tos; ipv4_get_dsfield()
27 static inline void ipv4_change_dsfield(struct iphdr *iph,__u8 mask, ipv4_change_dsfield() argument
30 __u32 check = ntohs((__force __be16)iph->check); ipv4_change_dsfield()
33 dsfield = (iph->tos & mask) | value; ipv4_change_dsfield()
34 check += iph->tos; ipv4_change_dsfield()
38 iph->check = (__force __sum16)htons(check); ipv4_change_dsfield()
39 iph->tos = dsfield; ipv4_change_dsfield()
H A Dinet_ecn.h74 static inline int IP_ECN_set_ce(struct iphdr *iph) IP_ECN_set_ce() argument
76 u32 check = (__force u32)iph->check; IP_ECN_set_ce()
77 u32 ecn = (iph->tos + 1) & INET_ECN_MASK; IP_ECN_set_ce()
96 iph->check = (__force __sum16)(check + (check>=0xFFFF)); IP_ECN_set_ce()
97 iph->tos |= INET_ECN_CE; IP_ECN_set_ce()
101 static inline void IP_ECN_clear(struct iphdr *iph) IP_ECN_clear() argument
103 iph->tos &= ~INET_ECN_MASK; IP_ECN_clear()
120 static inline int IP6_ECN_set_ce(struct sk_buff *skb, struct ipv6hdr *iph) IP6_ECN_set_ce() argument
124 if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph))) IP6_ECN_set_ce()
127 from = *(__be32 *)iph; IP6_ECN_set_ce()
129 *(__be32 *)iph = to; IP6_ECN_set_ce()
135 static inline void IP6_ECN_clear(struct ipv6hdr *iph) IP6_ECN_clear() argument
137 *(__be32*)iph &= ~htonl(INET_ECN_MASK << 20); IP6_ECN_clear()
H A Ddst_metadata.h119 const struct iphdr *iph = ip_hdr(skb); ip_tun_rx_dst() local
127 iph->saddr, iph->daddr, iph->tos, iph->ttl, ip_tun_rx_dst()
H A Dip.h261 static inline bool ip_is_fragment(const struct iphdr *iph) ip_is_fragment() argument
263 return (iph->frag_off & htons(IP_MF | IP_OFFSET)) != 0; ip_is_fragment()
272 int ip_decrease_ttl(struct iphdr *iph) ip_decrease_ttl() argument
274 u32 check = (__force u32)iph->check; ip_decrease_ttl()
276 iph->check = (__force __sum16)(check + (check>=0xFFFF)); ip_decrease_ttl()
277 return --iph->ttl; ip_decrease_ttl()
334 void __ip_select_ident(struct net *net, struct iphdr *iph, int segs);
339 struct iphdr *iph = ip_hdr(skb); ip_select_ident_segs() local
341 if ((iph->frag_off & htons(IP_DF)) && !skb->ignore_df) { ip_select_ident_segs()
348 iph->id = htons(inet_sk(sk)->inet_id); ip_select_ident_segs()
351 iph->id = 0; ip_select_ident_segs()
354 __ip_select_ident(net, iph, segs); ip_select_ident_segs()
371 * Equivalent to : flow->v4addrs.src = iph->saddr;
372 * flow->v4addrs.dst = iph->daddr;
375 const struct iphdr *iph) iph_to_flow_copy_v4addrs()
380 memcpy(&flow->addrs.v4addrs, &iph->saddr, sizeof(flow->addrs.v4addrs)); iph_to_flow_copy_v4addrs()
386 const struct iphdr *iph = skb_gro_network_header(skb); inet_gro_compute_pseudo() local
388 return csum_tcpudp_nofold(iph->saddr, iph->daddr, inet_gro_compute_pseudo()
374 iph_to_flow_copy_v4addrs(struct flow_keys *flow, const struct iphdr *iph) iph_to_flow_copy_v4addrs() argument
H A Dip_vs.h89 const struct ipv6hdr *iph = skb_header_pointer( ip_vs_fill_iph_skb_off() local
91 if (!iph) ip_vs_fill_iph_skb_off()
94 iphdr->saddr.in6 = iph->saddr; ip_vs_fill_iph_skb_off()
95 iphdr->daddr.in6 = iph->daddr; ip_vs_fill_iph_skb_off()
108 const struct iphdr *iph = skb_header_pointer( ip_vs_fill_iph_skb_off() local
110 if (!iph) ip_vs_fill_iph_skb_off()
113 iphdr->len = offset + iph->ihl * 4; ip_vs_fill_iph_skb_off()
115 iphdr->protocol = iph->protocol; ip_vs_fill_iph_skb_off()
116 iphdr->saddr.ip = iph->saddr; ip_vs_fill_iph_skb_off()
117 iphdr->daddr.ip = iph->daddr; ip_vs_fill_iph_skb_off()
149 ip_vs_iph_inverse(const struct ip_vs_iphdr *iph) ip_vs_iph_inverse() argument
151 return !!(iph->hdr_flags & IP_VS_HDR_INVERSE); ip_vs_iph_inverse()
155 ip_vs_iph_icmp(const struct ip_vs_iphdr *iph) ip_vs_iph_icmp() argument
157 return !!(iph->hdr_flags & IP_VS_HDR_ICMP); ip_vs_iph_icmp()
441 struct ip_vs_iphdr *iph);
447 const struct ip_vs_iphdr *iph);
453 const struct ip_vs_iphdr *iph);
456 struct ip_vs_conn *cp, struct ip_vs_iphdr *iph);
459 struct ip_vs_conn *cp, struct ip_vs_iphdr *iph);
554 struct ip_vs_protocol *pp, struct ip_vs_iphdr *iph);
717 struct ip_vs_iphdr *iph);
788 const struct iphdr *iph, int inverse);
792 const struct iphdr *iph, int inverse);
1187 const struct ip_vs_iphdr *iph);
1193 const struct ip_vs_iphdr *iph);
1364 struct ip_vs_iphdr *iph);
1366 struct ip_vs_proto_data *pd, struct ip_vs_iphdr *iph);
1427 struct ip_vs_protocol *pp, struct ip_vs_iphdr *iph);
1429 struct ip_vs_protocol *pp, struct ip_vs_iphdr *iph);
1431 struct ip_vs_protocol *pp, struct ip_vs_iphdr *iph);
1433 struct ip_vs_protocol *pp, struct ip_vs_iphdr *iph);
1435 struct ip_vs_protocol *pp, struct ip_vs_iphdr *iph);
1438 unsigned int hooknum, struct ip_vs_iphdr *iph);
1443 struct ip_vs_protocol *pp, struct ip_vs_iphdr *iph);
1445 struct ip_vs_protocol *pp, struct ip_vs_iphdr *iph);
1447 struct ip_vs_protocol *pp, struct ip_vs_iphdr *iph);
1449 struct ip_vs_protocol *pp, struct ip_vs_iphdr *iph);
1452 unsigned int hooknum, struct ip_vs_iphdr *iph);
H A Dip6_checksum.h53 const struct ipv6hdr *iph = skb_gro_network_header(skb); ip6_gro_compute_pseudo() local
55 return ~csum_unfold(csum_ipv6_magic(&iph->saddr, &iph->daddr, ip6_gro_compute_pseudo()
H A Dip_tunnels.h256 static inline u8 ip_tunnel_get_dsfield(const struct iphdr *iph, ip_tunnel_get_dsfield() argument
260 return iph->tos; ip_tunnel_get_dsfield()
262 return ipv6_get_dsfield((const struct ipv6hdr *)iph); ip_tunnel_get_dsfield()
268 static inline u8 ip_tunnel_ecn_encap(u8 tos, const struct iphdr *iph, ip_tunnel_ecn_encap() argument
271 u8 inner = ip_tunnel_get_dsfield(iph, skb); ip_tunnel_ecn_encap()
H A Dinet_hashtables.h335 const struct iphdr *iph = ip_hdr(skb); __inet_lookup_skb() local
341 iph->saddr, sport, __inet_lookup_skb()
342 iph->daddr, dport, inet_iif(skb)); __inet_lookup_skb()
H A Dipv6.h716 * Equivalent to : flow->v6addrs.src = iph->saddr;
717 * flow->v6addrs.dst = iph->daddr;
720 const struct ipv6hdr *iph) iph_to_flow_copy_v6addrs()
725 memcpy(&flow->addrs.v6addrs, &iph->saddr, sizeof(flow->addrs.v6addrs)); iph_to_flow_copy_v6addrs()
719 iph_to_flow_copy_v6addrs(struct flow_keys *flow, const struct ipv6hdr *iph) iph_to_flow_copy_v6addrs() argument
H A Dtcp.h480 int __cookie_v4_check(const struct iphdr *iph, const struct tcphdr *th,
525 u32 __cookie_v4_init_sequence(const struct iphdr *iph, const struct tcphdr *th,
534 int __cookie_v6_check(const struct ipv6hdr *iph, const struct tcphdr *th,
538 u32 __cookie_v6_init_sequence(const struct ipv6hdr *iph,
/linux-4.4.14/net/ipv4/
H A Dinet_lro.c39 #define IP_HDR_LEN(iph) (iph->ihl << 2)
40 #define TCP_PAYLOAD_LENGTH(iph, tcph) \
41 (ntohs(iph->tot_len) - IP_HDR_LEN(iph) - TCP_HDR_LEN(tcph))
55 static int lro_tcp_ip_check(const struct iphdr *iph, const struct tcphdr *tcph, lro_tcp_ip_check() argument
59 if (ntohs(iph->tot_len) != len) lro_tcp_ip_check()
62 if (TCP_PAYLOAD_LENGTH(iph, tcph) == 0) lro_tcp_ip_check()
65 if (iph->ihl != IPH_LEN_WO_OPTIONS) lro_tcp_ip_check()
72 if (INET_ECN_is_ce(ipv4_get_dsfield(iph))) lro_tcp_ip_check()
105 struct iphdr *iph = lro_desc->iph; lro_update_tcp_ip_header() local
118 csum_replace2(&iph->check, iph->tot_len, htons(lro_desc->ip_tot_len)); lro_update_tcp_ip_header()
119 iph->tot_len = htons(lro_desc->ip_tot_len); lro_update_tcp_ip_header()
124 tcph->check = csum_tcpudp_magic(iph->saddr, iph->daddr, lro_update_tcp_ip_header()
126 IP_HDR_LEN(iph), IPPROTO_TCP, lro_update_tcp_ip_header()
130 static __wsum lro_tcp_data_csum(struct iphdr *iph, struct tcphdr *tcph, int len) lro_tcp_data_csum() argument
139 tcp_ps_hdr_csum = csum_tcpudp_nofold(iph->saddr, iph->daddr, lro_tcp_data_csum()
148 struct iphdr *iph, struct tcphdr *tcph) lro_init_desc()
152 u32 tcp_data_len = TCP_PAYLOAD_LENGTH(iph, tcph); lro_init_desc()
157 lro_desc->iph = iph; lro_init_desc()
164 lro_desc->ip_tot_len = ntohs(iph->tot_len); lro_init_desc()
176 lro_desc->data_csum = lro_tcp_data_csum(iph, tcph, lro_init_desc()
185 static void lro_add_common(struct net_lro_desc *lro_desc, struct iphdr *iph, lro_add_common() argument
204 lro_tcp_data_csum(iph, tcph, lro_add_common()
215 struct iphdr *iph, struct tcphdr *tcph) lro_add_packet()
218 int tcp_data_len = TCP_PAYLOAD_LENGTH(iph, tcph); lro_add_packet()
220 lro_add_common(lro_desc, iph, tcph, tcp_data_len); lro_add_packet()
235 struct iphdr *iph, lro_check_tcp_conn()
238 if ((lro_desc->iph->saddr != iph->saddr) || lro_check_tcp_conn()
239 (lro_desc->iph->daddr != iph->daddr) || lro_check_tcp_conn()
248 struct iphdr *iph, lro_get_desc()
259 if (!lro_check_tcp_conn(tmp, iph, tcph)) { lro_get_desc()
298 struct iphdr *iph; __lro_proc_skb() local
304 lro_mgr->get_skb_header(skb, (void *)&iph, (void *)&tcph, __lro_proc_skb()
311 lro_desc = lro_get_desc(lro_mgr, lro_mgr->lro_arr, iph, tcph); __lro_proc_skb()
320 if (lro_tcp_ip_check(iph, tcph, skb->len - vlan_hdr_len, NULL)) __lro_proc_skb()
324 lro_init_desc(lro_desc, skb, iph, tcph); __lro_proc_skb()
332 if (lro_tcp_ip_check(iph, tcph, skb->len, lro_desc)) __lro_proc_skb()
335 lro_add_packet(lro_desc, skb, iph, tcph); __lro_proc_skb()
147 lro_init_desc(struct net_lro_desc *lro_desc, struct sk_buff *skb, struct iphdr *iph, struct tcphdr *tcph) lro_init_desc() argument
214 lro_add_packet(struct net_lro_desc *lro_desc, struct sk_buff *skb, struct iphdr *iph, struct tcphdr *tcph) lro_add_packet() argument
234 lro_check_tcp_conn(struct net_lro_desc *lro_desc, struct iphdr *iph, struct tcphdr *tcph) lro_check_tcp_conn() argument
246 lro_get_desc(struct net_lro_mgr *lro_mgr, struct net_lro_desc *lro_arr, struct iphdr *iph, struct tcphdr *tcph) lro_get_desc() argument
H A Dxfrm4_mode_beet.c22 struct iphdr *iph = ip_hdr(skb); xfrm4_beet_make_header() local
24 iph->ihl = 5; xfrm4_beet_make_header()
25 iph->version = 4; xfrm4_beet_make_header()
27 iph->protocol = XFRM_MODE_SKB_CB(skb)->protocol; xfrm4_beet_make_header()
28 iph->tos = XFRM_MODE_SKB_CB(skb)->tos; xfrm4_beet_make_header()
30 iph->id = XFRM_MODE_SKB_CB(skb)->id; xfrm4_beet_make_header()
31 iph->frag_off = XFRM_MODE_SKB_CB(skb)->frag_off; xfrm4_beet_make_header()
32 iph->ttl = XFRM_MODE_SKB_CB(skb)->ttl; xfrm4_beet_make_header()
86 struct iphdr *iph; xfrm4_beet_input() local
111 skb_push(skb, sizeof(*iph)); xfrm4_beet_input()
117 iph = ip_hdr(skb); xfrm4_beet_input()
119 iph->ihl += optlen / 4; xfrm4_beet_input()
120 iph->tot_len = htons(skb->len); xfrm4_beet_input()
121 iph->daddr = x->sel.daddr.a4; xfrm4_beet_input()
122 iph->saddr = x->sel.saddr.a4; xfrm4_beet_input()
123 iph->check = 0; xfrm4_beet_input()
124 iph->check = ip_fast_csum(skb_network_header(skb), iph->ihl); xfrm4_beet_input()
H A Dxfrm4_state.c59 const struct iphdr *iph = ip_hdr(skb); xfrm4_extract_header() local
61 XFRM_MODE_SKB_CB(skb)->ihl = sizeof(*iph); xfrm4_extract_header()
62 XFRM_MODE_SKB_CB(skb)->id = iph->id; xfrm4_extract_header()
63 XFRM_MODE_SKB_CB(skb)->frag_off = iph->frag_off; xfrm4_extract_header()
64 XFRM_MODE_SKB_CB(skb)->tos = iph->tos; xfrm4_extract_header()
65 XFRM_MODE_SKB_CB(skb)->ttl = iph->ttl; xfrm4_extract_header()
66 XFRM_MODE_SKB_CB(skb)->optlen = iph->ihl * 4 - sizeof(*iph); xfrm4_extract_header()
H A Dnetfilter.c22 const struct iphdr *iph = ip_hdr(skb); ip_route_me_harder() local
25 __be32 saddr = iph->saddr; ip_route_me_harder()
39 fl4.daddr = iph->daddr; ip_route_me_harder()
41 fl4.flowi4_tos = RT_TOS(iph->tos); ip_route_me_harder()
97 const struct iphdr *iph = ip_hdr(skb); nf_ip_saveroute() local
99 rt_info->tos = iph->tos; nf_ip_saveroute()
100 rt_info->daddr = iph->daddr; nf_ip_saveroute()
101 rt_info->saddr = iph->saddr; nf_ip_saveroute()
112 const struct iphdr *iph = ip_hdr(skb); nf_ip_reroute() local
114 if (!(iph->tos == rt_info->tos && nf_ip_reroute()
116 iph->daddr == rt_info->daddr && nf_ip_reroute()
117 iph->saddr == rt_info->saddr)) nf_ip_reroute()
126 const struct iphdr *iph = ip_hdr(skb); nf_ip_checksum() local
134 !csum_tcpudp_magic(iph->saddr, iph->daddr, nf_ip_checksum()
145 skb->csum = csum_tcpudp_nofold(iph->saddr, iph->daddr, nf_ip_checksum()
158 const struct iphdr *iph = ip_hdr(skb); nf_ip_checksum_partial() local
167 skb->csum = csum_tcpudp_nofold(iph->saddr, iph->daddr, protocol, nf_ip_checksum_partial()
H A Dah4.c78 static int ip_clear_mutable_options(const struct iphdr *iph, __be32 *daddr) ip_clear_mutable_options() argument
80 unsigned char *optptr = (unsigned char *)(iph+1); ip_clear_mutable_options()
81 int l = iph->ihl*4 - sizeof(struct iphdr); ip_clear_mutable_options()
121 struct iphdr *iph; ah_output_done() local
129 iph = AH_SKB_CB(skb)->tmp; ah_output_done()
130 icv = ah_tmp_icv(ahp->ahash, iph, ihl); ah_output_done()
133 top_iph->tos = iph->tos; ah_output_done()
134 top_iph->ttl = iph->ttl; ah_output_done()
135 top_iph->frag_off = iph->frag_off; ah_output_done()
137 top_iph->daddr = iph->daddr; ah_output_done()
138 memcpy(top_iph+1, iph+1, top_iph->ihl*4 - sizeof(struct iphdr)); ah_output_done()
155 struct iphdr *iph, *top_iph; ah_output() local
179 iph = ah_alloc_tmp(ahash, nfrags + sglists, ihl + seqhi_len); ah_output()
180 if (!iph) ah_output()
182 seqhi = (__be32 *)((char *)iph + ihl); ah_output()
192 iph->tos = top_iph->tos; ah_output()
193 iph->ttl = top_iph->ttl; ah_output()
194 iph->frag_off = top_iph->frag_off; ah_output()
197 iph->daddr = top_iph->daddr; ah_output()
198 memcpy(iph+1, top_iph+1, top_iph->ihl*4 - sizeof(struct iphdr)); ah_output()
233 AH_SKB_CB(skb)->tmp = iph; ah_output()
247 top_iph->tos = iph->tos; ah_output()
248 top_iph->ttl = iph->ttl; ah_output()
249 top_iph->frag_off = iph->frag_off; ah_output()
251 top_iph->daddr = iph->daddr; ah_output()
252 memcpy(top_iph+1, iph+1, top_iph->ihl*4 - sizeof(struct iphdr)); ah_output()
256 kfree(iph); ah_output()
308 struct iphdr *iph, *work_iph; ah_input() local
353 iph = ip_hdr(skb); ah_input()
375 memcpy(work_iph, iph, ihl); ah_input()
379 iph->ttl = 0; ah_input()
380 iph->tos = 0; ah_input()
381 iph->frag_off = 0; ah_input()
382 iph->check = 0; ah_input()
383 if (ihl > sizeof(*iph)) { ah_input()
385 err = ip_clear_mutable_options(iph, &dummy); ah_input()
436 const struct iphdr *iph = (const struct iphdr *)skb->data; ah4_err() local
437 struct ip_auth_hdr *ah = (struct ip_auth_hdr *)(skb->data+(iph->ihl<<2)); ah4_err()
450 x = xfrm_state_lookup(net, skb->mark, (const xfrm_address_t *)&iph->daddr, ah4_err()
H A Dxfrm4_input.c29 const struct iphdr *iph = ip_hdr(skb); xfrm4_rcv_encap_finish() local
31 if (ip_route_input_noref(skb, iph->daddr, iph->saddr, xfrm4_rcv_encap_finish()
32 iph->tos, skb->dev)) xfrm4_rcv_encap_finish()
43 struct iphdr *iph = ip_hdr(skb); xfrm4_transport_finish() local
45 iph->protocol = XFRM_MODE_SKB_CB(skb)->protocol; xfrm4_transport_finish()
49 return -iph->protocol; xfrm4_transport_finish()
53 iph->tot_len = htons(skb->len); xfrm4_transport_finish()
54 ip_send_check(iph); xfrm4_transport_finish()
73 struct iphdr *iph; xfrm4_udp_encap_rcv() local
132 iph = ip_hdr(skb); xfrm4_udp_encap_rcv()
133 iphlen = iph->ihl << 2; xfrm4_udp_encap_rcv()
134 iph->tot_len = htons(ntohs(iph->tot_len) - len); xfrm4_udp_encap_rcv()
H A Dipip.c10 * Alan Cox : Fixed bug with 1.3.18 and IPIP not working (now needs to set skb->h.iph)
138 const struct iphdr *iph = (const struct iphdr *)skb->data; ipip_err() local
146 iph->daddr, iph->saddr, 0); ipip_err()
164 if (t->parms.iph.daddr == 0) ipip_err()
168 if (t->parms.iph.ttl == 0 && type == ICMP_TIME_EXCEEDED) ipip_err()
191 const struct iphdr *iph; ipip_rcv() local
193 iph = ip_hdr(skb); ipip_rcv()
195 iph->saddr, iph->daddr, 0); ipip_rcv()
218 const struct iphdr *tiph = &tunnel->parms.iph; ipip_tunnel_xmit()
249 if (p.iph.version != 4 || p.iph.protocol != IPPROTO_IPIP || ipip_tunnel_ioctl()
250 p.iph.ihl != 5 || (p.iph.frag_off&htons(~IP_DF))) ipip_tunnel_ioctl()
301 memcpy(dev->dev_addr, &tunnel->parms.iph.saddr, 4); ipip_tunnel_init()
302 memcpy(dev->broadcast, &tunnel->parms.iph.daddr, 4); ipip_tunnel_init()
306 tunnel->parms.iph.protocol = IPPROTO_IPIP; ipip_tunnel_init()
315 parms->iph.version = 4; ipip_netlink_parms()
316 parms->iph.protocol = IPPROTO_IPIP; ipip_netlink_parms()
317 parms->iph.ihl = 5; ipip_netlink_parms()
326 parms->iph.saddr = nla_get_in_addr(data[IFLA_IPTUN_LOCAL]); ipip_netlink_parms()
329 parms->iph.daddr = nla_get_in_addr(data[IFLA_IPTUN_REMOTE]); ipip_netlink_parms()
332 parms->iph.ttl = nla_get_u8(data[IFLA_IPTUN_TTL]); ipip_netlink_parms()
333 if (parms->iph.ttl) ipip_netlink_parms()
334 parms->iph.frag_off = htons(IP_DF); ipip_netlink_parms()
338 parms->iph.tos = nla_get_u8(data[IFLA_IPTUN_TOS]); ipip_netlink_parms()
341 parms->iph.frag_off = htons(IP_DF); ipip_netlink_parms()
412 if (((dev->flags & IFF_POINTOPOINT) && !p.iph.daddr) || ipip_changelink()
413 (!(dev->flags & IFF_POINTOPOINT) && p.iph.daddr)) ipip_changelink()
451 nla_put_in_addr(skb, IFLA_IPTUN_LOCAL, parm->iph.saddr) || ipip_fill_info()
452 nla_put_in_addr(skb, IFLA_IPTUN_REMOTE, parm->iph.daddr) || ipip_fill_info()
453 nla_put_u8(skb, IFLA_IPTUN_TTL, parm->iph.ttl) || ipip_fill_info()
454 nla_put_u8(skb, IFLA_IPTUN_TOS, parm->iph.tos) || ipip_fill_info()
456 !!(parm->iph.frag_off & htons(IP_DF)))) ipip_fill_info()
H A Dip_vti.c57 const struct iphdr *iph = ip_hdr(skb); vti_input() local
62 iph->saddr, iph->daddr, 0); vti_input()
173 if (!vti_state_check(dst->xfrm, parms->iph.daddr, parms->iph.saddr)) { vti_xmit()
255 const struct iphdr *iph = (const struct iphdr *)skb->data; vti4_err() local
256 int protocol = iph->protocol; vti4_err()
260 iph->daddr, iph->saddr, 0); vti4_err()
268 esph = (struct ip_esp_hdr *)(skb->data+(iph->ihl<<2)); vti4_err()
272 ah = (struct ip_auth_hdr *)(skb->data+(iph->ihl<<2)); vti4_err()
276 ipch = (struct ip_comp_hdr *)(skb->data+(iph->ihl<<2)); vti4_err()
293 x = xfrm_state_lookup(net, mark, (const xfrm_address_t *)&iph->daddr, vti4_err()
317 if (p.iph.version != 4 || p.iph.protocol != IPPROTO_IPIP || vti_tunnel_ioctl()
318 p.iph.ihl != 5) vti_tunnel_ioctl()
363 struct iphdr *iph = &tunnel->parms.iph; vti_tunnel_init() local
365 memcpy(dev->dev_addr, &iph->saddr, 4); vti_tunnel_init()
366 memcpy(dev->broadcast, &iph->daddr, 4); vti_tunnel_init()
381 struct iphdr *iph = &tunnel->parms.iph; vti_fb_tunnel_init() local
383 iph->version = 4; vti_fb_tunnel_init()
384 iph->protocol = IPPROTO_IPIP; vti_fb_tunnel_init()
385 iph->ihl = 5; vti_fb_tunnel_init()
448 parms->iph.protocol = IPPROTO_IPIP; vti_netlink_parms()
465 parms->iph.saddr = nla_get_in_addr(data[IFLA_VTI_LOCAL]); vti_netlink_parms()
468 parms->iph.daddr = nla_get_in_addr(data[IFLA_VTI_REMOTE]); vti_netlink_parms()
514 nla_put_in_addr(skb, IFLA_VTI_LOCAL, p->iph.saddr); vti_fill_info()
515 nla_put_in_addr(skb, IFLA_VTI_REMOTE, p->iph.daddr); vti_fill_info()
H A Dxfrm4_policy.c109 const struct iphdr *iph = ip_hdr(skb); _decode_session4() local
110 u8 *xprth = skb_network_header(skb) + iph->ihl * 4; _decode_session4()
121 if (!ip_is_fragment(iph)) { _decode_session4()
122 switch (iph->protocol) { _decode_session4()
132 xprth = skb_network_header(skb) + iph->ihl * 4; _decode_session4()
145 xprth = skb_network_header(skb) + iph->ihl * 4; _decode_session4()
158 xprth = skb_network_header(skb) + iph->ihl * 4; _decode_session4()
170 xprth = skb_network_header(skb) + iph->ihl * 4; _decode_session4()
182 xprth = skb_network_header(skb) + iph->ihl * 4; _decode_session4()
195 xprth = skb_network_header(skb) + iph->ihl * 4; _decode_session4()
212 fl4->flowi4_proto = iph->protocol; _decode_session4()
213 fl4->daddr = reverse ? iph->saddr : iph->daddr; _decode_session4()
214 fl4->saddr = reverse ? iph->daddr : iph->saddr; _decode_session4()
215 fl4->flowi4_tos = iph->tos; _decode_session4()
H A Dip_fragment.c102 struct iphdr *iph; member in struct:ip4_create_arg
129 return qp->id == arg->iph->id && ip4_frag_match()
130 qp->saddr == arg->iph->saddr && ip4_frag_match()
131 qp->daddr == arg->iph->daddr && ip4_frag_match()
132 qp->protocol == arg->iph->protocol && ip4_frag_match()
146 qp->protocol = arg->iph->protocol; ip4_frag_init()
147 qp->id = arg->iph->id; ip4_frag_init()
148 qp->ecn = ip4_frag_ecn(arg->iph->tos); ip4_frag_init()
149 qp->saddr = arg->iph->saddr; ip4_frag_init()
150 qp->daddr = arg->iph->daddr; ip4_frag_init()
154 inet_getpeer_v4(net->ipv4.peers, arg->iph->saddr, arg->vif, 1) : ip4_frag_init()
213 const struct iphdr *iph; ip_expire() local
227 iph = ip_hdr(head); ip_expire()
228 err = ip_route_input_noref(head, iph->daddr, iph->saddr, ip_expire()
229 iph->tos, head->dev); ip_expire()
253 static struct ipq *ip_find(struct net *net, struct iphdr *iph, ip_find() argument
260 arg.iph = iph; ip_find()
264 hash = ipqhashfn(iph->id, iph->saddr, iph->daddr, iph->protocol); ip_find()
528 struct iphdr *iph; ip_frag_reasm() local
619 iph = ip_hdr(head); ip_frag_reasm()
620 iph->tot_len = htons(len); ip_frag_reasm()
621 iph->tos |= ecn; ip_frag_reasm()
633 iph->frag_off = htons(IP_DF); ip_frag_reasm()
635 iph->frag_off = 0; ip_frag_reasm()
638 ip_send_check(iph); ip_frag_reasm()
688 struct iphdr iph; ip_check_defrag() local
697 if (skb_copy_bits(skb, netoff, &iph, sizeof(iph)) < 0) ip_check_defrag()
700 if (iph.ihl < 5 || iph.version != 4) ip_check_defrag()
703 len = ntohs(iph.tot_len); ip_check_defrag()
704 if (skb->len < netoff + len || len < (iph.ihl * 4)) ip_check_defrag()
707 if (ip_is_fragment(&iph)) { ip_check_defrag()
710 if (!pskb_may_pull(skb, netoff + iph.ihl * 4)) ip_check_defrag()
H A Dip_input.c265 const struct iphdr *iph; ip_rcv_options() local
280 iph = ip_hdr(skb); ip_rcv_options()
282 opt->optlen = iph->ihl*4 - sizeof(struct iphdr); ip_rcv_options()
296 &iph->saddr, ip_rcv_options()
297 &iph->daddr); ip_rcv_options()
316 const struct iphdr *iph = ip_hdr(skb); ip_rcv_finish() local
321 int protocol = iph->protocol; ip_rcv_finish()
326 /* must reload iph, skb->head might have changed */ ip_rcv_finish()
327 iph = ip_hdr(skb); ip_rcv_finish()
336 int err = ip_route_input_noref(skb, iph->daddr, iph->saddr, ip_rcv_finish()
337 iph->tos, skb->dev); ip_rcv_finish()
356 if (iph->ihl > 5 && ip_rcv_options(skb)) ip_rcv_finish()
377 const struct iphdr *iph; ip_rcv() local
400 iph = ip_hdr(skb); ip_rcv()
413 if (iph->ihl < 5 || iph->version != 4) ip_rcv()
420 IPSTATS_MIB_NOECTPKTS + (iph->tos & INET_ECN_MASK), ip_rcv()
423 if (!pskb_may_pull(skb, iph->ihl*4)) ip_rcv()
426 iph = ip_hdr(skb); ip_rcv()
428 if (unlikely(ip_fast_csum((u8 *)iph, iph->ihl))) ip_rcv()
431 len = ntohs(iph->tot_len); ip_rcv()
435 } else if (len < (iph->ihl*4)) ip_rcv()
440 * Note this now means skb->len holds ntohs(iph->tot_len). ip_rcv()
447 skb->transport_header = skb->network_header + iph->ihl*4; ip_rcv()
H A Dip_options.c46 unsigned char *iph = skb_network_header(skb); ip_options_build() local
49 memcpy(iph+sizeof(struct iphdr), opt->__data, opt->optlen); ip_options_build()
53 memcpy(iph+opt->srr+iph[opt->srr+1]-4, &daddr, 4); ip_options_build()
57 ip_rt_get_source(iph+opt->rr+iph[opt->rr+2]-5, skb, rt); ip_options_build()
59 ip_rt_get_source(iph+opt->ts+iph[opt->ts+2]-9, skb, rt); ip_options_build()
65 memcpy(iph+opt->ts+iph[opt->ts+2]-5, &midtime, 4); ip_options_build()
70 memset(iph+opt->rr, IPOPT_NOP, iph[opt->rr+1]); ip_options_build()
75 memset(iph+opt->ts, IPOPT_NOP, iph[opt->ts+1]); ip_options_build()
264 unsigned char *iph; ip_options_compile() local
272 iph = optptr - sizeof(struct iphdr); ip_options_compile()
324 opt->srr = optptr - iph; ip_options_compile()
352 opt->rr = optptr - iph; ip_options_compile()
436 opt->ts = optptr - iph; ip_options_compile()
444 opt->router_alert = optptr - iph; ip_options_compile()
451 opt->cipso = optptr - iph; ip_options_compile()
476 icmp_send(skb, ICMP_PARAMETERPROB, 0, htonl((pp_ptr-iph)<<24)); ip_options_compile()
612 struct iphdr *iph = ip_hdr(skb); ip_options_rcv_srr() local
642 err = ip_route_input(skb, nexthop, iph->saddr, iph->tos, skb->dev); ip_options_rcv_srr()
653 iph->daddr = nexthop; ip_options_rcv_srr()
H A Dip_gre.c265 const struct iphdr *iph; ipgre_err() local
304 iph = (const struct iphdr *)(icmp_hdr(skb) + 1); ipgre_err()
306 iph->daddr, iph->saddr, tpi->key); ipgre_err()
311 if (t->parms.iph.daddr == 0 || ipgre_err()
312 ipv4_is_multicast(t->parms.iph.daddr)) ipgre_err()
315 if (t->parms.iph.ttl == 0 && type == ICMP_TIME_EXCEEDED) ipgre_err()
389 const struct iphdr *iph; ipgre_rcv() local
397 iph = ip_hdr(skb); ipgre_rcv()
399 iph->saddr, iph->daddr, tpi->key); ipgre_rcv()
629 tnl_params = &tunnel->parms.iph; ipgre_xmit()
663 __gre_xmit(skb, dev, &tunnel->parms.iph, htons(ETH_P_TEB)); gre_tap_xmit()
682 if (p.iph.version != 4 || p.iph.protocol != IPPROTO_GRE || ipgre_tunnel_ioctl()
683 p.iph.ihl != 5 || (p.iph.frag_off&htons(~IP_DF)) || ipgre_tunnel_ioctl()
734 struct iphdr *iph; ipgre_header() local
737 iph = (struct iphdr *)skb_push(skb, t->hlen + sizeof(*iph)); ipgre_header()
738 greh = (struct gre_base_hdr *)(iph+1); ipgre_header()
742 memcpy(iph, &t->parms.iph, sizeof(struct iphdr)); ipgre_header()
746 memcpy(&iph->saddr, saddr, 4); ipgre_header()
748 memcpy(&iph->daddr, daddr, 4); ipgre_header()
749 if (iph->daddr) ipgre_header()
750 return t->hlen + sizeof(*iph); ipgre_header()
752 return -(t->hlen + sizeof(*iph)); ipgre_header()
757 const struct iphdr *iph = (const struct iphdr *) skb_mac_header(skb); ipgre_header_parse() local
758 memcpy(haddr, &iph->saddr, 4); ipgre_header_parse()
772 if (ipv4_is_multicast(t->parms.iph.daddr)) { ipgre_open()
777 t->parms.iph.daddr, ipgre_open()
778 t->parms.iph.saddr, ipgre_open()
780 RT_TOS(t->parms.iph.tos), ipgre_open()
789 ip_mc_inc_group(__in_dev_get_rtnl(dev), t->parms.iph.daddr); ipgre_open()
798 if (ipv4_is_multicast(t->parms.iph.daddr) && t->mlink) { ipgre_close()
802 ip_mc_dec_group(in_dev, t->parms.iph.daddr); ipgre_close()
841 tunnel->parms.iph.protocol = IPPROTO_GRE; __gre_tunnel_init()
867 struct iphdr *iph = &tunnel->parms.iph; ipgre_tunnel_init() local
871 memcpy(dev->dev_addr, &iph->saddr, 4); ipgre_tunnel_init()
872 memcpy(dev->broadcast, &iph->daddr, 4); ipgre_tunnel_init()
878 if (iph->daddr) { ipgre_tunnel_init()
880 if (ipv4_is_multicast(iph->daddr)) { ipgre_tunnel_init()
881 if (!iph->saddr) ipgre_tunnel_init()
965 parms->iph.protocol = IPPROTO_GRE; ipgre_netlink_parms()
986 parms->iph.saddr = nla_get_in_addr(data[IFLA_GRE_LOCAL]); ipgre_netlink_parms()
989 parms->iph.daddr = nla_get_in_addr(data[IFLA_GRE_REMOTE]); ipgre_netlink_parms()
992 parms->iph.ttl = nla_get_u8(data[IFLA_GRE_TTL]); ipgre_netlink_parms()
995 parms->iph.tos = nla_get_u8(data[IFLA_GRE_TOS]); ipgre_netlink_parms()
998 parms->iph.frag_off = htons(IP_DF); ipgre_netlink_parms()
1151 nla_put_in_addr(skb, IFLA_GRE_LOCAL, p->iph.saddr) || ipgre_fill_info()
1152 nla_put_in_addr(skb, IFLA_GRE_REMOTE, p->iph.daddr) || ipgre_fill_info()
1153 nla_put_u8(skb, IFLA_GRE_TTL, p->iph.ttl) || ipgre_fill_info()
1154 nla_put_u8(skb, IFLA_GRE_TOS, p->iph.tos) || ipgre_fill_info()
1156 !!(p->iph.frag_off & htons(IP_DF)))) ipgre_fill_info()
H A Dip_tunnel.c164 if (local != t->parms.iph.saddr || hlist_for_each_entry_rcu()
165 remote != t->parms.iph.daddr || hlist_for_each_entry_rcu()
179 if (remote != t->parms.iph.daddr || hlist_for_each_entry_rcu()
180 t->parms.iph.saddr != 0 || hlist_for_each_entry_rcu()
197 if ((local != t->parms.iph.saddr || t->parms.iph.daddr != 0) && hlist_for_each_entry_rcu()
198 (local != t->parms.iph.daddr || !ipv4_is_multicast(local))) hlist_for_each_entry_rcu()
218 t->parms.iph.saddr != 0 || hlist_for_each_entry_rcu()
219 t->parms.iph.daddr != 0 || hlist_for_each_entry_rcu()
251 if (parms->iph.daddr && !ipv4_is_multicast(parms->iph.daddr)) ip_bucket()
252 remote = parms->iph.daddr; ip_bucket()
283 __be32 remote = parms->iph.daddr; ip_tunnel_find()
284 __be32 local = parms->iph.saddr; ip_tunnel_find()
292 if (local == t->parms.iph.saddr && hlist_for_each_entry_rcu()
293 remote == t->parms.iph.daddr && hlist_for_each_entry_rcu()
366 const struct iphdr *iph; ip_tunnel_bind_dev() local
371 iph = &tunnel->parms.iph; ip_tunnel_bind_dev()
374 if (iph->daddr) { ip_tunnel_bind_dev()
378 init_tunnel_flow(&fl4, iph->protocol, iph->daddr, ip_tunnel_bind_dev()
379 iph->saddr, tunnel->parms.o_key, ip_tunnel_bind_dev()
380 RT_TOS(iph->tos), tunnel->parms.link); ip_tunnel_bind_dev()
433 const struct iphdr *iph = ip_hdr(skb); ip_tunnel_rcv() local
437 if (ipv4_is_multicast(iph->daddr)) { ip_tunnel_rcv()
462 err = IP_ECN_decapsulate(iph, skb); ip_tunnel_rcv()
466 &iph->saddr, iph->tos); ip_tunnel_rcv()
631 if ((tunnel->parms.iph.daddr && tnl_update_pmtu()
632 !ipv4_is_multicast(tunnel->parms.iph.daddr)) || tnl_update_pmtu()
664 connected = (tunnel->parms.iph.daddr != 0); ip_tunnel_xmit()
822 t->parms.iph.saddr = p->iph.saddr; ip_tunnel_update()
823 t->parms.iph.daddr = p->iph.daddr; ip_tunnel_update()
827 memcpy(dev->dev_addr, &p->iph.saddr, 4); ip_tunnel_update()
828 memcpy(dev->broadcast, &p->iph.daddr, 4); ip_tunnel_update()
832 t->parms.iph.ttl = p->iph.ttl; ip_tunnel_update()
833 t->parms.iph.tos = p->iph.tos; ip_tunnel_update()
834 t->parms.iph.frag_off = p->iph.frag_off; ip_tunnel_update()
871 if (p->iph.ttl) ip_tunnel_ioctl()
872 p->iph.frag_off |= htons(IP_DF); ip_tunnel_ioctl()
901 if (ipv4_is_multicast(p->iph.daddr)) ip_tunnel_ioctl()
903 else if (p->iph.daddr) ip_tunnel_ioctl()
1150 if (ipv4_is_multicast(p->iph.daddr)) ip_tunnel_changelink()
1152 else if (p->iph.daddr) ip_tunnel_changelink()
1169 struct iphdr *iph = &tunnel->parms.iph; ip_tunnel_init() local
1193 iph->version = 4; ip_tunnel_init()
1194 iph->ihl = 5; ip_tunnel_init()
H A Dip_output.c92 void ip_send_check(struct iphdr *iph) ip_send_check() argument
94 iph->check = 0; ip_send_check()
95 iph->check = ip_fast_csum((unsigned char *)iph, iph->ihl); ip_send_check()
101 struct iphdr *iph = ip_hdr(skb); __ip_local_out() local
103 iph->tot_len = htons(skb->len); __ip_local_out()
104 ip_send_check(iph); __ip_local_out()
141 struct iphdr *iph; ip_build_and_send_pkt() local
146 iph = ip_hdr(skb); ip_build_and_send_pkt()
147 iph->version = 4; ip_build_and_send_pkt()
148 iph->ihl = 5; ip_build_and_send_pkt()
149 iph->tos = inet->tos; ip_build_and_send_pkt()
150 iph->ttl = ip_select_ttl(inet, &rt->dst); ip_build_and_send_pkt()
151 iph->daddr = (opt && opt->opt.srr ? opt->opt.faddr : daddr); ip_build_and_send_pkt()
152 iph->saddr = saddr; ip_build_and_send_pkt()
153 iph->protocol = sk->sk_protocol; ip_build_and_send_pkt()
155 iph->frag_off = htons(IP_DF); ip_build_and_send_pkt()
156 iph->id = 0; ip_build_and_send_pkt()
158 iph->frag_off = 0; ip_build_and_send_pkt()
159 __ip_select_ident(net, iph, 1); ip_build_and_send_pkt()
163 iph->ihl += opt->opt.optlen>>2; ip_build_and_send_pkt()
368 * iph->saddr = fl4->saddr;
369 * iph->daddr = fl4->daddr;
371 static void ip_copy_addrs(struct iphdr *iph, const struct flowi4 *fl4) ip_copy_addrs() argument
375 memcpy(&iph->saddr, &fl4->saddr, ip_copy_addrs()
387 struct iphdr *iph; ip_queue_xmit() local
434 iph = ip_hdr(skb); ip_queue_xmit()
435 *((__be16 *)iph) = htons((4 << 12) | (5 << 8) | (inet->tos & 0xff)); ip_queue_xmit()
437 iph->frag_off = htons(IP_DF); ip_queue_xmit()
439 iph->frag_off = 0; ip_queue_xmit()
440 iph->ttl = ip_select_ttl(inet, &rt->dst); ip_queue_xmit()
441 iph->protocol = sk->sk_protocol; ip_queue_xmit()
442 ip_copy_addrs(iph, fl4); ip_queue_xmit()
447 iph->ihl += inet_opt->opt.optlen >> 2; ip_queue_xmit()
497 struct iphdr *iph = ip_hdr(skb); ip_fragment() local
499 if ((iph->frag_off & htons(IP_DF)) == 0) ip_fragment()
525 struct iphdr *iph; ip_do_fragment() local
546 iph = ip_hdr(skb); ip_do_fragment()
556 hlen = iph->ihl * 4; ip_do_fragment()
573 ip_is_fragment(iph) || ip_do_fragment()
604 iph->tot_len = htons(first_len);
605 iph->frag_off = htons(IP_MF);
606 ip_send_check(iph);
616 memcpy(skb_network_header(frag), iph, hlen); local
617 iph = ip_hdr(frag);
618 iph->tot_len = htons(frag->len);
623 iph->frag_off = htons(offset>>3);
625 iph->frag_off |= htons(IP_MF);
627 ip_send_check(iph);
666 iph = ip_hdr(skb);
677 offset = (ntohs(iph->frag_off) & IP_OFFSET) << 3;
678 not_last_frag = iph->frag_off & htons(IP_MF);
736 iph = ip_hdr(skb2);
737 iph->frag_off = htons((offset >> 3));
740 iph->frag_off |= htons(IP_DF);
756 iph->frag_off |= htons(IP_MF);
763 iph->tot_len = htons(len + hlen);
765 ip_send_check(iph);
1359 struct iphdr *iph; __ip_make_skb() local
1407 iph = ip_hdr(skb); __ip_make_skb()
1408 iph->version = 4; __ip_make_skb()
1409 iph->ihl = 5; __ip_make_skb()
1410 iph->tos = (cork->tos != -1) ? cork->tos : inet->tos; __ip_make_skb()
1411 iph->frag_off = df; __ip_make_skb()
1412 iph->ttl = ttl; __ip_make_skb()
1413 iph->protocol = sk->sk_protocol; __ip_make_skb()
1414 ip_copy_addrs(iph, fl4); __ip_make_skb()
1418 iph->ihl += opt->optlen>>2; __ip_make_skb()
1431 if (iph->protocol == IPPROTO_ICMP) __ip_make_skb()
H A Dxfrm4_mode_transport.c23 struct iphdr *iph = ip_hdr(skb); xfrm4_transport_output() local
24 int ihl = iph->ihl * 4; xfrm4_transport_output()
31 memmove(skb_network_header(skb), iph, ihl); xfrm4_transport_output() local
H A Dip_tunnel_core.c57 struct iphdr *iph; iptunnel_xmit() local
70 iph = ip_hdr(skb); iptunnel_xmit()
72 iph->version = 4; iptunnel_xmit()
73 iph->ihl = sizeof(struct iphdr) >> 2; iptunnel_xmit()
74 iph->frag_off = df; iptunnel_xmit()
75 iph->protocol = proto; iptunnel_xmit()
76 iph->tos = tos; iptunnel_xmit()
77 iph->daddr = dst; iptunnel_xmit()
78 iph->saddr = src; iptunnel_xmit()
79 iph->ttl = ttl; iptunnel_xmit()
80 __ip_select_ident(net, iph, skb_shinfo(skb)->gso_segs ?: 1); iptunnel_xmit()
H A Draw.c168 static int raw_v4_input(struct sk_buff *skb, const struct iphdr *iph, int hash) raw_v4_input() argument
181 sk = __raw_v4_lookup(net, __sk_head(head), iph->protocol, raw_v4_input()
182 iph->saddr, iph->daddr, raw_v4_input()
187 if ((iph->protocol != IPPROTO_ICMP || !icmp_filter(sk, skb)) && raw_v4_input()
188 ip_mc_sf_allow(sk, iph->daddr, iph->saddr, raw_v4_input()
196 sk = __raw_v4_lookup(net, sk_next(sk), iph->protocol, raw_v4_input()
197 iph->saddr, iph->daddr, raw_v4_input()
270 const struct iphdr *iph = (const struct iphdr *)skb->data; raw_err() local
271 u8 *payload = skb->data + (iph->ihl << 2); raw_err()
288 const struct iphdr *iph; raw_icmp_error() local
296 iph = (const struct iphdr *)skb->data; raw_icmp_error()
300 iph->daddr, iph->saddr, raw_icmp_error()
304 iph = (const struct iphdr *)skb->data; raw_icmp_error()
345 struct iphdr *iph; raw_send_hdrinc() local
375 iph = ip_hdr(skb); raw_send_hdrinc()
384 if (memcpy_from_msg(iph, msg, length)) raw_send_hdrinc()
387 iphlen = iph->ihl * 4; raw_send_hdrinc()
392 * stack. Specifically we want to make sure that iph->ihl is a raw_send_hdrinc()
400 if (iphlen >= sizeof(*iph)) { raw_send_hdrinc()
401 if (!iph->saddr) raw_send_hdrinc()
402 iph->saddr = fl4->saddr; raw_send_hdrinc()
403 iph->check = 0; raw_send_hdrinc()
404 iph->tot_len = htons(length); raw_send_hdrinc()
405 if (!iph->id) raw_send_hdrinc()
408 iph->check = ip_fast_csum((unsigned char *)iph, iph->ihl); raw_send_hdrinc()
410 if (iph->protocol == IPPROTO_ICMP && raw_send_hdrinc()
H A Daf_inet.c1204 struct iphdr *iph; inet_gso_segment() local
1228 if (unlikely(!pskb_may_pull(skb, sizeof(*iph)))) inet_gso_segment()
1231 iph = ip_hdr(skb); inet_gso_segment()
1232 ihl = iph->ihl * 4; inet_gso_segment()
1233 if (ihl < sizeof(*iph)) inet_gso_segment()
1236 id = ntohs(iph->id); inet_gso_segment()
1237 proto = iph->protocol; inet_gso_segment()
1239 /* Warning: after this point, iph might be no longer valid */ inet_gso_segment()
1268 iph = (struct iphdr *)(skb_mac_header(skb) + nhoff); inet_gso_segment()
1270 iph->id = htons(id); inet_gso_segment()
1271 iph->frag_off = htons(offset >> 3); inet_gso_segment()
1273 iph->frag_off |= htons(IP_MF); inet_gso_segment()
1276 iph->id = htons(id++); inet_gso_segment()
1278 iph->tot_len = htons(skb->len - nhoff); inet_gso_segment()
1279 ip_send_check(iph); inet_gso_segment()
1282 skb->network_header = (u8 *)iph - skb->head; inet_gso_segment()
1295 const struct iphdr *iph; inet_gro_receive() local
1303 hlen = off + sizeof(*iph); inet_gro_receive()
1304 iph = skb_gro_header_fast(skb, off); inet_gro_receive()
1306 iph = skb_gro_header_slow(skb, hlen, off); inet_gro_receive()
1307 if (unlikely(!iph)) inet_gro_receive()
1311 proto = iph->protocol; inet_gro_receive()
1318 if (*(u8 *)iph != 0x45) inet_gro_receive()
1321 if (unlikely(ip_fast_csum((u8 *)iph, 5))) inet_gro_receive()
1324 id = ntohl(*(__be32 *)&iph->id); inet_gro_receive()
1325 flush = (u16)((ntohl(*(__be32 *)iph) ^ skb_gro_len(skb)) | (id & ~IP_DF)); inet_gro_receive()
1340 if ((iph->protocol ^ iph2->protocol) | inet_gro_receive()
1341 ((__force u32)iph->saddr ^ (__force u32)iph2->saddr) | inet_gro_receive()
1342 ((__force u32)iph->daddr ^ (__force u32)iph2->daddr)) { inet_gro_receive()
1349 (iph->ttl ^ iph2->ttl) | inet_gro_receive()
1350 (iph->tos ^ iph2->tos) | inet_gro_receive()
1351 ((iph->frag_off ^ iph2->frag_off) & htons(IP_DF)); inet_gro_receive()
1372 skb_gro_pull(skb, sizeof(*iph)); inet_gro_receive()
1400 struct iphdr *iph = (struct iphdr *)(skb->data + nhoff); inet_gro_complete() local
1402 int proto = iph->protocol; inet_gro_complete()
1408 csum_replace2(&iph->check, iph->tot_len, newlen); inet_gro_complete()
1409 iph->tot_len = newlen; inet_gro_complete()
1416 /* Only need to add sizeof(*iph) to get to the next hdr below inet_gro_complete()
1420 err = ops->callbacks.gro_complete(skb, nhoff + sizeof(*iph)); inet_gro_complete()
H A Dicmp.c448 const struct iphdr *iph = ip_hdr(skb); icmp_multipath_hash_skb() local
450 return fib_multipath_hash(iph->daddr, iph->saddr); icmp_multipath_hash_skb()
462 const struct iphdr *iph, icmp_route_lookup()
473 param->replyopts.opt.opt.faddr : iph->saddr); icmp_route_lookup()
570 struct iphdr *iph; icmp_send() local
591 iph = ip_hdr(skb_in); icmp_send()
593 if ((u8 *)iph < skb_in->head || icmp_send()
594 (skb_network_header(skb_in) + sizeof(*iph)) > icmp_send()
614 if (iph->frag_off & htons(IP_OFFSET)) icmp_send()
625 if (iph->protocol == IPPROTO_ICMP) { icmp_send()
630 (iph->ihl << 2) + icmp_send()
661 saddr = iph->daddr; icmp_send()
677 tos = icmp_pointers[type].error ? ((iph->tos & IPTOS_TOS_MASK) | icmp_send()
679 iph->tos; icmp_send()
698 ipc.addr = iph->saddr; icmp_send()
704 rt = icmp_route_lookup(net, &fl4, skb_in, iph, saddr, tos, mark, icmp_send()
739 const struct iphdr *iph = (const struct iphdr *) skb->data; icmp_socket_deliver() local
741 int protocol = iph->protocol; icmp_socket_deliver()
746 if (!pskb_may_pull(skb, iph->ihl * 4 + 8)) { icmp_socket_deliver()
775 const struct iphdr *iph; icmp_unreach() local
792 iph = (const struct iphdr *)skb->data; icmp_unreach()
794 if (iph->ihl < 5) /* Mangled header, drop. */ icmp_unreach()
812 &iph->daddr); icmp_unreach()
817 if (!icmp_tag_validation(iph->protocol)) icmp_unreach()
826 &iph->daddr); icmp_unreach()
855 inet_addr_type_dev_table(net, skb->dev, iph->daddr) == RTN_BROADCAST) { icmp_unreach()
859 &iph->daddr, skb->dev->name); icmp_unreach()
1066 struct iphdr *iph = (struct iphdr *)skb->data; icmp_err() local
1067 int offset = iph->ihl<<2; icmp_err()
459 icmp_route_lookup(struct net *net, struct flowi4 *fl4, struct sk_buff *skb_in, const struct iphdr *iph, __be32 saddr, u8 tos, u32 mark, int type, int code, struct icmp_bxm *param) icmp_route_lookup() argument
H A Dip_forward.c81 struct iphdr *iph; /* Our header */ ip_forward() local
133 iph = ip_hdr(skb); ip_forward()
136 ip_decrease_ttl(iph); ip_forward()
146 skb->priority = rt_tos2priority(iph->tos); ip_forward()
H A Dgre_demux.c94 const struct iphdr *iph = (const struct iphdr *)skb->data; gre_err() local
95 u8 ver = skb->data[(iph->ihl<<2) + 1]&0x7f; gre_err()
H A Dtcp_offload.c39 const struct iphdr *iph = ip_hdr(skb); tcp4_gso_segment() local
48 __tcp_v4_send_check(skb, iph->saddr, iph->daddr); tcp4_gso_segment()
306 const struct iphdr *iph = ip_hdr(skb); tcp4_gro_complete() local
309 th->check = ~tcp_v4_check(skb->len - thoff, iph->saddr, tcp4_gro_complete()
310 iph->daddr, 0); tcp4_gro_complete()
H A Dipmr.c372 p.iph.daddr = v->vifc_rmt_addr.s_addr; ipmr_del_tunnel()
373 p.iph.saddr = v->vifc_lcl_addr.s_addr; ipmr_del_tunnel()
374 p.iph.version = 4; ipmr_del_tunnel()
375 p.iph.ihl = 5; ipmr_del_tunnel()
376 p.iph.protocol = IPPROTO_IPIP; ipmr_del_tunnel()
405 p.iph.daddr = v->vifc_rmt_addr.s_addr; ipmr_new_tunnel()
406 p.iph.saddr = v->vifc_lcl_addr.s_addr; ipmr_new_tunnel()
407 p.iph.version = 4; ipmr_new_tunnel()
408 p.iph.ihl = 5; ipmr_new_tunnel()
409 p.iph.protocol = IPPROTO_IPIP; ipmr_new_tunnel()
1035 const struct iphdr *iph = ip_hdr(skb); ipmr_cache_unresolved() local
1039 if (c->mfc_mcastgrp == iph->daddr && ipmr_cache_unresolved()
1040 c->mfc_origin == iph->saddr) { ipmr_cache_unresolved()
1060 c->mfc_origin = iph->saddr; ipmr_cache_unresolved()
1061 c->mfc_mcastgrp = iph->daddr; ipmr_cache_unresolved()
1650 struct iphdr *iph; ip_encap() local
1656 iph = ip_hdr(skb); ip_encap()
1658 iph->version = 4; ip_encap()
1659 iph->tos = old_iph->tos; ip_encap()
1660 iph->ttl = old_iph->ttl; ip_encap()
1661 iph->frag_off = 0; ip_encap()
1662 iph->daddr = daddr; ip_encap()
1663 iph->saddr = saddr; ip_encap()
1664 iph->protocol = IPPROTO_IPIP; ip_encap()
1665 iph->ihl = 5; ip_encap()
1666 iph->tot_len = htons(skb->len); ip_encap()
1668 ip_send_check(iph); ip_encap()
1695 const struct iphdr *iph = ip_hdr(skb); ipmr_queue_xmit() local
1721 RT_TOS(iph->tos), vif->link); ipmr_queue_xmit()
1726 rt = ip_route_output_ports(net, &fl4, NULL, iph->daddr, 0, ipmr_queue_xmit()
1729 RT_TOS(iph->tos), vif->link); ipmr_queue_xmit()
1736 if (skb->len+encap > dst_mtu(&rt->dst) && (ntohs(iph->frag_off) & IP_DF)) { ipmr_queue_xmit()
1926 struct iphdr *iph = ip_hdr(skb); ipmr_rt_fib_lookup() local
1928 .daddr = iph->daddr, ipmr_rt_fib_lookup()
1929 .saddr = iph->saddr, ipmr_rt_fib_lookup()
1930 .flowi4_tos = RT_TOS(iph->tos), ipmr_rt_fib_lookup()
2213 struct iphdr *iph; ipmr_get_route() local
2240 iph = ip_hdr(skb2); ipmr_get_route()
2241 iph->ihl = sizeof(struct iphdr) >> 2; ipmr_get_route()
2242 iph->saddr = saddr; ipmr_get_route()
2243 iph->daddr = daddr; ipmr_get_route()
2244 iph->version = 0; ipmr_get_route()
H A Dudp_offload.c185 struct iphdr *iph; udp4_ufo_fragment() local
226 iph = ip_hdr(skb); udp4_ufo_fragment()
230 uh->check = udp_v4_check(skb->len, iph->saddr, iph->daddr, csum); udp4_ufo_fragment()
417 const struct iphdr *iph = ip_hdr(skb); udp4_gro_complete() local
422 uh->check = ~udp_v4_check(skb->len - nhoff, iph->saddr, udp4_gro_complete()
423 iph->daddr, 0); udp4_gro_complete()
H A Dipcomp.c30 const struct iphdr *iph = (const struct iphdr *)skb->data; ipcomp4_err() local
31 struct ip_comp_hdr *ipch = (struct ip_comp_hdr *)(skb->data+(iph->ihl<<2)); ipcomp4_err()
45 x = xfrm_state_lookup(net, skb->mark, (const xfrm_address_t *)&iph->daddr, ipcomp4_err()
H A Dsyncookies.c178 u32 __cookie_v4_init_sequence(const struct iphdr *iph, const struct tcphdr *th, __cookie_v4_init_sequence() argument
189 return secure_tcp_syn_cookie(iph->saddr, iph->daddr, __cookie_v4_init_sequence()
197 const struct iphdr *iph = ip_hdr(skb); cookie_v4_init_sequence() local
200 return __cookie_v4_init_sequence(iph, th, mssp); cookie_v4_init_sequence()
207 int __cookie_v4_check(const struct iphdr *iph, const struct tcphdr *th, __cookie_v4_check() argument
211 __u32 mssind = check_tcp_syn_cookie(cookie, iph->saddr, iph->daddr, __cookie_v4_check()
H A Droute.c488 void __ip_select_ident(struct net *net, struct iphdr *iph, int segs) __ip_select_ident() argument
495 hash = jhash_3words((__force u32)iph->daddr, __ip_select_ident()
496 (__force u32)iph->saddr, __ip_select_ident()
497 iph->protocol ^ net_hash_mix(net), __ip_select_ident()
500 iph->id = htons(id); __ip_select_ident()
505 const struct iphdr *iph, __build_flow_key()
520 iph->daddr, iph->saddr, 0, 0); __build_flow_key()
526 const struct iphdr *iph = ip_hdr(skb); build_skb_flow_key() local
528 u8 tos = RT_TOS(iph->tos); build_skb_flow_key()
529 u8 prot = iph->protocol; build_skb_flow_key()
532 __build_flow_key(fl4, sk, iph, oif, tos, prot, mark, 0); build_skb_flow_key()
772 const struct iphdr *iph = (const struct iphdr *) skb->data; __ip_do_redirect() local
773 __be32 daddr = iph->daddr; __ip_do_redirect()
774 __be32 saddr = iph->saddr; __ip_do_redirect()
789 const struct iphdr *iph = (const struct iphdr *) skb->data; ip_do_redirect() local
791 u8 tos = RT_TOS(iph->tos); ip_do_redirect()
792 u8 prot = iph->protocol; ip_do_redirect()
797 __build_flow_key(&fl4, sk, iph, oif, tos, prot, mark, 0); ip_do_redirect()
1008 const struct iphdr *iph = (const struct iphdr *) skb->data; ipv4_update_pmtu() local
1015 __build_flow_key(&fl4, NULL, iph, oif, ipv4_update_pmtu()
1016 RT_TOS(iph->tos), protocol, mark, flow_flags); ipv4_update_pmtu()
1027 const struct iphdr *iph = (const struct iphdr *) skb->data; __ipv4_sk_update_pmtu() local
1031 __build_flow_key(&fl4, sk, iph, 0, 0, 0, 0, 0); __ipv4_sk_update_pmtu()
1045 const struct iphdr *iph = (const struct iphdr *) skb->data; ipv4_sk_update_pmtu() local
1063 __build_flow_key(&fl4, sk, iph, 0, 0, 0, 0, 0); ipv4_sk_update_pmtu()
1099 const struct iphdr *iph = (const struct iphdr *) skb->data; ipv4_redirect() local
1103 __build_flow_key(&fl4, NULL, iph, oif, ipv4_redirect()
1104 RT_TOS(iph->tos), protocol, mark, flow_flags); ipv4_redirect()
1115 const struct iphdr *iph = (const struct iphdr *) skb->data; ipv4_sk_redirect() local
1119 __build_flow_key(&fl4, sk, iph, 0, 0, 0, 0, 0); ipv4_sk_redirect()
1184 struct iphdr *iph; ip_rt_get_source() local
1186 iph = ip_hdr(skb); ip_rt_get_source()
1189 fl4.daddr = iph->daddr; ip_rt_get_source()
1190 fl4.saddr = iph->saddr; ip_rt_get_source()
1191 fl4.flowi4_tos = RT_TOS(iph->tos); ip_rt_get_source()
1201 rt_nexthop(rt, iph->daddr), ip_rt_get_source()
504 __build_flow_key(struct flowi4 *fl4, const struct sock *sk, const struct iphdr *iph, int oif, u8 tos, u8 prot, u32 mark, int flow_flags) __build_flow_key() argument
H A Desp4.c297 const struct iphdr *iph; esp_input_done2() local
322 iph = ip_hdr(skb); esp_input_done2()
323 ihl = iph->ihl * 4; esp_input_done2()
335 if (iph->saddr != x->props.saddr.a4 || esp_input_done2()
339 ipaddr.a4 = iph->saddr; esp_input_done2()
515 const struct iphdr *iph = (const struct iphdr *)skb->data; esp4_err() local
516 struct ip_esp_hdr *esph = (struct ip_esp_hdr *)(skb->data+(iph->ihl<<2)); esp4_err()
529 x = xfrm_state_lookup(net, skb->mark, (const xfrm_address_t *)&iph->daddr, esp4_err()
H A Dtcp_ipv4.c357 const struct iphdr *iph = (const struct iphdr *)icmp_skb->data; tcp_v4_err() local
358 struct tcphdr *th = (struct tcphdr *)(icmp_skb->data + (iph->ihl << 2)); tcp_v4_err()
372 sk = __inet_lookup_established(net, &tcp_hashinfo, iph->daddr, tcp_v4_err()
373 th->dest, iph->saddr, ntohs(th->source), tcp_v4_err()
405 if (unlikely(iph->ttl < inet_sk(sk)->min_ttl)) { tcp_v4_err()
1086 const struct iphdr *iph = ip_hdr(skb); tcp_v4_md5_hash_skb() local
1087 saddr = iph->saddr; tcp_v4_md5_hash_skb()
1088 daddr = iph->daddr; tcp_v4_md5_hash_skb()
1138 const struct iphdr *iph = ip_hdr(skb); tcp_v4_inbound_md5_hash() local
1143 hash_expected = tcp_md5_do_lookup(sk, (union tcp_md5_addr *)&iph->saddr, tcp_v4_inbound_md5_hash()
1170 &iph->saddr, ntohs(th->source), tcp_v4_inbound_md5_hash()
1171 &iph->daddr, ntohs(th->dest), tcp_v4_inbound_md5_hash()
1440 const struct iphdr *iph; tcp_v4_early_demux() local
1450 iph = ip_hdr(skb); tcp_v4_early_demux()
1457 iph->saddr, th->source, tcp_v4_early_demux()
1458 iph->daddr, ntohs(th->dest), tcp_v4_early_demux()
1536 const struct iphdr *iph; tcp_v4_rcv() local
1567 iph = ip_hdr(skb); tcp_v4_rcv()
1581 TCP_SKB_CB(skb)->ip_dsfield = ipv4_get_dsfield(iph); tcp_v4_rcv()
1622 if (unlikely(iph->ttl < inet_sk(sk)->min_ttl)) { tcp_v4_rcv()
1702 iph->saddr, th->source, tcp_v4_rcv()
1703 iph->daddr, th->dest, tcp_v4_rcv()
H A Dtcp_fastopen.c103 const struct iphdr *iph = ip_hdr(syn); tcp_fastopen_cookie_gen() local
105 __be32 path[4] = { iph->saddr, iph->daddr, 0, 0 }; tcp_fastopen_cookie_gen()
H A Dcipso_ipv4.c1590 const struct iphdr *iph = ip_hdr(skb); cipso_v4_optptr() local
1595 for (optlen = iph->ihl*4 - sizeof(struct iphdr); optlen > 0; ) { cipso_v4_optptr()
2230 struct iphdr *iph; cipso_v4_skbuff_setattr() local
2260 iph = ip_hdr(skb); cipso_v4_skbuff_setattr()
2262 memmove((char *)iph - len_delta, iph, iph->ihl << 2); cipso_v4_skbuff_setattr()
2264 iph = ip_hdr(skb); cipso_v4_skbuff_setattr()
2266 iph = ip_hdr(skb); cipso_v4_skbuff_setattr()
2267 memset(iph + 1, IPOPT_NOP, opt->optlen); cipso_v4_skbuff_setattr()
2269 iph = ip_hdr(skb); cipso_v4_skbuff_setattr()
2282 memcpy(iph + 1, buf, buf_len); cipso_v4_skbuff_setattr()
2284 memset((char *)(iph + 1) + buf_len, 0, opt_len - buf_len); cipso_v4_skbuff_setattr()
2286 iph->ihl = 5 + (opt_len >> 2); cipso_v4_skbuff_setattr()
2287 iph->tot_len = htons(skb->len); cipso_v4_skbuff_setattr()
2289 ip_send_check(iph); cipso_v4_skbuff_setattr()
2306 struct iphdr *iph; cipso_v4_skbuff_delattr() local
2322 iph = ip_hdr(skb); cipso_v4_skbuff_delattr()
2323 cipso_ptr = (unsigned char *)iph + opt->cipso; cipso_v4_skbuff_delattr()
2328 ip_send_check(iph); cipso_v4_skbuff_delattr()
H A Digmp.c676 struct iphdr *iph; igmp_send_report() local
717 iph = ip_hdr(skb); igmp_send_report()
720 iph->version = 4; igmp_send_report()
721 iph->ihl = (sizeof(struct iphdr)+4)>>2; igmp_send_report()
722 iph->tos = 0xc0; igmp_send_report()
723 iph->frag_off = htons(IP_DF); igmp_send_report()
724 iph->ttl = 1; igmp_send_report()
725 iph->daddr = dst; igmp_send_report()
726 iph->saddr = fl4.saddr; igmp_send_report()
727 iph->protocol = IPPROTO_IGMP; igmp_send_report()
729 ((u8 *)&iph[1])[0] = IPOPT_RA; igmp_send_report()
730 ((u8 *)&iph[1])[1] = 4; igmp_send_report()
731 ((u8 *)&iph[1])[2] = 0; igmp_send_report()
732 ((u8 *)&iph[1])[3] = 0; igmp_send_report()
1364 const struct iphdr *iph; ip_mc_check_iphdr() local
1366 unsigned int offset = skb_network_offset(skb) + sizeof(*iph); ip_mc_check_iphdr()
1371 iph = ip_hdr(skb); ip_mc_check_iphdr()
1373 if (iph->version != 4 || ip_hdrlen(skb) < sizeof(*iph)) ip_mc_check_iphdr()
1376 offset += ip_hdrlen(skb) - sizeof(*iph); ip_mc_check_iphdr()
1381 iph = ip_hdr(skb); ip_mc_check_iphdr()
1383 if (unlikely(ip_fast_csum((u8 *)iph, iph->ihl))) ip_mc_check_iphdr()
1386 len = skb_network_offset(skb) + ntohs(iph->tot_len); ip_mc_check_iphdr()
H A Dudp.c580 const struct iphdr *iph = ip_hdr(skb); __udp4_lib_lookup_skb() local
582 return __udp4_lib_lookup(dev_net(skb_dst(skb)->dev), iph->saddr, sport, __udp4_lib_lookup_skb()
583 iph->daddr, dport, inet_iif(skb), __udp4_lib_lookup_skb()
628 const struct iphdr *iph = (const struct iphdr *)skb->data; __udp4_lib_err() local
629 struct udphdr *uh = (struct udphdr *)(skb->data+(iph->ihl<<2)); __udp4_lib_err()
637 sk = __udp4_lib_lookup(net, iph->daddr, uh->dest, __udp4_lib_err()
638 iph->saddr, uh->source, skb->dev->ifindex, udptable); __udp4_lib_err()
1972 const struct iphdr *iph; udp_v4_early_demux() local
1983 iph = ip_hdr(skb); udp_v4_early_demux()
1995 ours = ip_check_mc_rcu(in_dev, iph->daddr, iph->saddr, udp_v4_early_demux()
1996 iph->protocol); udp_v4_early_demux()
2001 sk = __udp4_lib_mcast_demux_lookup(net, uh->dest, iph->daddr, udp_v4_early_demux()
2002 uh->source, iph->saddr, dif); udp_v4_early_demux()
2004 sk = __udp4_lib_demux_lookup(net, uh->dest, iph->daddr, udp_v4_early_demux()
2005 uh->source, iph->saddr, dif); udp_v4_early_demux()
H A Dip_sockglue.c135 const struct iphdr *iph = ip_hdr(skb); ip_cmsg_recv_dstaddr() local
147 sin.sin_addr.s_addr = iph->daddr; ip_cmsg_recv_dstaddr()
404 struct iphdr *iph; ip_local_error() local
416 iph = ip_hdr(skb); ip_local_error()
417 iph->daddr = daddr; ip_local_error()
427 serr->addr_offset = (u8 *)&iph->daddr - skb_network_header(skb); ip_local_error()
H A Dfou.c53 struct iphdr *iph = ip_hdr(skb); fou_recv_pull() local
58 iph->tot_len = htons(ntohs(iph->tot_len) - len); fou_recv_pull()
H A Dipconfig.c620 struct iphdr iph; /* IP header */ member in struct:bootp_pkt
986 h = &b->iph; ic_bootp_recv()
1022 h = &b->iph; ic_bootp_recv()
1055 u8 *end = (u8 *) b + ntohs(b->iph.tot_len); ic_bootp_recv()
1100 &ic_myaddr, &b->iph.saddr); ic_bootp_recv()
1145 ic_addrservaddr = b->iph.saddr; ic_bootp_recv()
H A Dinet_fragment.c36 * 0 or INET_ECN_CE value, to be ORed in to final iph->tos field
/linux-4.4.14/net/netfilter/ipvs/
H A Dip_vs_proto_ah_esp.c45 const struct ip_vs_iphdr *iph, ah_esp_conn_fill_param_proto()
48 if (likely(!ip_vs_iph_inverse(iph))) ah_esp_conn_fill_param_proto()
50 &iph->saddr, htons(PORT_ISAKMP), ah_esp_conn_fill_param_proto()
51 &iph->daddr, htons(PORT_ISAKMP), p); ah_esp_conn_fill_param_proto()
54 &iph->daddr, htons(PORT_ISAKMP), ah_esp_conn_fill_param_proto()
55 &iph->saddr, htons(PORT_ISAKMP), p); ah_esp_conn_fill_param_proto()
60 const struct ip_vs_iphdr *iph) ah_esp_conn_in_get()
65 ah_esp_conn_fill_param_proto(ipvs, af, iph, &p); ah_esp_conn_in_get()
74 ip_vs_iph_icmp(iph) ? "ICMP+" : "", ah_esp_conn_in_get()
75 ip_vs_proto_get(iph->protocol)->name, ah_esp_conn_in_get()
76 IP_VS_DBG_ADDR(af, &iph->saddr), ah_esp_conn_in_get()
77 IP_VS_DBG_ADDR(af, &iph->daddr)); ah_esp_conn_in_get()
86 const struct ip_vs_iphdr *iph) ah_esp_conn_out_get()
91 ah_esp_conn_fill_param_proto(ipvs, af, iph, &p); ah_esp_conn_out_get()
96 ip_vs_iph_icmp(iph) ? "ICMP+" : "", ah_esp_conn_out_get()
97 ip_vs_proto_get(iph->protocol)->name, ah_esp_conn_out_get()
98 IP_VS_DBG_ADDR(af, &iph->saddr), ah_esp_conn_out_get()
99 IP_VS_DBG_ADDR(af, &iph->daddr)); ah_esp_conn_out_get()
110 struct ip_vs_iphdr *iph) ah_esp_conn_schedule()
44 ah_esp_conn_fill_param_proto(struct netns_ipvs *ipvs, int af, const struct ip_vs_iphdr *iph, struct ip_vs_conn_param *p) ah_esp_conn_fill_param_proto() argument
59 ah_esp_conn_in_get(struct netns_ipvs *ipvs, int af, const struct sk_buff *skb, const struct ip_vs_iphdr *iph) ah_esp_conn_in_get() argument
85 ah_esp_conn_out_get(struct netns_ipvs *ipvs, int af, const struct sk_buff *skb, const struct ip_vs_iphdr *iph) ah_esp_conn_out_get() argument
107 ah_esp_conn_schedule(struct netns_ipvs *ipvs, int af, struct sk_buff *skb, struct ip_vs_proto_data *pd, int *verdict, struct ip_vs_conn **cpp, struct ip_vs_iphdr *iph) ah_esp_conn_schedule() argument
H A Dip_vs_core.c237 int *ignored, struct ip_vs_iphdr *iph) ip_vs_sched_persist()
250 if (likely(!ip_vs_iph_inverse(iph))) { ip_vs_sched_persist()
251 src_addr = &iph->saddr; ip_vs_sched_persist()
252 dst_addr = &iph->daddr; ip_vs_sched_persist()
254 src_addr = &iph->daddr; ip_vs_sched_persist()
255 dst_addr = &iph->saddr; ip_vs_sched_persist()
288 int protocol = iph->protocol; ip_vs_sched_persist()
335 dest = sched->schedule(svc, skb, iph); ip_vs_sched_persist()
373 && iph->protocol == IPPROTO_UDP) ? ip_vs_sched_persist()
379 ip_vs_conn_fill_param(svc->ipvs, svc->af, iph->protocol, src_addr, ip_vs_sched_persist()
425 struct ip_vs_iphdr *iph) ip_vs_schedule()
439 pptr = frag_safe_skb_hp(skb, iph->len, sizeof(_ports), _ports, iph); ip_vs_schedule()
443 if (likely(!ip_vs_iph_inverse(iph))) { ip_vs_schedule()
445 caddr = &iph->saddr; ip_vs_schedule()
447 vaddr = &iph->daddr; ip_vs_schedule()
450 caddr = &iph->daddr; ip_vs_schedule()
452 vaddr = &iph->saddr; ip_vs_schedule()
462 IP_VS_DBG_PKT(12, svc->af, pp, skb, iph->off, ip_vs_schedule()
471 iph->hdr_flags ^= IP_VS_HDR_INVERSE; ip_vs_schedule()
472 cp = pp->conn_in_get(svc->ipvs, svc->af, skb, iph); ip_vs_schedule()
473 iph->hdr_flags ^= IP_VS_HDR_INVERSE; ip_vs_schedule()
476 IP_VS_DBG_PKT(12, svc->af, pp, skb, iph->off, ip_vs_schedule()
489 iph); ip_vs_schedule()
508 dest = sched->schedule(svc, skb, iph); ip_vs_schedule()
518 && iph->protocol == IPPROTO_UDP) ? ip_vs_schedule()
527 ip_vs_conn_fill_param(svc->ipvs, svc->af, iph->protocol, ip_vs_schedule()
566 struct ip_vs_proto_data *pd, struct ip_vs_iphdr *iph) ip_vs_leave()
572 pptr = frag_safe_skb_hp(skb, iph->len, sizeof(_ports), _ports, iph); ip_vs_leave()
575 dport = likely(!ip_vs_iph_inverse(iph)) ? pptr[1] : pptr[0]; ip_vs_leave()
581 !(iph->hdr_flags & (IP_VS_HDR_INVERSE | IP_VS_HDR_ICMP)) && ip_vs_leave()
582 ip_vs_addr_is_unicast(net, svc->af, &iph->daddr)) { ip_vs_leave()
586 iph->protocol == IPPROTO_UDP) ? ip_vs_leave()
594 ip_vs_conn_fill_param(svc->ipvs, svc->af, iph->protocol, ip_vs_leave()
595 &iph->saddr, pptr[0], ip_vs_leave()
596 &iph->daddr, pptr[1], &p); ip_vs_leave()
611 ret = cp->packet_xmit(skb, cp, pd->pp, iph); ip_vs_leave()
628 if (unlikely(ip_vs_iph_icmp(iph))) ip_vs_leave()
734 struct iphdr *iph = ip_hdr(skb); ip_vs_nat_icmp() local
735 unsigned int icmp_offset = iph->ihl*4; ip_vs_nat_icmp()
741 iph->saddr = cp->vaddr.ip; ip_vs_nat_icmp()
742 ip_send_check(iph); ip_vs_nat_icmp()
746 iph->daddr = cp->daddr.ip; ip_vs_nat_icmp()
747 ip_send_check(iph); ip_vs_nat_icmp()
769 IP_VS_DBG_PKT(11, AF_INET, pp, skb, (void *)ciph - (void *)iph, ip_vs_nat_icmp()
772 IP_VS_DBG_PKT(11, AF_INET, pp, skb, (void *)ciph - (void *)iph, ip_vs_nat_icmp()
780 struct ipv6hdr *iph = ipv6_hdr(skb); ip_vs_nat_icmp_v6() local
796 iph->saddr = cp->vaddr.in6; ip_vs_nat_icmp_v6()
799 iph->daddr = cp->daddr.in6; ip_vs_nat_icmp_v6()
818 icmph->icmp6_cksum = ~csum_ipv6_magic(&iph->saddr, &iph->daddr, ip_vs_nat_icmp_v6()
827 (void *)ciph - (void *)iph, ip_vs_nat_icmp_v6()
831 (void *)ciph - (void *)iph, ip_vs_nat_icmp_v6()
901 struct iphdr *iph; ip_vs_out_icmp() local
918 iph = ip_hdr(skb); ip_vs_out_icmp()
919 offset = ihl = iph->ihl * 4; ip_vs_out_icmp()
926 &iph->saddr, &iph->daddr); ip_vs_out_icmp()
967 snet.ip = iph->saddr; ip_vs_out_icmp()
1057 struct ip_vs_iphdr *iph) is_new_conn()
1059 switch (iph->protocol) { is_new_conn()
1063 th = skb_header_pointer(skb, iph->len, sizeof(_tcph), &_tcph); is_new_conn()
1071 sch = skb_header_pointer(skb, iph->len + sizeof(sctp_sctphdr_t), is_new_conn()
1106 struct ip_vs_conn *cp, struct ip_vs_iphdr *iph, handle_response()
1111 IP_VS_DBG_PKT(11, af, pp, skb, iph->off, "Outgoing packet"); handle_response()
1113 if (!skb_make_writable(skb, iph->len)) handle_response()
1117 if (pp->snat_handler && !pp->snat_handler(skb, pp, cp, iph)) handle_response()
1148 IP_VS_DBG_PKT(10, af, pp, skb, iph->off, "After SNAT"); handle_response()
1175 struct ip_vs_iphdr iph; ip_vs_out() local
1202 ip_vs_fill_iph_skb(af, skb, false, &iph); ip_vs_out()
1205 if (unlikely(iph.protocol == IPPROTO_ICMPV6)) { ip_vs_out()
1208 hooknum, &iph); ip_vs_out()
1215 if (unlikely(iph.protocol == IPPROTO_ICMP)) { ip_vs_out()
1223 pd = ip_vs_proto_data_get(ipvs, iph.protocol); ip_vs_out()
1237 ip_vs_fill_iph_skb(AF_INET, skb, false, &iph); ip_vs_out()
1243 cp = pp->conn_out_get(ipvs, af, skb, &iph); ip_vs_out()
1246 return handle_response(af, skb, pd, cp, &iph, hooknum); ip_vs_out()
1253 pptr = frag_safe_skb_hp(skb, iph.len, ip_vs_out()
1254 sizeof(_ports), _ports, &iph); ip_vs_out()
1257 if (ip_vs_has_real_service(ipvs, af, iph.protocol, &iph.saddr, ip_vs_out()
1264 if ((iph.protocol != IPPROTO_TCP && ip_vs_out()
1265 iph.protocol != IPPROTO_SCTP) ip_vs_out()
1266 || ((iph.protocol == IPPROTO_TCP ip_vs_out()
1267 && !is_tcp_reset(skb, iph.len)) ip_vs_out()
1268 || (iph.protocol == IPPROTO_SCTP ip_vs_out()
1270 iph.len)))) { ip_vs_out()
1288 IP_VS_DBG_PKT(12, af, pp, skb, iph.off, ip_vs_out()
1347 struct ip_vs_iphdr *iph) ip_vs_try_to_schedule()
1351 if (!iph->fragoffs) { ip_vs_try_to_schedule()
1357 if (!pp->conn_schedule(ipvs, af, skb, pd, verdict, cpp, iph)) ip_vs_try_to_schedule()
1363 IP_VS_DBG_PKT(12, af, pp, skb, iph->off, ip_vs_try_to_schedule()
1365 if (iph->fragoffs) { ip_vs_try_to_schedule()
1370 IP_VS_DBG_PKT(7, af, pp, skb, iph->off, ip_vs_try_to_schedule()
1390 struct iphdr *iph; ip_vs_in_icmp() local
1408 iph = ip_hdr(skb); ip_vs_in_icmp()
1409 offset = ihl = iph->ihl * 4; ip_vs_in_icmp()
1416 &iph->saddr, &iph->daddr); ip_vs_in_icmp()
1492 &iph->saddr); ip_vs_in_icmp()
1572 struct ip_vs_iphdr *iph) ip_vs_in_icmp_v6()
1584 ic = frag_safe_skb_hp(skb, iph->len, sizeof(_icmph), &_icmph, iph); ip_vs_in_icmp_v6()
1602 if (iph->flags & IP6_FH_F_FRAG) ip_vs_in_icmp_v6()
1607 &iph->saddr, &iph->daddr); ip_vs_in_icmp_v6()
1609 offset = iph->len + sizeof(_icmph); ip_vs_in_icmp_v6()
1678 struct ip_vs_iphdr iph; ip_vs_in() local
1698 ip_vs_fill_iph_skb(af, skb, false, &iph); ip_vs_in()
1701 skb->pkt_type, iph.protocol, ip_vs_in()
1702 IP_VS_DBG_ADDR(af, &iph.daddr), hooknum); ip_vs_in()
1709 ip_vs_fill_iph_skb(af, skb, false, &iph); ip_vs_in()
1722 if (unlikely(iph.protocol == IPPROTO_ICMPV6)) { ip_vs_in()
1725 hooknum, &iph); ip_vs_in()
1732 if (unlikely(iph.protocol == IPPROTO_ICMP)) { ip_vs_in()
1742 pd = ip_vs_proto_data_get(ipvs, iph.protocol); ip_vs_in()
1757 cp = pp->conn_in_get(ipvs, af, skb, &iph); ip_vs_in()
1760 if (conn_reuse_mode && !iph.fragoffs && is_new_conn(skb, &iph) && cp) { ip_vs_in()
1793 if (!ip_vs_try_to_schedule(ipvs, af, skb, pd, &v, &cp, &iph)) ip_vs_in()
1797 IP_VS_DBG_PKT(11, af, pp, skb, iph.off, "Incoming packet"); ip_vs_in()
1816 ret = cp->packet_xmit(skb, cp, pp, &iph); ip_vs_in()
235 ip_vs_sched_persist(struct ip_vs_service *svc, struct sk_buff *skb, __be16 src_port, __be16 dst_port, int *ignored, struct ip_vs_iphdr *iph) ip_vs_sched_persist() argument
423 ip_vs_schedule(struct ip_vs_service *svc, struct sk_buff *skb, struct ip_vs_proto_data *pd, int *ignored, struct ip_vs_iphdr *iph) ip_vs_schedule() argument
565 ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb, struct ip_vs_proto_data *pd, struct ip_vs_iphdr *iph) ip_vs_leave() argument
1056 is_new_conn(const struct sk_buff *skb, struct ip_vs_iphdr *iph) is_new_conn() argument
1105 handle_response(int af, struct sk_buff *skb, struct ip_vs_proto_data *pd, struct ip_vs_conn *cp, struct ip_vs_iphdr *iph, unsigned int hooknum) handle_response() argument
1344 ip_vs_try_to_schedule(struct netns_ipvs *ipvs, int af, struct sk_buff *skb, struct ip_vs_proto_data *pd, int *verdict, struct ip_vs_conn **cpp, struct ip_vs_iphdr *iph) ip_vs_try_to_schedule() argument
1570 ip_vs_in_icmp_v6(struct netns_ipvs *ipvs, struct sk_buff *skb, int *related, unsigned int hooknum, struct ip_vs_iphdr *iph) ip_vs_in_icmp_v6() argument
H A Dip_vs_proto_udp.c35 struct ip_vs_iphdr *iph) udp_conn_schedule()
41 if (likely(!ip_vs_iph_icmp(iph))) { udp_conn_schedule()
43 uh = skb_header_pointer(skb, iph->len, sizeof(_udph), &_udph); udp_conn_schedule()
48 skb, iph->len, sizeof(_ports), &_ports); udp_conn_schedule()
57 if (likely(!ip_vs_iph_inverse(iph))) udp_conn_schedule()
58 svc = ip_vs_service_find(ipvs, af, skb->mark, iph->protocol, udp_conn_schedule()
59 &iph->daddr, ports[1]); udp_conn_schedule()
61 svc = ip_vs_service_find(ipvs, af, skb->mark, iph->protocol, udp_conn_schedule()
62 &iph->saddr, ports[0]); udp_conn_schedule()
81 *cpp = ip_vs_schedule(svc, skb, pd, &ignored, iph); udp_conn_schedule()
84 *verdict = ip_vs_leave(svc, skb, pd, iph); udp_conn_schedule()
142 struct ip_vs_conn *cp, struct ip_vs_iphdr *iph) udp_snat_handler()
145 unsigned int udphoff = iph->len; udp_snat_handler()
150 if (cp->af == AF_INET6 && iph->fragoffs) udp_snat_handler()
225 struct ip_vs_conn *cp, struct ip_vs_iphdr *iph) udp_dnat_handler()
228 unsigned int udphoff = iph->len; udp_dnat_handler()
233 if (cp->af == AF_INET6 && iph->fragoffs) udp_dnat_handler()
32 udp_conn_schedule(struct netns_ipvs *ipvs, int af, struct sk_buff *skb, struct ip_vs_proto_data *pd, int *verdict, struct ip_vs_conn **cpp, struct ip_vs_iphdr *iph) udp_conn_schedule() argument
141 udp_snat_handler(struct sk_buff *skb, struct ip_vs_protocol *pp, struct ip_vs_conn *cp, struct ip_vs_iphdr *iph) udp_snat_handler() argument
224 udp_dnat_handler(struct sk_buff *skb, struct ip_vs_protocol *pp, struct ip_vs_conn *cp, struct ip_vs_iphdr *iph) udp_dnat_handler() argument
H A Dip_vs_pe_sip.c68 struct ip_vs_iphdr iph; ip_vs_sip_fill_param() local
73 retc = ip_vs_fill_iph_skb(p->af, skb, false, &iph); ip_vs_sip_fill_param()
76 if (!retc || iph.protocol != IPPROTO_UDP) ip_vs_sip_fill_param()
81 dataoff = iph.len + sizeof(struct udphdr); ip_vs_sip_fill_param()
H A Dip_vs_proto_sctp.c15 struct ip_vs_iphdr *iph) sctp_conn_schedule()
22 if (likely(!ip_vs_iph_icmp(iph))) { sctp_conn_schedule()
23 sh = skb_header_pointer(skb, iph->len, sizeof(_sctph), &_sctph); sctp_conn_schedule()
26 skb, iph->len + sizeof(sctp_sctphdr_t), sctp_conn_schedule()
34 skb, iph->len, sizeof(_ports), &_ports); sctp_conn_schedule()
43 if (likely(!ip_vs_iph_inverse(iph))) sctp_conn_schedule()
44 svc = ip_vs_service_find(ipvs, af, skb->mark, iph->protocol, sctp_conn_schedule()
45 &iph->daddr, ports[1]); sctp_conn_schedule()
47 svc = ip_vs_service_find(ipvs, af, skb->mark, iph->protocol, sctp_conn_schedule()
48 &iph->saddr, ports[0]); sctp_conn_schedule()
65 *cpp = ip_vs_schedule(svc, skb, pd, &ignored, iph); sctp_conn_schedule()
68 *verdict = ip_vs_leave(svc, skb, pd, iph); sctp_conn_schedule()
89 struct ip_vs_conn *cp, struct ip_vs_iphdr *iph) sctp_snat_handler()
92 unsigned int sctphoff = iph->len; sctp_snat_handler()
96 if (cp->af == AF_INET6 && iph->fragoffs) sctp_snat_handler()
136 struct ip_vs_conn *cp, struct ip_vs_iphdr *iph) sctp_dnat_handler()
139 unsigned int sctphoff = iph->len; sctp_dnat_handler()
143 if (cp->af == AF_INET6 && iph->fragoffs) sctp_dnat_handler()
12 sctp_conn_schedule(struct netns_ipvs *ipvs, int af, struct sk_buff *skb, struct ip_vs_proto_data *pd, int *verdict, struct ip_vs_conn **cpp, struct ip_vs_iphdr *iph) sctp_conn_schedule() argument
88 sctp_snat_handler(struct sk_buff *skb, struct ip_vs_protocol *pp, struct ip_vs_conn *cp, struct ip_vs_iphdr *iph) sctp_snat_handler() argument
135 sctp_dnat_handler(struct sk_buff *skb, struct ip_vs_protocol *pp, struct ip_vs_conn *cp, struct ip_vs_iphdr *iph) sctp_dnat_handler() argument
H A Dip_vs_proto_tcp.c38 struct ip_vs_iphdr *iph) tcp_conn_schedule()
48 if (likely(!ip_vs_iph_icmp(iph))) { tcp_conn_schedule()
49 th = skb_header_pointer(skb, iph->len, sizeof(_tcph), &_tcph); tcp_conn_schedule()
57 skb, iph->len, sizeof(_ports), &_ports); tcp_conn_schedule()
68 if (likely(!ip_vs_iph_inverse(iph))) tcp_conn_schedule()
69 svc = ip_vs_service_find(ipvs, af, skb->mark, iph->protocol, tcp_conn_schedule()
70 &iph->daddr, ports[1]); tcp_conn_schedule()
72 svc = ip_vs_service_find(ipvs, af, skb->mark, iph->protocol, tcp_conn_schedule()
73 &iph->saddr, ports[0]); tcp_conn_schedule()
92 *cpp = ip_vs_schedule(svc, skb, pd, &ignored, iph); tcp_conn_schedule()
95 *verdict = ip_vs_leave(svc, skb, pd, iph); tcp_conn_schedule()
152 struct ip_vs_conn *cp, struct ip_vs_iphdr *iph) tcp_snat_handler()
155 unsigned int tcphoff = iph->len; tcp_snat_handler()
160 if (cp->af == AF_INET6 && iph->fragoffs) tcp_snat_handler()
230 struct ip_vs_conn *cp, struct ip_vs_iphdr *iph) tcp_dnat_handler()
233 unsigned int tcphoff = iph->len; tcp_dnat_handler()
238 if (cp->af == AF_INET6 && iph->fragoffs) tcp_dnat_handler()
256 * It will fix ip_vs_conn and iph ack_seq stuff tcp_dnat_handler()
35 tcp_conn_schedule(struct netns_ipvs *ipvs, int af, struct sk_buff *skb, struct ip_vs_proto_data *pd, int *verdict, struct ip_vs_conn **cpp, struct ip_vs_iphdr *iph) tcp_conn_schedule() argument
151 tcp_snat_handler(struct sk_buff *skb, struct ip_vs_protocol *pp, struct ip_vs_conn *cp, struct ip_vs_iphdr *iph) tcp_snat_handler() argument
229 tcp_dnat_handler(struct sk_buff *skb, struct ip_vs_protocol *pp, struct ip_vs_conn *cp, struct ip_vs_iphdr *iph) tcp_dnat_handler() argument
H A Dip_vs_sh.c281 ip_vs_sh_get_port(const struct sk_buff *skb, struct ip_vs_iphdr *iph) ip_vs_sh_get_port() argument
290 switch (iph->protocol) { ip_vs_sh_get_port()
294 ports = skb_header_pointer(skb, iph->len, sizeof(_ports), ip_vs_sh_get_port()
299 if (likely(!ip_vs_iph_inverse(iph))) ip_vs_sh_get_port()
314 struct ip_vs_iphdr *iph) ip_vs_sh_schedule()
321 hash_addr = ip_vs_iph_inverse(iph) ? &iph->daddr : &iph->saddr; ip_vs_sh_schedule()
326 port = ip_vs_sh_get_port(skb, iph); ip_vs_sh_schedule()
313 ip_vs_sh_schedule(struct ip_vs_service *svc, const struct sk_buff *skb, struct ip_vs_iphdr *iph) ip_vs_sh_schedule() argument
H A Dip_vs_ftp.c172 struct iphdr *iph; ip_vs_ftp_out() local
204 iph = ip_hdr(skb); ip_vs_ftp_out()
205 th = (struct tcphdr *)&(((char *)iph)[iph->ihl*4]); ip_vs_ftp_out()
226 iph->protocol, &from, port, ip_vs_ftp_out()
272 iph->ihl * 4, ip_vs_ftp_out()
314 struct iphdr *iph; ip_vs_ftp_in() local
344 iph = ip_hdr(skb); ip_vs_ftp_in()
345 th = (struct tcphdr *)&(((char *)iph)[iph->ihl*4]); ip_vs_ftp_in()
387 ip_vs_proto_name(iph->protocol), ip_vs_ftp_in()
393 iph->protocol, &to, port, &cp->vaddr, ip_vs_ftp_in()
H A Dip_vs_xmit.c629 struct iphdr *iph = ip_hdr(skb); ip_vs_bypass_xmit() local
634 if (__ip_vs_get_out_rt(cp->ipvs, cp->af, skb, NULL, iph->daddr, ip_vs_bypass_xmit()
638 ip_send_check(iph); ip_vs_bypass_xmit()
661 struct ipv6hdr *iph = ipv6_hdr(skb); ip_vs_bypass_xmit_v6() local
667 &iph->daddr, NULL, ip_vs_bypass_xmit_v6()
987 struct iphdr *iph; /* Our new IP header */ ip_vs_tunnel_xmit() local
1036 iph = ip_hdr(skb); ip_vs_tunnel_xmit()
1037 iph->version = 4; ip_vs_tunnel_xmit()
1038 iph->ihl = sizeof(struct iphdr)>>2; ip_vs_tunnel_xmit()
1039 iph->frag_off = df; ip_vs_tunnel_xmit()
1040 iph->protocol = next_protocol; ip_vs_tunnel_xmit()
1041 iph->tos = dsfield; ip_vs_tunnel_xmit()
1042 iph->daddr = cp->daddr.ip; ip_vs_tunnel_xmit()
1043 iph->saddr = saddr; ip_vs_tunnel_xmit()
1044 iph->ttl = ttl; ip_vs_tunnel_xmit()
1081 struct ipv6hdr *iph; /* Our new IP header */ ip_vs_tunnel_xmit_v6() local
1129 iph = ipv6_hdr(skb); ip_vs_tunnel_xmit_v6()
1130 iph->version = 6; ip_vs_tunnel_xmit_v6()
1131 iph->nexthdr = next_protocol; ip_vs_tunnel_xmit_v6()
1132 iph->payload_len = htons(payload_len); ip_vs_tunnel_xmit_v6()
1133 memset(&iph->flow_lbl, 0, sizeof(iph->flow_lbl)); ip_vs_tunnel_xmit_v6()
1134 ipv6_change_dsfield(iph, 0, dsfield); ip_vs_tunnel_xmit_v6()
1135 iph->daddr = cp->daddr.in6; ip_vs_tunnel_xmit_v6()
1136 iph->saddr = saddr; ip_vs_tunnel_xmit_v6()
1137 iph->hop_limit = ttl; ip_vs_tunnel_xmit_v6()
1253 struct ip_vs_iphdr *iph) ip_vs_icmp_xmit()
1267 rc = cp->packet_xmit(skb, cp, pp, iph); ip_vs_icmp_xmit()
1286 NULL, iph); ip_vs_icmp_xmit()
1251 ip_vs_icmp_xmit(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp, int offset, unsigned int hooknum, struct ip_vs_iphdr *iph) ip_vs_icmp_xmit() argument
H A Dip_vs_fo.c27 struct ip_vs_iphdr *iph) ip_vs_fo_schedule()
26 ip_vs_fo_schedule(struct ip_vs_service *svc, const struct sk_buff *skb, struct ip_vs_iphdr *iph) ip_vs_fo_schedule() argument
H A Dip_vs_lc.c30 struct ip_vs_iphdr *iph) ip_vs_lc_schedule()
29 ip_vs_lc_schedule(struct ip_vs_service *svc, const struct sk_buff *skb, struct ip_vs_iphdr *iph) ip_vs_lc_schedule() argument
H A Dip_vs_ovf.c31 struct ip_vs_iphdr *iph) ip_vs_ovf_schedule()
30 ip_vs_ovf_schedule(struct ip_vs_service *svc, const struct sk_buff *skb, struct ip_vs_iphdr *iph) ip_vs_ovf_schedule() argument
H A Dip_vs_conn.c319 const struct ip_vs_iphdr *iph, ip_vs_conn_fill_param_proto()
324 pptr = frag_safe_skb_hp(skb, iph->len, sizeof(_ports), _ports, iph); ip_vs_conn_fill_param_proto()
328 if (likely(!ip_vs_iph_inverse(iph))) ip_vs_conn_fill_param_proto()
329 ip_vs_conn_fill_param(ipvs, af, iph->protocol, &iph->saddr, ip_vs_conn_fill_param_proto()
330 pptr[0], &iph->daddr, pptr[1], p); ip_vs_conn_fill_param_proto()
332 ip_vs_conn_fill_param(ipvs, af, iph->protocol, &iph->daddr, ip_vs_conn_fill_param_proto()
333 pptr[1], &iph->saddr, pptr[0], p); ip_vs_conn_fill_param_proto()
340 const struct ip_vs_iphdr *iph) ip_vs_conn_in_get_proto()
344 if (ip_vs_conn_fill_param_proto(ipvs, af, skb, iph, &p)) ip_vs_conn_in_get_proto()
445 const struct ip_vs_iphdr *iph) ip_vs_conn_out_get_proto()
449 if (ip_vs_conn_fill_param_proto(ipvs, af, skb, iph, &p)) ip_vs_conn_out_get_proto()
317 ip_vs_conn_fill_param_proto(struct netns_ipvs *ipvs, int af, const struct sk_buff *skb, const struct ip_vs_iphdr *iph, struct ip_vs_conn_param *p) ip_vs_conn_fill_param_proto() argument
338 ip_vs_conn_in_get_proto(struct netns_ipvs *ipvs, int af, const struct sk_buff *skb, const struct ip_vs_iphdr *iph) ip_vs_conn_in_get_proto() argument
443 ip_vs_conn_out_get_proto(struct netns_ipvs *ipvs, int af, const struct sk_buff *skb, const struct ip_vs_iphdr *iph) ip_vs_conn_out_get_proto() argument
H A Dip_vs_dh.c218 struct ip_vs_iphdr *iph) ip_vs_dh_schedule()
226 dest = ip_vs_dh_get(svc->af, s, &iph->daddr); ip_vs_dh_schedule()
236 IP_VS_DBG_ADDR(svc->af, &iph->daddr), ip_vs_dh_schedule()
217 ip_vs_dh_schedule(struct ip_vs_service *svc, const struct sk_buff *skb, struct ip_vs_iphdr *iph) ip_vs_dh_schedule() argument
H A Dip_vs_lblc.c484 struct ip_vs_iphdr *iph) ip_vs_lblc_schedule()
493 en = ip_vs_lblc_get(svc->af, tbl, &iph->daddr); ip_vs_lblc_schedule()
523 ip_vs_lblc_new(tbl, &iph->daddr, svc->af, dest); ip_vs_lblc_schedule()
528 IP_VS_DBG_ADDR(svc->af, &iph->daddr), ip_vs_lblc_schedule()
483 ip_vs_lblc_schedule(struct ip_vs_service *svc, const struct sk_buff *skb, struct ip_vs_iphdr *iph) ip_vs_lblc_schedule() argument
H A Dip_vs_nq.c59 struct ip_vs_iphdr *iph) ip_vs_nq_schedule()
58 ip_vs_nq_schedule(struct ip_vs_service *svc, const struct sk_buff *skb, struct ip_vs_iphdr *iph) ip_vs_nq_schedule() argument
H A Dip_vs_rr.c59 struct ip_vs_iphdr *iph) ip_vs_rr_schedule()
58 ip_vs_rr_schedule(struct ip_vs_service *svc, const struct sk_buff *skb, struct ip_vs_iphdr *iph) ip_vs_rr_schedule() argument
H A Dip_vs_wlc.c35 struct ip_vs_iphdr *iph) ip_vs_wlc_schedule()
34 ip_vs_wlc_schedule(struct ip_vs_service *svc, const struct sk_buff *skb, struct ip_vs_iphdr *iph) ip_vs_wlc_schedule() argument
H A Dip_vs_lblcr.c648 struct ip_vs_iphdr *iph) ip_vs_lblcr_schedule()
657 en = ip_vs_lblcr_get(svc->af, tbl, &iph->daddr); ip_vs_lblcr_schedule()
708 ip_vs_lblcr_new(tbl, &iph->daddr, svc->af, dest); ip_vs_lblcr_schedule()
713 IP_VS_DBG_ADDR(svc->af, &iph->daddr), ip_vs_lblcr_schedule()
647 ip_vs_lblcr_schedule(struct ip_vs_service *svc, const struct sk_buff *skb, struct ip_vs_iphdr *iph) ip_vs_lblcr_schedule() argument
H A Dip_vs_sed.c63 struct ip_vs_iphdr *iph) ip_vs_sed_schedule()
62 ip_vs_sed_schedule(struct ip_vs_service *svc, const struct sk_buff *skb, struct ip_vs_iphdr *iph) ip_vs_sed_schedule() argument
H A Dip_vs_wrr.c166 struct ip_vs_iphdr *iph) ip_vs_wrr_schedule()
165 ip_vs_wrr_schedule(struct ip_vs_service *svc, const struct sk_buff *skb, struct ip_vs_iphdr *iph) ip_vs_wrr_schedule() argument
/linux-4.4.14/net/ipv4/netfilter/
H A Dnft_chain_route_ipv4.c33 const struct iphdr *iph; nf_route_table_hook() local
43 iph = ip_hdr(skb); nf_route_table_hook()
44 saddr = iph->saddr; nf_route_table_hook()
45 daddr = iph->daddr; nf_route_table_hook()
46 tos = iph->tos; nf_route_table_hook()
50 iph = ip_hdr(skb); nf_route_table_hook()
52 if (iph->saddr != saddr || nf_route_table_hook()
53 iph->daddr != daddr || nf_route_table_hook()
55 iph->tos != tos) nf_route_table_hook()
H A Diptable_mangle.c43 const struct iphdr *iph; ipt_mangle_out() local
56 iph = ip_hdr(skb); ipt_mangle_out()
57 saddr = iph->saddr; ipt_mangle_out()
58 daddr = iph->daddr; ipt_mangle_out()
59 tos = iph->tos; ipt_mangle_out()
64 iph = ip_hdr(skb); ipt_mangle_out()
66 if (iph->saddr != saddr || ipt_mangle_out()
67 iph->daddr != daddr || ipt_mangle_out()
69 iph->tos != tos) { ipt_mangle_out()
H A Dipt_ECN.c31 struct iphdr *iph = ip_hdr(skb); set_ect_ip() local
33 if ((iph->tos & IPT_ECN_IP_MASK) != (einfo->ip_ect & IPT_ECN_IP_MASK)) { set_ect_ip()
37 iph = ip_hdr(skb); set_ect_ip()
38 oldtos = iph->tos; set_ect_ip()
39 iph->tos &= ~IPT_ECN_IP_MASK; set_ect_ip()
40 iph->tos |= (einfo->ip_ect & IPT_ECN_IP_MASK); set_ect_ip()
41 csum_replace2(&iph->check, htons(oldtos), htons(iph->tos)); set_ect_ip()
H A Dipt_SYNPROXY.c23 struct iphdr *iph; synproxy_build_ip() local
26 iph = (struct iphdr *)skb_put(skb, sizeof(*iph)); synproxy_build_ip()
27 iph->version = 4; synproxy_build_ip()
28 iph->ihl = sizeof(*iph) / 4; synproxy_build_ip()
29 iph->tos = 0; synproxy_build_ip()
30 iph->id = 0; synproxy_build_ip()
31 iph->frag_off = htons(IP_DF); synproxy_build_ip()
32 iph->ttl = sysctl_ip_default_ttl; synproxy_build_ip()
33 iph->protocol = IPPROTO_TCP; synproxy_build_ip()
34 iph->check = 0; synproxy_build_ip()
35 iph->saddr = saddr; synproxy_build_ip()
36 iph->daddr = daddr; synproxy_build_ip()
38 return iph; synproxy_build_ip()
79 struct iphdr *iph, *niph; synproxy_send_client_synack() local
84 iph = ip_hdr(skb); synproxy_send_client_synack()
93 niph = synproxy_build_ip(nskb, iph->daddr, iph->saddr); synproxy_send_client_synack()
99 nth->seq = htonl(__cookie_v4_init_sequence(iph, th, &mss)); synproxy_send_client_synack()
121 struct iphdr *iph, *niph; synproxy_send_server_syn() local
125 iph = ip_hdr(skb); synproxy_send_server_syn()
134 niph = synproxy_build_ip(nskb, iph->saddr, iph->daddr); synproxy_send_server_syn()
166 struct iphdr *iph, *niph; synproxy_send_server_ack() local
170 iph = ip_hdr(skb); synproxy_send_server_ack()
179 niph = synproxy_build_ip(nskb, iph->daddr, iph->saddr); synproxy_send_server_ack()
204 struct iphdr *iph, *niph; synproxy_send_client_ack() local
208 iph = ip_hdr(skb); synproxy_send_client_ack()
217 niph = synproxy_build_ip(nskb, iph->saddr, iph->daddr); synproxy_send_client_ack()
H A Dipt_rpfilter.c75 const struct iphdr *iph; rpfilter_mt() local
85 iph = ip_hdr(skb); rpfilter_mt()
86 if (ipv4_is_multicast(iph->daddr)) { rpfilter_mt()
87 if (ipv4_is_zeronet(iph->saddr)) rpfilter_mt()
88 return ipv4_is_local_multicast(iph->daddr) ^ invert; rpfilter_mt()
91 flow.daddr = iph->saddr; rpfilter_mt()
92 flow.saddr = rpfilter_get_saddr(iph->daddr); rpfilter_mt()
95 flow.flowi4_tos = RT_TOS(iph->tos); rpfilter_mt()
H A Dnf_dup_ipv4.c29 const struct iphdr *iph = ip_hdr(skb); nf_dup_ipv4_route() local
38 fl4.flowi4_tos = RT_TOS(iph->tos); nf_dup_ipv4_route()
56 struct iphdr *iph; nf_dup_ipv4() local
86 iph = ip_hdr(skb); nf_dup_ipv4()
87 iph->frag_off |= htons(IP_DF); nf_dup_ipv4()
90 --iph->ttl; nf_dup_ipv4()
91 ip_send_check(iph); nf_dup_ipv4()
H A Dnf_nat_l3proto_ipv4.c84 struct iphdr *iph; nf_nat_ipv4_manip_pkt() local
87 if (!skb_make_writable(skb, iphdroff + sizeof(*iph))) nf_nat_ipv4_manip_pkt()
90 iph = (void *)skb->data + iphdroff; nf_nat_ipv4_manip_pkt()
91 hdroff = iphdroff + iph->ihl * 4; nf_nat_ipv4_manip_pkt()
96 iph = (void *)skb->data + iphdroff; nf_nat_ipv4_manip_pkt()
99 csum_replace4(&iph->check, iph->saddr, target->src.u3.ip); nf_nat_ipv4_manip_pkt()
100 iph->saddr = target->src.u3.ip; nf_nat_ipv4_manip_pkt()
102 csum_replace4(&iph->check, iph->daddr, target->dst.u3.ip); nf_nat_ipv4_manip_pkt()
103 iph->daddr = target->dst.u3.ip; nf_nat_ipv4_manip_pkt()
113 struct iphdr *iph = (struct iphdr *)(skb->data + iphdroff); nf_nat_ipv4_csum_update() local
117 oldip = iph->saddr; nf_nat_ipv4_csum_update()
120 oldip = iph->daddr; nf_nat_ipv4_csum_update()
130 const struct iphdr *iph = ip_hdr(skb); nf_nat_ipv4_csum_recalc() local
141 *check = ~csum_tcpudp_magic(iph->saddr, iph->daddr, nf_nat_ipv4_csum_recalc()
145 *check = csum_tcpudp_magic(iph->saddr, iph->daddr, nf_nat_ipv4_csum_recalc()
H A Dnf_reject_ipv4.c171 struct iphdr *iph = ip_hdr(skb_in); nf_send_unreach() local
174 if (skb_in->csum_bad || iph->frag_off & htons(IP_OFFSET)) nf_send_unreach()
182 if (iph->protocol == IPPROTO_TCP || iph->protocol == IPPROTO_UDP) nf_send_unreach()
183 proto = iph->protocol; nf_send_unreach()
H A Dnf_conntrack_l3proto_ipv4.c69 const struct iphdr *iph; ipv4_get_l4proto() local
72 iph = skb_header_pointer(skb, nhoff, sizeof(_iph), &_iph); ipv4_get_l4proto()
73 if (iph == NULL) ipv4_get_l4proto()
78 if (iph->frag_off & htons(IP_OFFSET)) ipv4_get_l4proto()
81 *dataoff = nhoff + (iph->ihl << 2); ipv4_get_l4proto()
82 *protonum = iph->protocol; ipv4_get_l4proto()
88 nhoff, iph->ihl << 2, skb->len); ipv4_get_l4proto()
H A Dipt_CLUSTERIP.c245 const struct iphdr *iph = ip_hdr(skb); clusterip_hashfn() local
250 poff = proto_ports_offset(iph->protocol); clusterip_hashfn()
255 ports = skb_header_pointer(skb, iph->ihl * 4 + poff, 4, _ports); clusterip_hashfn()
261 net_info_ratelimited("unknown protocol %u\n", iph->protocol); clusterip_hashfn()
266 hashval = jhash_1word(ntohl(iph->saddr), clusterip_hashfn()
270 hashval = jhash_2words(ntohl(iph->saddr), sport, clusterip_hashfn()
274 hashval = jhash_3words(ntohl(iph->saddr), sport, dport, clusterip_hashfn()
H A Dnf_nat_snmp_basic.c1184 struct iphdr *iph = ip_hdr(skb); snmp_translate() local
1185 struct udphdr *udph = (struct udphdr *)((__be32 *)iph + iph->ihl); snmp_translate()
1224 const struct iphdr *iph = ip_hdr(skb); help() local
1225 const struct udphdr *udph = (struct udphdr *)((__be32 *)iph + iph->ihl); help()
1243 if (ntohs(udph->len) != skb->len - (iph->ihl << 2)) { help()
1245 &iph->saddr, &iph->daddr); help()
/linux-4.4.14/net/netfilter/
H A Dxt_iprange.c23 const struct iphdr *iph = ip_hdr(skb); iprange_mt4() local
27 m = ntohl(iph->saddr) < ntohl(info->src_min.ip); iprange_mt4()
28 m |= ntohl(iph->saddr) > ntohl(info->src_max.ip); iprange_mt4()
32 &iph->saddr, iprange_mt4()
40 m = ntohl(iph->daddr) < ntohl(info->dst_min.ip); iprange_mt4()
41 m |= ntohl(iph->daddr) > ntohl(info->dst_max.ip); iprange_mt4()
45 &iph->daddr, iprange_mt4()
72 const struct ipv6hdr *iph = ipv6_hdr(skb); iprange_mt6() local
76 m = iprange_ipv6_lt(&iph->saddr, &info->src_min.in6); iprange_mt6()
77 m |= iprange_ipv6_lt(&info->src_max.in6, &iph->saddr); iprange_mt6()
81 &iph->saddr, iprange_mt6()
89 m = iprange_ipv6_lt(&iph->daddr, &info->dst_min.in6); iprange_mt6()
90 m |= iprange_ipv6_lt(&info->dst_max.in6, &iph->daddr); iprange_mt6()
94 &iph->daddr, iprange_mt6()
H A Dxt_HL.c31 struct iphdr *iph; ttl_tg() local
38 iph = ip_hdr(skb); ttl_tg()
45 new_ttl = iph->ttl + info->ttl; ttl_tg()
50 new_ttl = iph->ttl - info->ttl; ttl_tg()
55 new_ttl = iph->ttl; ttl_tg()
59 if (new_ttl != iph->ttl) { ttl_tg()
60 csum_replace2(&iph->check, htons(iph->ttl << 8), ttl_tg()
62 iph->ttl = new_ttl; ttl_tg()
H A Dxt_DSCP.c80 struct iphdr *iph = ip_hdr(skb); tos_tg() local
83 orig = ipv4_get_dsfield(iph); tos_tg()
89 iph = ip_hdr(skb); tos_tg()
90 ipv4_change_dsfield(iph, 0, nv); tos_tg()
100 struct ipv6hdr *iph = ipv6_hdr(skb); tos_tg6() local
103 orig = ipv6_get_dsfield(iph); tos_tg6()
109 iph = ipv6_hdr(skb); tos_tg6()
110 ipv6_change_dsfield(iph, 0, nv); tos_tg6()
H A Dnf_tables_netdev.c23 struct iphdr *iph, _iph; nft_netdev_set_pktinfo_ipv4() local
28 iph = skb_header_pointer(skb, skb_network_offset(skb), sizeof(*iph), nft_netdev_set_pktinfo_ipv4()
30 if (!iph) nft_netdev_set_pktinfo_ipv4()
33 iph = ip_hdr(skb); nft_netdev_set_pktinfo_ipv4()
34 if (iph->ihl < 5 || iph->version != 4) nft_netdev_set_pktinfo_ipv4()
37 len = ntohs(iph->tot_len); nft_netdev_set_pktinfo_ipv4()
38 thoff = iph->ihl * 4; nft_netdev_set_pktinfo_ipv4()
44 pkt->tprot = iph->protocol; nft_netdev_set_pktinfo_ipv4()
46 pkt->xt.fragoff = ntohs(iph->frag_off) & IP_OFFSET; nft_netdev_set_pktinfo_ipv4()
H A Dxt_ipvs.c54 struct ip_vs_iphdr iph; ipvs_mt() local
71 ip_vs_fill_iph_skb(family, skb, true, &iph); ipvs_mt()
74 if ((iph.protocol == data->l4proto) ^ ipvs_mt()
80 pp = ip_vs_proto_get(iph.protocol); ipvs_mt()
89 cp = pp->conn_out_get(ipvs, family, skb, &iph); ipvs_mt()
H A Dxt_TPROXY.c256 const struct iphdr *iph = ip_hdr(skb); tproxy_handle_time_wait4() local
270 sk2 = nf_tproxy_get_sock_v4(net, iph->protocol, tproxy_handle_time_wait4()
271 iph->saddr, laddr ? laddr : iph->daddr, tproxy_handle_time_wait4()
296 const struct iphdr *iph = ip_hdr(skb); tproxy_tg4() local
308 sk = nf_tproxy_get_sock_v4(net, iph->protocol, tproxy_tg4()
309 iph->saddr, iph->daddr, tproxy_tg4()
313 laddr = tproxy_laddr4(skb, laddr, iph->daddr); tproxy_tg4()
324 sk = nf_tproxy_get_sock_v4(net, iph->protocol, tproxy_tg4()
325 iph->saddr, laddr, tproxy_tg4()
336 iph->protocol, &iph->daddr, ntohs(hp->dest), tproxy_tg4()
344 iph->protocol, &iph->saddr, ntohs(hp->source), tproxy_tg4()
345 &iph->daddr, ntohs(hp->dest), skb->mark); tproxy_tg4()
417 const struct ipv6hdr *iph = ipv6_hdr(skb); tproxy_handle_time_wait6() local
433 &iph->saddr, tproxy_handle_time_wait6()
434 tproxy_laddr6(skb, &tgi->laddr.in6, &iph->daddr), tproxy_handle_time_wait6()
450 const struct ipv6hdr *iph = ipv6_hdr(skb); tproxy_tg6_v1() local
476 &iph->saddr, &iph->daddr, tproxy_tg6_v1()
480 laddr = tproxy_laddr6(skb, &tgi->laddr.in6, &iph->daddr); tproxy_tg6_v1()
491 &iph->saddr, laddr, tproxy_tg6_v1()
502 tproto, &iph->saddr, ntohs(hp->source), tproxy_tg6_v1()
510 tproto, &iph->saddr, ntohs(hp->source), tproxy_tg6_v1()
511 &iph->daddr, ntohs(hp->dest), skb->mark); tproxy_tg6_v1()
H A Dxt_addrtype.c106 const struct ipv6hdr *iph = ipv6_hdr(skb); addrtype_mt6() local
110 ret &= match_type6(net, dev, &iph->saddr, info->source) ^ addrtype_mt6()
113 ret &= match_type6(net, dev, &iph->daddr, info->dest) ^ addrtype_mt6()
130 const struct iphdr *iph = ip_hdr(skb); addrtype_mt_v0() local
134 ret &= match_type(net, NULL, iph->saddr, info->source) ^ addrtype_mt_v0()
137 ret &= match_type(net, NULL, iph->daddr, info->dest) ^ addrtype_mt_v0()
148 const struct iphdr *iph; addrtype_mt_v1() local
161 iph = ip_hdr(skb); addrtype_mt_v1()
163 ret &= match_type(net, dev, iph->saddr, info->source) ^ addrtype_mt_v1()
166 ret &= match_type(net, dev, iph->daddr, info->dest) ^ addrtype_mt_v1()
H A Dnf_conntrack_broadcast.c29 struct iphdr *iph = ip_hdr(skb); nf_conntrack_broadcast_help() local
47 if (ifa->ifa_broadcast == iph->daddr) { for_primary_ifa()
H A Dxt_TCPMSS.c206 struct iphdr *iph = ip_hdr(skb); tcpmss_tg4() local
212 iph->ihl * 4, tcpmss_tg4()
213 sizeof(*iph) + sizeof(struct tcphdr)); tcpmss_tg4()
217 iph = ip_hdr(skb); tcpmss_tg4()
218 newlen = htons(ntohs(iph->tot_len) + ret); tcpmss_tg4()
219 csum_replace2(&iph->check, iph->tot_len, newlen); tcpmss_tg4()
220 iph->tot_len = newlen; tcpmss_tg4()
H A Dxt_socket.c150 const struct iphdr *iph = ip_hdr(skb); xt_socket_lookup_slow_v4() local
159 if (iph->protocol == IPPROTO_UDP || iph->protocol == IPPROTO_TCP) { xt_socket_lookup_slow_v4()
167 protocol = iph->protocol; xt_socket_lookup_slow_v4()
168 saddr = iph->saddr; xt_socket_lookup_slow_v4()
170 daddr = iph->daddr; xt_socket_lookup_slow_v4()
173 } else if (iph->protocol == IPPROTO_ICMP) { xt_socket_lookup_slow_v4()
188 ((iph->protocol != IPPROTO_ICMP && xt_socket_lookup_slow_v4()
190 (iph->protocol == IPPROTO_ICMP && xt_socket_lookup_slow_v4()
195 dport = (iph->protocol == IPPROTO_TCP) ? xt_socket_lookup_slow_v4()
345 struct ipv6hdr *iph = ipv6_hdr(skb); xt_socket_lookup_slow_v6() local
361 saddr = &iph->saddr; xt_socket_lookup_slow_v6()
363 daddr = &iph->daddr; xt_socket_lookup_slow_v6()
H A Dxt_connlimit.c340 const struct ipv6hdr *iph = ipv6_hdr(skb); connlimit_mt() local
342 &iph->daddr : &iph->saddr, sizeof(addr.ip6)); connlimit_mt()
344 const struct iphdr *iph = ip_hdr(skb); connlimit_mt() local
346 iph->daddr : iph->saddr; connlimit_mt()
H A Dnf_conntrack_irc.c110 const struct iphdr *iph; help() local
161 iph = ip_hdr(skb); help()
163 &iph->saddr, ntohs(th->source), help()
164 &iph->daddr, ntohs(th->dest)); help()
H A Dxt_recent.c250 const struct iphdr *iph = ip_hdr(skb); recent_mt() local
253 addr.ip = iph->daddr; recent_mt()
255 addr.ip = iph->saddr; recent_mt()
257 ttl = iph->ttl; recent_mt()
259 const struct ipv6hdr *iph = ipv6_hdr(skb); recent_mt() local
262 memcpy(&addr.in6, &iph->daddr, sizeof(addr.in6)); recent_mt()
264 memcpy(&addr.in6, &iph->saddr, sizeof(addr.in6)); recent_mt()
266 ttl = iph->hop_limit; recent_mt()
H A Dxt_l2tp.c175 struct iphdr *iph = ip_hdr(skb); l2tp_mt4() local
176 u8 ipproto = iph->protocol; l2tp_mt4()
/linux-4.4.14/include/net/netfilter/
H A Dnf_queue.h46 const struct iphdr *iph = ip_hdr(skb); hash_v4() local
49 if ((__force u32)iph->saddr < (__force u32)iph->daddr) hash_v4()
50 return jhash_3words((__force u32)iph->saddr, hash_v4()
51 (__force u32)iph->daddr, iph->protocol, jhash_initval); hash_v4()
53 return jhash_3words((__force u32)iph->daddr, hash_v4()
54 (__force u32)iph->saddr, iph->protocol, jhash_initval); hash_v4()
/linux-4.4.14/net/sched/
H A Dact_nat.c91 struct iphdr *iph; tcf_nat() local
118 if (!pskb_may_pull(skb, sizeof(*iph) + noff)) tcf_nat()
121 iph = ip_hdr(skb); tcf_nat()
124 addr = iph->saddr; tcf_nat()
126 addr = iph->daddr; tcf_nat()
130 !skb_clone_writable(skb, sizeof(*iph) + noff) && tcf_nat()
138 iph = ip_hdr(skb); tcf_nat()
140 iph->saddr = new_addr; tcf_nat()
142 iph->daddr = new_addr; tcf_nat()
144 csum_replace4(&iph->check, addr, new_addr); tcf_nat()
145 } else if ((iph->frag_off & htons(IP_OFFSET)) || tcf_nat()
146 iph->protocol != IPPROTO_ICMP) { tcf_nat()
150 ihl = iph->ihl * 4; tcf_nat()
153 switch (iph->frag_off & htons(IP_OFFSET) ? 0 : iph->protocol) { tcf_nat()
202 if (!pskb_may_pull(skb, ihl + sizeof(*icmph) + sizeof(*iph) + tcf_nat()
207 iph = (void *)(icmph + 1); tcf_nat()
209 addr = iph->daddr; tcf_nat()
211 addr = iph->saddr; tcf_nat()
218 sizeof(*iph) + noff) && tcf_nat()
223 iph = (void *)(icmph + 1); tcf_nat()
230 iph->daddr = new_addr; tcf_nat()
232 iph->saddr = new_addr; tcf_nat()
H A Dact_csum.c178 const struct iphdr *iph; tcf_csum_ipv4_tcp() local
184 iph = ip_hdr(skb); tcf_csum_ipv4_tcp()
188 iph->saddr, iph->daddr, skb->csum); tcf_csum_ipv4_tcp()
221 const struct iphdr *iph; tcf_csum_ipv4_udp() local
228 * Use iph->tot_len, or just ipl. tcf_csum_ipv4_udp()
235 iph = ip_hdr(skb); tcf_csum_ipv4_udp()
256 udph->check = csum_tcpudp_magic(iph->saddr, iph->daddr, tcf_csum_ipv4_udp()
257 ul, iph->protocol, tcf_csum_ipv4_udp()
324 const struct iphdr *iph; tcf_csum_ipv4() local
329 if (!pskb_may_pull(skb, sizeof(*iph) + ntkoff)) tcf_csum_ipv4()
332 iph = ip_hdr(skb); tcf_csum_ipv4()
334 switch (iph->frag_off & htons(IP_OFFSET) ? 0 : iph->protocol) { tcf_csum_ipv4()
337 if (!tcf_csum_ipv4_icmp(skb, iph->ihl * 4, tcf_csum_ipv4()
338 ntohs(iph->tot_len))) tcf_csum_ipv4()
343 if (!tcf_csum_ipv4_igmp(skb, iph->ihl * 4, tcf_csum_ipv4()
344 ntohs(iph->tot_len))) tcf_csum_ipv4()
349 if (!tcf_csum_ipv4_tcp(skb, iph->ihl * 4, tcf_csum_ipv4()
350 ntohs(iph->tot_len))) tcf_csum_ipv4()
355 if (!tcf_csum_ipv4_udp(skb, iph->ihl * 4, tcf_csum_ipv4()
356 ntohs(iph->tot_len), 0)) tcf_csum_ipv4()
361 if (!tcf_csum_ipv4_udp(skb, iph->ihl * 4, tcf_csum_ipv4()
362 ntohs(iph->tot_len), 1)) tcf_csum_ipv4()
369 !skb_clone_writable(skb, sizeof(*iph) + ntkoff) && tcf_csum_ipv4()
/linux-4.4.14/net/ipv6/
H A Dip6_offload.c143 static int ipv6_exthdrs_len(struct ipv6hdr *iph, ipv6_exthdrs_len() argument
146 struct ipv6_opt_hdr *opth = (void *)iph; ipv6_exthdrs_len()
147 int len = 0, proto, optlen = sizeof(*iph); ipv6_exthdrs_len()
149 proto = iph->nexthdr; ipv6_exthdrs_len()
172 struct ipv6hdr *iph; ipv6_gro_receive() local
180 hlen = off + sizeof(*iph); ipv6_gro_receive()
181 iph = skb_gro_header_fast(skb, off); ipv6_gro_receive()
183 iph = skb_gro_header_slow(skb, hlen, off); ipv6_gro_receive()
184 if (unlikely(!iph)) ipv6_gro_receive()
189 skb_gro_pull(skb, sizeof(*iph)); ipv6_gro_receive()
192 flush += ntohs(iph->payload_len) != skb_gro_len(skb); ipv6_gro_receive()
195 proto = iph->nexthdr; ipv6_gro_receive()
208 iph = ipv6_hdr(skb); ipv6_gro_receive()
224 first_word = *(__be32 *)iph ^ *(__be32 *)iph2; ipv6_gro_receive()
233 memcmp(&iph->nexthdr, &iph2->nexthdr, ipv6_gro_receive()
248 skb_gro_postpull_rcsum(skb, iph, nlen); ipv6_gro_receive()
264 struct ipv6hdr *iph = (struct ipv6hdr *)(skb->data + nhoff); ipv6_gro_complete() local
270 iph->payload_len = htons(skb->len - nhoff - sizeof(*iph)); ipv6_gro_complete()
274 nhoff += sizeof(*iph) + ipv6_exthdrs_len(iph, &ops); ipv6_gro_complete()
H A Dsit.c102 if (local == t->parms.iph.saddr && ipip6_tunnel_lookup()
103 remote == t->parms.iph.daddr && ipip6_tunnel_lookup()
109 if (remote == t->parms.iph.daddr && ipip6_tunnel_lookup()
115 if (local == t->parms.iph.saddr && ipip6_tunnel_lookup()
129 __be32 remote = parms->iph.daddr; __ipip6_bucket()
130 __be32 local = parms->iph.saddr; __ipip6_bucket()
198 memcpy(dev->dev_addr, &t->parms.iph.saddr, 4); ipip6_tunnel_create()
199 memcpy(dev->broadcast, &t->parms.iph.daddr, 4); ipip6_tunnel_create()
224 __be32 remote = parms->iph.daddr; ipip6_tunnel_locate()
225 __be32 local = parms->iph.saddr; ipip6_tunnel_locate()
235 if (local == t->parms.iph.saddr && ipip6_tunnel_locate()
236 remote == t->parms.iph.daddr && ipip6_tunnel_locate()
441 isatap_chksrc(struct sk_buff *skb, const struct iphdr *iph, struct ip_tunnel *t) isatap_chksrc() argument
447 p = __ipip6_tunnel_locate_prl(t, iph->saddr); isatap_chksrc()
457 (addr6->s6_addr32[3] == iph->saddr) && isatap_chksrc()
520 const struct iphdr *iph = (const struct iphdr *)skb->data; ipip6_err() local
556 iph->daddr, ipip6_err()
557 iph->saddr); ipip6_err()
574 if (t->parms.iph.daddr == 0) ipip6_err()
581 if (t->parms.iph.ttl == 0 && type == ICMP_TIME_EXCEEDED) ipip6_err()
630 const struct iphdr *iph, packet_is_spoofed()
636 if (!isatap_chksrc(skb, iph, tunnel)) packet_is_spoofed()
647 if (unlikely(is_spoofed_6rd(tunnel, iph->saddr, &ipv6h->saddr))) { packet_is_spoofed()
649 &iph->saddr, &ipv6h->saddr, packet_is_spoofed()
650 &iph->daddr, &ipv6h->daddr); packet_is_spoofed()
654 if (likely(!is_spoofed_6rd(tunnel, iph->daddr, &ipv6h->daddr))) packet_is_spoofed()
661 &iph->saddr, &ipv6h->saddr, packet_is_spoofed()
662 &iph->daddr, &ipv6h->daddr); packet_is_spoofed()
668 const struct iphdr *iph = ip_hdr(skb); ipip6_rcv() local
673 iph->saddr, iph->daddr); ipip6_rcv()
677 if (tunnel->parms.iph.protocol != IPPROTO_IPV6 && ipip6_rcv()
678 tunnel->parms.iph.protocol != 0) ipip6_rcv()
686 if (packet_is_spoofed(skb, iph, tunnel)) { ipip6_rcv()
693 err = IP_ECN_decapsulate(iph, skb); ipip6_rcv()
697 &iph->saddr, iph->tos); ipip6_rcv()
730 const struct iphdr *iph; ipip_rcv() local
733 iph = ip_hdr(skb); ipip_rcv()
735 iph->saddr, iph->daddr); ipip_rcv()
737 if (tunnel->parms.iph.protocol != IPPROTO_IPIP && ipip_rcv()
738 tunnel->parms.iph.protocol != 0) ipip_rcv()
810 const struct iphdr *tiph = &tunnel->parms.iph; ipip6_tunnel_xmit()
812 u8 tos = tunnel->parms.iph.tos; ipip6_tunnel_xmit()
935 if (tunnel->parms.iph.daddr && skb_dst(skb)) ipip6_tunnel_xmit()
1004 const struct iphdr *tiph = &tunnel->parms.iph; ipip_tunnel_xmit()
1046 const struct iphdr *iph; ipip6_tunnel_bind_dev() local
1050 iph = &tunnel->parms.iph; ipip6_tunnel_bind_dev()
1052 if (iph->daddr) { ipip6_tunnel_bind_dev()
1055 iph->daddr, iph->saddr, ipip6_tunnel_bind_dev()
1058 RT_TOS(iph->tos), ipip6_tunnel_bind_dev()
1088 t->parms.iph.saddr = p->iph.saddr; ipip6_tunnel_update()
1089 t->parms.iph.daddr = p->iph.daddr; ipip6_tunnel_update()
1090 memcpy(t->dev->dev_addr, &p->iph.saddr, 4); ipip6_tunnel_update()
1091 memcpy(t->dev->broadcast, &p->iph.daddr, 4); ipip6_tunnel_update()
1093 t->parms.iph.ttl = p->iph.ttl; ipip6_tunnel_update()
1094 t->parms.iph.tos = p->iph.tos; ipip6_tunnel_update()
1195 if (p.iph.protocol != IPPROTO_IPV6 && ipip6_tunnel_ioctl()
1196 p.iph.protocol != IPPROTO_IPIP && ipip6_tunnel_ioctl()
1197 p.iph.protocol != 0) ipip6_tunnel_ioctl()
1199 if (p.iph.version != 4 || ipip6_tunnel_ioctl()
1200 p.iph.ihl != 5 || (p.iph.frag_off&htons(~IP_DF))) ipip6_tunnel_ioctl()
1202 if (p.iph.ttl) ipip6_tunnel_ioctl()
1203 p.iph.frag_off |= htons(IP_DF); ipip6_tunnel_ioctl()
1214 if (((dev->flags&IFF_POINTOPOINT) && !p.iph.daddr) || ipip6_tunnel_ioctl()
1215 (!(dev->flags&IFF_POINTOPOINT) && p.iph.daddr)) { ipip6_tunnel_ioctl()
1400 struct iphdr *iph = &tunnel->parms.iph; ipip6_fb_tunnel_init() local
1404 iph->version = 4; ipip6_fb_tunnel_init()
1405 iph->protocol = IPPROTO_IPV6; ipip6_fb_tunnel_init()
1406 iph->ihl = 5; ipip6_fb_tunnel_init()
1407 iph->ttl = 64; ipip6_fb_tunnel_init()
1434 parms->iph.version = 4; ipip6_netlink_parms()
1435 parms->iph.protocol = IPPROTO_IPV6; ipip6_netlink_parms()
1436 parms->iph.ihl = 5; ipip6_netlink_parms()
1437 parms->iph.ttl = 64; ipip6_netlink_parms()
1446 parms->iph.saddr = nla_get_be32(data[IFLA_IPTUN_LOCAL]); ipip6_netlink_parms()
1449 parms->iph.daddr = nla_get_be32(data[IFLA_IPTUN_REMOTE]); ipip6_netlink_parms()
1452 parms->iph.ttl = nla_get_u8(data[IFLA_IPTUN_TTL]); ipip6_netlink_parms()
1453 if (parms->iph.ttl) ipip6_netlink_parms()
1454 parms->iph.frag_off = htons(IP_DF); ipip6_netlink_parms()
1458 parms->iph.tos = nla_get_u8(data[IFLA_IPTUN_TOS]); ipip6_netlink_parms()
1461 parms->iph.frag_off = htons(IP_DF); ipip6_netlink_parms()
1467 parms->iph.protocol = nla_get_u8(data[IFLA_IPTUN_PROTO]); ipip6_netlink_parms()
1602 if (((dev->flags & IFF_POINTOPOINT) && !p.iph.daddr) || ipip6_changelink()
1603 (!(dev->flags & IFF_POINTOPOINT) && p.iph.daddr)) ipip6_changelink()
1670 nla_put_in_addr(skb, IFLA_IPTUN_LOCAL, parm->iph.saddr) || ipip6_fill_info()
1671 nla_put_in_addr(skb, IFLA_IPTUN_REMOTE, parm->iph.daddr) || ipip6_fill_info()
1672 nla_put_u8(skb, IFLA_IPTUN_TTL, parm->iph.ttl) || ipip6_fill_info()
1673 nla_put_u8(skb, IFLA_IPTUN_TOS, parm->iph.tos) || ipip6_fill_info()
1675 !!(parm->iph.frag_off & htons(IP_DF))) || ipip6_fill_info()
1676 nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->iph.protocol) || ipip6_fill_info()
629 packet_is_spoofed(struct sk_buff *skb, const struct iphdr *iph, struct ip_tunnel *tunnel) packet_is_spoofed() argument
H A Dxfrm6_mode_beet.c24 struct ipv6hdr *iph = ipv6_hdr(skb); xfrm6_beet_make_header() local
26 iph->version = 6; xfrm6_beet_make_header()
28 memcpy(iph->flow_lbl, XFRM_MODE_SKB_CB(skb)->flow_lbl, xfrm6_beet_make_header()
29 sizeof(iph->flow_lbl)); xfrm6_beet_make_header()
30 iph->nexthdr = XFRM_MODE_SKB_CB(skb)->protocol; xfrm6_beet_make_header()
32 ipv6_change_dsfield(iph, 0, XFRM_MODE_SKB_CB(skb)->tos); xfrm6_beet_make_header()
33 iph->hop_limit = XFRM_MODE_SKB_CB(skb)->ttl; xfrm6_beet_make_header()
H A Dnetfilter.c23 const struct ipv6hdr *iph = ipv6_hdr(skb); ip6_route_me_harder() local
29 .daddr = iph->daddr, ip6_route_me_harder()
30 .saddr = iph->saddr, ip6_route_me_harder()
87 const struct ipv6hdr *iph = ipv6_hdr(skb); nf_ip6_saveroute() local
89 rt_info->daddr = iph->daddr; nf_ip6_saveroute()
90 rt_info->saddr = iph->saddr; nf_ip6_saveroute()
101 const struct ipv6hdr *iph = ipv6_hdr(skb); nf_ip6_reroute() local
102 if (!ipv6_addr_equal(&iph->daddr, &rt_info->daddr) || nf_ip6_reroute()
103 !ipv6_addr_equal(&iph->saddr, &rt_info->saddr) || nf_ip6_reroute()
H A Dtcpv6_offload.c34 const struct ipv6hdr *iph = ipv6_hdr(skb); tcp6_gro_complete() local
37 th->check = ~tcp_v6_check(skb->len - thoff, &iph->saddr, tcp6_gro_complete()
38 &iph->daddr, 0); tcp6_gro_complete()
H A Dxfrm6_mode_transport.c24 struct ipv6hdr *iph; xfrm6_transport_output() local
28 iph = ipv6_hdr(skb); xfrm6_transport_output()
35 memmove(ipv6_hdr(skb), iph, hdr_len); xfrm6_transport_output() local
H A Dxfrm6_mode_ro.c43 struct ipv6hdr *iph; xfrm6_ro_output() local
47 iph = ipv6_hdr(skb); xfrm6_ro_output()
54 memmove(ipv6_hdr(skb), iph, hdr_len); xfrm6_ro_output() local
H A Dah6.c157 * @iph: IPv6 header
160 static void ipv6_rearrange_destopt(struct ipv6hdr *iph, struct ipv6_opt_hdr *destopt) ipv6_rearrange_destopt() argument
184 /* Rearrange the source address in @iph and the ipv6_rearrange_destopt()
199 hao->addr = iph->saddr; ipv6_rearrange_destopt()
200 iph->saddr = final_addr; ipv6_rearrange_destopt()
213 static void ipv6_rearrange_destopt(struct ipv6hdr *iph, struct ipv6_opt_hdr *destopt) {} ipv6_rearrange_destopt() argument
218 * @iph: IPv6 header ipv6_rearrange_destopt()
221 * Rearrange the destination address in @iph and the addresses in @rthdr ipv6_rearrange_destopt()
225 static void ipv6_rearrange_rthdr(struct ipv6hdr *iph, struct ipv6_rt_hdr *rthdr) ipv6_rearrange_rthdr() argument
251 addrs[0] = iph->daddr; ipv6_rearrange_rthdr()
252 iph->daddr = final_addr; ipv6_rearrange_rthdr()
255 static int ipv6_clear_mutable_options(struct ipv6hdr *iph, int len, int dir) ipv6_clear_mutable_options() argument
258 struct ipv6hdr *iph; ipv6_clear_mutable_options() member in union:__anon14966
262 } exthdr = { .iph = iph }; ipv6_clear_mutable_options()
264 int nexthdr = iph->nexthdr; ipv6_clear_mutable_options()
266 exthdr.iph++; ipv6_clear_mutable_options()
272 ipv6_rearrange_destopt(iph, exthdr.opth); ipv6_clear_mutable_options()
283 ipv6_rearrange_rthdr(iph, exthdr.rth); ipv6_clear_mutable_options()
652 struct ipv6hdr *iph = (struct ipv6hdr *)skb->data; ah6_err() local
660 x = xfrm_state_lookup(net, skb->mark, (xfrm_address_t *)&iph->daddr, ah->spi, IPPROTO_AH, AF_INET6); ah6_err()
H A Dsyncookies.c100 u32 __cookie_v6_init_sequence(const struct ipv6hdr *iph, __cookie_v6_init_sequence() argument
112 return secure_tcp_syn_cookie(&iph->saddr, &iph->daddr, th->source, __cookie_v6_init_sequence()
119 const struct ipv6hdr *iph = ipv6_hdr(skb); cookie_v6_init_sequence() local
122 return __cookie_v6_init_sequence(iph, th, mssp); cookie_v6_init_sequence()
125 int __cookie_v6_check(const struct ipv6hdr *iph, const struct tcphdr *th, __cookie_v6_check() argument
129 __u32 mssind = check_tcp_syn_cookie(cookie, &iph->saddr, &iph->daddr, __cookie_v6_check()
H A Dmip6.c133 const struct ipv6hdr *iph = ipv6_hdr(skb); mip6_destopt_input() local
138 if (!ipv6_addr_equal(&iph->saddr, (struct in6_addr *)x->coaddr) && mip6_destopt_input()
152 struct ipv6hdr *iph; mip6_destopt_output() local
159 iph = ipv6_hdr(skb); mip6_destopt_output()
176 memcpy(&hao->addr, &iph->saddr, sizeof(hao->addr)); mip6_destopt_output()
178 memcpy(&iph->saddr, x->coaddr, sizeof(iph->saddr)); mip6_destopt_output()
353 const struct ipv6hdr *iph = ipv6_hdr(skb); mip6_rthdr_input() local
358 if (!ipv6_addr_equal(&iph->daddr, (struct in6_addr *)x->coaddr) && mip6_rthdr_input()
371 struct ipv6hdr *iph; mip6_rthdr_output() local
376 iph = ipv6_hdr(skb); mip6_rthdr_output()
390 memcpy(&rt2->addr, &iph->daddr, sizeof(rt2->addr)); mip6_rthdr_output()
392 memcpy(&iph->daddr, x->coaddr, sizeof(iph->daddr)); mip6_rthdr_output()
H A Dxfrm6_state.c158 struct ipv6hdr *iph = ipv6_hdr(skb); xfrm6_extract_header() local
160 XFRM_MODE_SKB_CB(skb)->ihl = sizeof(*iph); xfrm6_extract_header()
163 XFRM_MODE_SKB_CB(skb)->tos = ipv6_get_dsfield(iph); xfrm6_extract_header()
164 XFRM_MODE_SKB_CB(skb)->ttl = iph->hop_limit; xfrm6_extract_header()
166 memcpy(XFRM_MODE_SKB_CB(skb)->flow_lbl, iph->flow_lbl, xfrm6_extract_header()
H A Dipcomp6.c61 const struct ipv6hdr *iph = (const struct ipv6hdr *)skb->data; ipcomp6_err() local
71 x = xfrm_state_lookup(net, skb->mark, (const xfrm_address_t *)&iph->daddr, ipcomp6_err()
H A Ddatagram.c273 struct ipv6hdr *iph; ipv6_local_error() local
287 iph = ipv6_hdr(skb); ipv6_local_error()
288 iph->daddr = fl6->daddr; ipv6_local_error()
298 serr->addr_offset = (u8 *)&iph->daddr - skb_network_header(skb); ipv6_local_error()
311 struct ipv6hdr *iph; ipv6_local_rxpmtu() local
324 iph = ipv6_hdr(skb); ipv6_local_rxpmtu()
325 iph->daddr = fl6->daddr; ipv6_local_rxpmtu()
H A Droute.c1151 const struct ipv6hdr *iph = ipv6_hdr(skb); ip6_route_input() local
1157 .daddr = iph->daddr, ip6_route_input()
1158 .saddr = iph->saddr, ip6_route_input()
1159 .flowlabel = ip6_flowinfo(iph), ip6_route_input()
1161 .flowi6_proto = iph->nexthdr, ip6_route_input()
1341 const struct ipv6hdr *iph, u32 mtu) __ip6_rt_update_pmtu()
1359 if (iph) { __ip6_rt_update_pmtu()
1360 daddr = &iph->daddr; __ip6_rt_update_pmtu()
1361 saddr = &iph->saddr; __ip6_rt_update_pmtu()
1391 const struct ipv6hdr *iph = (struct ipv6hdr *) skb->data; ip6_update_pmtu() local
1398 fl6.daddr = iph->daddr; ip6_update_pmtu()
1399 fl6.saddr = iph->saddr; ip6_update_pmtu()
1400 fl6.flowlabel = ip6_flowinfo(iph); ip6_update_pmtu()
1404 __ip6_rt_update_pmtu(dst, NULL, iph, ntohl(mtu)); ip6_update_pmtu()
1495 const struct ipv6hdr *iph = (struct ipv6hdr *) skb->data; ip6_redirect() local
1503 fl6.daddr = iph->daddr; ip6_redirect()
1504 fl6.saddr = iph->saddr; ip6_redirect()
1505 fl6.flowlabel = ip6_flowinfo(iph); ip6_redirect()
1516 const struct ipv6hdr *iph = ipv6_hdr(skb); ip6_redirect_no_header() local
1526 fl6.saddr = iph->daddr; ip6_redirect_no_header()
1528 dst = ip6_route_redirect(net, &fl6, &iph->saddr); ip6_redirect_no_header()
1340 __ip6_rt_update_pmtu(struct dst_entry *dst, const struct sock *sk, const struct ipv6hdr *iph, u32 mtu) __ip6_rt_update_pmtu() argument
H A Dxfrm6_tunnel.c235 const struct ipv6hdr *iph = ipv6_hdr(skb); xfrm6_tunnel_rcv() local
238 spi = xfrm6_tunnel_spi_lookup(net, (const xfrm_address_t *)&iph->saddr); xfrm6_tunnel_rcv()
H A Dip6mr.c2302 struct ipv6hdr *iph; ip6mr_get_route() local
2329 iph = ipv6_hdr(skb2); ip6mr_get_route()
2330 iph->version = 0; ip6mr_get_route()
2331 iph->priority = 0; ip6mr_get_route()
2332 iph->flow_lbl[0] = 0; ip6mr_get_route()
2333 iph->flow_lbl[1] = 0; ip6mr_get_route()
2334 iph->flow_lbl[2] = 0; ip6mr_get_route()
2335 iph->payload_len = 0; ip6mr_get_route()
2336 iph->nexthdr = IPPROTO_NONE; ip6mr_get_route()
2337 iph->hop_limit = 0; ip6mr_get_route()
2338 iph->saddr = rt->rt6i_src.addr; ip6mr_get_route()
2339 iph->daddr = rt->rt6i_dst.addr; ip6mr_get_route()
H A Dip6_vti.c564 const struct ipv6hdr *iph = (const struct ipv6hdr *)skb->data; vti6_err() local
565 int protocol = iph->nexthdr; vti6_err()
567 t = vti6_tnl_lookup(dev_net(skb->dev), &iph->daddr, &iph->saddr); vti6_err()
594 x = xfrm_state_lookup(net, mark, (const xfrm_address_t *)&iph->daddr, vti6_err()
H A Dicmp.c303 struct ipv6hdr *iph = ipv6_hdr(skb); mip6_addr_swap() local
314 tmp = iph->saddr; mip6_addr_swap()
315 iph->saddr = hao->addr; mip6_addr_swap()
H A Desp6.c463 const struct ipv6hdr *iph = (const struct ipv6hdr *)skb->data; esp6_err() local
471 x = xfrm_state_lookup(net, skb->mark, (const xfrm_address_t *)&iph->daddr, esp6_err()
H A Draw.c618 struct ipv6hdr *iph; rawv6_send_hdrinc() local
647 iph = ipv6_hdr(skb); rawv6_send_hdrinc()
652 err = memcpy_from_msg(iph, msg, length); rawv6_send_hdrinc()
H A Dip6_gre.c774 const struct iphdr *iph = ip_hdr(skb); ip6gre_xmit_ipv4() local
789 dsfield = ipv4_get_dsfield(iph); ip6gre_xmit_ipv4()
792 fl6.flowlabel |= htonl((__u32)iph->tos << IPV6_TCLASS_SHIFT) ip6gre_xmit_ipv4()
H A Dip6_tunnel.c1175 const struct iphdr *iph = ip_hdr(skb); ip4ip6_tnl_xmit() local
1195 dsfield = ipv4_get_dsfield(iph); ip4ip6_tnl_xmit()
1198 fl6.flowlabel |= htonl((__u32)iph->tos << IPV6_TCLASS_SHIFT) ip4ip6_tnl_xmit()
H A Dudp.c373 const struct ipv6hdr *iph = ipv6_hdr(skb); __udp6_lib_lookup_skb() local
378 return __udp6_lib_lookup(dev_net(skb_dst(skb)->dev), &iph->saddr, sport, __udp6_lib_lookup_skb()
379 &iph->daddr, dport, inet6_iif(skb), __udp6_lib_lookup_skb()
/linux-4.4.14/net/ipv6/netfilter/
H A Dip6t_rpfilter.c33 struct ipv6hdr *iph = ipv6_hdr(skb); rpfilter_lookup_reverse6() local
37 .flowlabel = (* (__be32 *) iph) & IPV6_FLOWINFO_MASK, rpfilter_lookup_reverse6()
38 .flowi6_proto = iph->nexthdr, rpfilter_lookup_reverse6()
39 .daddr = iph->saddr, rpfilter_lookup_reverse6()
43 if (rpfilter_addr_unicast(&iph->daddr)) { rpfilter_lookup_reverse6()
44 memcpy(&fl6.saddr, &iph->daddr, sizeof(struct in6_addr)); rpfilter_lookup_reverse6()
85 struct ipv6hdr *iph; rpfilter_mt() local
91 iph = ipv6_hdr(skb); rpfilter_mt()
92 saddrtype = ipv6_addr_type(&iph->saddr); rpfilter_mt()
H A Dnf_dup_ipv6.c25 const struct ipv6hdr *iph = ipv6_hdr(skb); nf_dup_ipv6_route() local
34 fl6.flowlabel = (__force __be32)(((iph->flow_lbl[0] & 0xF) << 16) | nf_dup_ipv6_route()
35 (iph->flow_lbl[1] << 8) | iph->flow_lbl[2]); nf_dup_ipv6_route()
66 struct ipv6hdr *iph = ipv6_hdr(skb); nf_dup_ipv6() local
67 --iph->hop_limit; nf_dup_ipv6()
H A Dip6t_SYNPROXY.c26 struct ipv6hdr *iph; synproxy_build_ip() local
29 iph = (struct ipv6hdr *)skb_put(skb, sizeof(*iph)); synproxy_build_ip()
30 ip6_flow_hdr(iph, 0, 0); synproxy_build_ip()
31 iph->hop_limit = 64; //XXX synproxy_build_ip()
32 iph->nexthdr = IPPROTO_TCP; synproxy_build_ip()
33 iph->saddr = *saddr; synproxy_build_ip()
34 iph->daddr = *daddr; synproxy_build_ip()
36 return iph; synproxy_build_ip()
92 struct ipv6hdr *iph, *niph; synproxy_send_client_synack() local
97 iph = ipv6_hdr(skb); synproxy_send_client_synack()
106 niph = synproxy_build_ip(nskb, &iph->daddr, &iph->saddr); synproxy_send_client_synack()
112 nth->seq = htonl(__cookie_v6_init_sequence(iph, th, &mss)); synproxy_send_client_synack()
134 struct ipv6hdr *iph, *niph; synproxy_send_server_syn() local
138 iph = ipv6_hdr(skb); synproxy_send_server_syn()
147 niph = synproxy_build_ip(nskb, &iph->saddr, &iph->daddr); synproxy_send_server_syn()
179 struct ipv6hdr *iph, *niph; synproxy_send_server_ack() local
183 iph = ipv6_hdr(skb); synproxy_send_server_ack()
192 niph = synproxy_build_ip(nskb, &iph->daddr, &iph->saddr); synproxy_send_server_ack()
217 struct ipv6hdr *iph, *niph; synproxy_send_client_ack() local
221 iph = ipv6_hdr(skb); synproxy_send_client_ack()
230 niph = synproxy_build_ip(nskb, &iph->saddr, &iph->daddr); synproxy_send_client_ack()
H A Dnf_log_ipv6.c334 const struct iphdr *iph = dump_ipv6_mac_header() local
336 nf_log_buf_add(m, "TUNNEL=%pI4->%pI4 ", &iph->saddr, dump_ipv6_mac_header()
337 &iph->daddr); dump_ipv6_mac_header()
/linux-4.4.14/net/bridge/netfilter/
H A Dnf_tables_bridge.c24 struct iphdr *iph; nft_bridge_iphdr_validate() local
30 iph = ip_hdr(skb); nft_bridge_iphdr_validate()
31 if (iph->ihl < 5 || iph->version != 4) nft_bridge_iphdr_validate()
34 len = ntohs(iph->tot_len); nft_bridge_iphdr_validate()
37 else if (len < (iph->ihl*4)) nft_bridge_iphdr_validate()
40 if (!pskb_may_pull(skb, iph->ihl*4)) nft_bridge_iphdr_validate()
/linux-4.4.14/net/core/
H A Dtso.c24 struct iphdr *iph = (void *)(hdr + mac_hdr_len); tso_build_hdr() local
26 iph->id = htons(tso->ip_id); tso_build_hdr()
27 iph->tot_len = htons(size + hdr_len - mac_hdr_len); tso_build_hdr()
30 struct ipv6hdr *iph = (void *)(hdr + mac_hdr_len); tso_build_hdr() local
32 iph->payload_len = htons(size + tcp_hdrlen(skb)); tso_build_hdr()
H A Dnetpoll.c383 struct iphdr *iph; netpoll_send_udp() local
394 ip_len = udp_len + sizeof(*iph); netpoll_send_udp()
450 skb_push(skb, sizeof(*iph)); netpoll_send_udp()
452 iph = ip_hdr(skb); netpoll_send_udp()
454 /* iph->version = 4; iph->ihl = 5; */ netpoll_send_udp()
455 put_unaligned(0x45, (unsigned char *)iph); netpoll_send_udp()
456 iph->tos = 0; netpoll_send_udp()
457 put_unaligned(htons(ip_len), &(iph->tot_len)); netpoll_send_udp()
458 iph->id = htons(atomic_inc_return(&ip_ident)); netpoll_send_udp()
459 iph->frag_off = 0; netpoll_send_udp()
460 iph->ttl = 64; netpoll_send_udp()
461 iph->protocol = IPPROTO_UDP; netpoll_send_udp()
462 iph->check = 0; netpoll_send_udp()
463 put_unaligned(np->local_ip.ip, &(iph->saddr)); netpoll_send_udp()
464 put_unaligned(np->remote_ip.ip, &(iph->daddr)); netpoll_send_udp()
465 iph->check = ip_fast_csum((unsigned char *)iph, iph->ihl); netpoll_send_udp()
H A Dflow_dissector.c171 const struct iphdr *iph; htons() local
174 iph = __skb_header_pointer(skb, nhoff, sizeof(_iph), data, hlen, &_iph); htons()
175 if (!iph || iph->ihl < 5) htons()
177 nhoff += iph->ihl * 4; htons()
179 ip_proto = iph->protocol; htons()
187 memcpy(&key_addrs->v4addrs, &iph->saddr, htons()
191 if (ip_is_fragment(iph)) { htons()
194 if (iph->frag_off & htons(IP_OFFSET)) { htons()
209 const struct ipv6hdr *iph; htons() local
213 iph = __skb_header_pointer(skb, nhoff, sizeof(_iph), data, hlen, &_iph); htons()
214 if (!iph) htons()
217 ip_proto = iph->nexthdr; htons()
228 memcpy(key_ipv6_addrs, &iph->saddr, sizeof(*key_ipv6_addrs)); htons()
235 ip6_flowlabel(iph)) { htons()
236 __be32 flow_label = ip6_flowlabel(iph); htons()
H A Dpktgen.c2646 struct iphdr *iph; process_ipsec() local
2672 iph = ip_hdr(skb); process_ipsec()
2673 iph->tot_len = htons(skb->len - ETH_HLEN); process_ipsec()
2674 ip_send_check(iph); process_ipsec()
2804 struct iphdr *iph; fill_packet_ipv4() local
2861 iph = (struct iphdr *) skb_put(skb, sizeof(struct iphdr)); fill_packet_ipv4()
2882 iph->ihl = 5; fill_packet_ipv4()
2883 iph->version = 4; fill_packet_ipv4()
2884 iph->ttl = 32; fill_packet_ipv4()
2885 iph->tos = pkt_dev->tos; fill_packet_ipv4()
2886 iph->protocol = IPPROTO_UDP; /* UDP */ fill_packet_ipv4()
2887 iph->saddr = pkt_dev->cur_saddr; fill_packet_ipv4()
2888 iph->daddr = pkt_dev->cur_daddr; fill_packet_ipv4()
2889 iph->id = htons(pkt_dev->ip_id); fill_packet_ipv4()
2891 iph->frag_off = 0; fill_packet_ipv4()
2893 iph->tot_len = htons(iplen); fill_packet_ipv4()
2894 ip_send_check(iph); fill_packet_ipv4()
2906 udp4_hwcsum(skb, iph->saddr, iph->daddr); fill_packet_ipv4()
2911 udph->check = csum_tcpudp_magic(iph->saddr, iph->daddr, fill_packet_ipv4()
2933 struct ipv6hdr *iph; fill_packet_ipv6() local
2988 iph = (struct ipv6hdr *) skb_put(skb, sizeof(struct ipv6hdr)); fill_packet_ipv6()
3014 *(__be32 *) iph = htonl(0x60000000); /* Version + flow */ fill_packet_ipv6()
3018 *(__be32 *)iph |= htonl(0x60000000 | (pkt_dev->traffic_class << 20)); fill_packet_ipv6()
3021 iph->hop_limit = 32; fill_packet_ipv6()
3023 iph->payload_len = htons(udplen); fill_packet_ipv6()
3024 iph->nexthdr = IPPROTO_UDP; fill_packet_ipv6()
3026 iph->daddr = pkt_dev->cur_in6_daddr; fill_packet_ipv6()
3027 iph->saddr = pkt_dev->cur_in6_saddr; fill_packet_ipv6()
3041 udph->check = ~csum_ipv6_magic(&iph->saddr, &iph->daddr, udplen, IPPROTO_UDP, 0); fill_packet_ipv6()
3046 udph->check = csum_ipv6_magic(&iph->saddr, &iph->daddr, udplen, IPPROTO_UDP, csum); fill_packet_ipv6()
/linux-4.4.14/arch/metag/lib/
H A Dip_fast_csum.S7 * extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl);
/linux-4.4.14/arch/arc/include/asm/
H A Dchecksum.h41 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
43 const void *ptr = iph; ip_fast_csum()
/linux-4.4.14/arch/x86/include/asm/
H A Dchecksum_64.h42 * iph: ipv4 header
45 static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
66 /* Since the input registers which are loaded with iph and ihl ip_fast_csum()
69 : "=r" (sum), "=r" (iph), "=r" (ihl) ip_fast_csum()
70 : "1" (iph), "2" (ihl) ip_fast_csum()
H A Dchecksum_32.h70 static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
91 /* Since the input registers which are loaded with iph and ihl ip_fast_csum()
94 : "=r" (sum), "=r" (iph), "=r" (ihl) ip_fast_csum()
95 : "1" (iph), "2" (ihl) ip_fast_csum()
/linux-4.4.14/arch/x86/um/asm/
H A Dchecksum.h116 * iph: ipv4 header
119 static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
140 /* Since the input registers which are loaded with iph and ipl ip_fast_csum()
143 : "=r" (sum), "=r" (iph), "=r" (ihl) ip_fast_csum()
144 : "1" (iph), "2" (ihl) ip_fast_csum()
/linux-4.4.14/drivers/net/ppp/
H A Dpptp.c188 struct iphdr *iph; pptp_xmit() local
204 max_headroom = LL_RESERVED_SPACE(tdev) + sizeof(*iph) + sizeof(*hdr) + 2; pptp_xmit()
261 skb_push(skb, sizeof(*iph)); pptp_xmit()
266 iph = ip_hdr(skb); pptp_xmit()
267 iph->version = 4; pptp_xmit()
268 iph->ihl = sizeof(struct iphdr) >> 2; pptp_xmit()
270 iph->frag_off = htons(IP_DF); pptp_xmit()
272 iph->frag_off = 0; pptp_xmit()
273 iph->protocol = IPPROTO_GRE; pptp_xmit()
274 iph->tos = 0; pptp_xmit()
275 iph->daddr = fl4.daddr; pptp_xmit()
276 iph->saddr = fl4.saddr; pptp_xmit()
277 iph->ttl = ip4_dst_hoplimit(&rt->dst); pptp_xmit()
278 iph->tot_len = htons(skb->len); pptp_xmit()
287 ip_send_check(iph); pptp_xmit()
385 struct iphdr *iph; pptp_rcv() local
393 iph = ip_hdr(skb); pptp_rcv()
405 po = lookup_chan(htons(header->call_id), iph->saddr); pptp_rcv()
/linux-4.4.14/arch/m68k/include/asm/
H A Dchecksum.h45 static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
60 : "=d" (sum), "=&a" (iph), "=&d" (ihl), "=&d" (tmp) ip_fast_csum()
61 : "0" (sum), "1" (iph), "2" (ihl) ip_fast_csum()
/linux-4.4.14/arch/avr32/include/asm/
H A Dchecksum.h62 static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
88 : "=r"(sum), "=r"(iph), "=r"(ihl), "=r"(tmp) ip_fast_csum()
89 : "1"(iph), "2"(ihl) ip_fast_csum()
/linux-4.4.14/arch/arm/include/asm/
H A Dchecksum.h60 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
80 : "=r" (sum), "=r" (iph), "=r" (ihl), "=r" (tmp1) ip_fast_csum()
81 : "1" (iph), "2" (ihl) ip_fast_csum()
/linux-4.4.14/net/netfilter/ipset/
H A Dip_set_getport.c100 const struct iphdr *iph = ip_hdr(skb); ip_set_get_ip4_port() local
102 int protocol = iph->protocol; ip_set_get_ip4_port()
108 if (ntohs(iph->frag_off) & IP_OFFSET) ip_set_get_ip4_port()
/linux-4.4.14/arch/xtensa/include/asm/
H A Dchecksum.h90 static __inline__ __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
114 /* Since the input registers which are loaded with iph and ihl ip_fast_csum()
117 : "=r" (sum), "=r" (iph), "=r" (ihl), "=&r" (tmp), ip_fast_csum()
119 : "1" (iph), "2" (ihl) ip_fast_csum()
/linux-4.4.14/arch/sh/include/asm/
H A Dchecksum_32.h89 static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
107 /* Since the input registers which are loaded with iph and ihl ip_fast_csum()
110 : "=r" (sum), "=r" (iph), "=r" (ihl), "=&r" (__dummy0), "=&z" (__dummy1) ip_fast_csum()
111 : "1" (iph), "2" (ihl) ip_fast_csum()
/linux-4.4.14/arch/frv/include/asm/
H A Dchecksum.h55 __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
75 : "=r" (sum), "=r" (iph), "=r" (ihl), "=r" (inc), "=&r"(tmp) ip_fast_csum()
76 : "0" (sum), "1" (iph), "2" (ihl), "3" (4), ip_fast_csum()
77 "m"(*(volatile struct { int _[100]; } *)iph) ip_fast_csum()
/linux-4.4.14/arch/m32r/include/asm/
H A Dchecksum.h79 static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
106 /* Since the input registers which are loaded with iph and ihl ip_fast_csum()
109 : "=&r" (sum), "=r" (iph), "=r" (ihl), "=&r" (tmpreg0), "=&r" (tmpreg1) ip_fast_csum()
110 : "1" (iph), "2" (ihl) ip_fast_csum()
/linux-4.4.14/drivers/staging/gdm72xx/
H A Dgdm_qos.c188 static int get_qos_index(struct nic *nic, u8 *iph, u8 *tcpudph) get_qos_index() argument
193 if (!iph || !tcpudph) get_qos_index()
196 ip_ver = (iph[0]>>4)&0xf; get_qos_index()
206 if (chk_ipv4_rule(&qcb->csr[i], iph, tcpudph) == 0) get_qos_index()
258 struct iphdr *iph = (struct iphdr *)((char *)ethh + ETH_HLEN); gdm_qos_send_hci_pkt() local
264 tcph = (struct tcphdr *)iph + iph->ihl*4; gdm_qos_send_hci_pkt()
277 index = get_qos_index(nic, (u8 *)iph, (u8 *)tcph); gdm_qos_send_hci_pkt()
/linux-4.4.14/arch/mn10300/lib/
H A Dchecksum.c30 __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
32 return ~do_csum(iph, ihl * 4); ip_fast_csum()
/linux-4.4.14/arch/cris/include/asm/
H A Dchecksum.h55 static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
57 return csum_fold(csum_partial(iph, ihl * 4, 0)); ip_fast_csum()
/linux-4.4.14/Documentation/networking/timestamping/
H A Dtxtimestamp.c341 struct iphdr *iph = (void *) buf; do_test() local
343 memset(iph, 0, sizeof(*iph)); do_test()
344 iph->ihl = 5; do_test()
345 iph->version = 4; do_test()
346 iph->ttl = 2; do_test()
347 iph->daddr = daddr.sin_addr.s_addr; do_test()
348 iph->protocol = IPPROTO_UDP; do_test()
351 off = sizeof(*iph); do_test()
/linux-4.4.14/drivers/infiniband/hw/nes/
H A Dnes_mgt.c177 struct iphdr *iph = (struct iphdr *)(cb->data_start + ETH_HLEN); nes_get_seq() local
178 struct tcphdr *tcph = (struct tcphdr *)(((char *)iph) + (4 * iph->ihl)); nes_get_seq()
245 struct iphdr *iph; get_fpdu_info() local
337 iph = (struct iphdr *)(cb->data_start + ETH_HLEN); get_fpdu_info()
338 tcph = (struct tcphdr *)(((char *)iph) + (4 * iph->ihl)); get_fpdu_info()
357 iph = (struct iphdr *)(fpdu_info->hdr_vbase + ETH_HLEN); get_fpdu_info()
358 tcph = (struct tcphdr *)(((char *)iph) + (4 * iph->ihl)); get_fpdu_info()
361 iph->tot_len = cpu_to_be16(tot_len); get_fpdu_info()
362 iph->saddr = cpu_to_be32(0x7f000001); get_fpdu_info()
386 iph = (struct iphdr *)(cb->data_start + ETH_HLEN); get_fpdu_info()
387 tcph = (struct tcphdr *)(((char *)iph) + (4 * iph->ihl)); get_fpdu_info()
511 struct iphdr *iph; queue_fpdus() local
522 iph = (struct iphdr *)skb->data; queue_fpdus()
523 tcph = (struct tcphdr *)(((char *)iph) + (4 * iph->ihl)); queue_fpdus()
527 len = be16_to_cpu(iph->tot_len); queue_fpdus()
H A Dnes_cm.c440 struct iphdr *iph; form_cm_frame() local
443 u16 packetsize = sizeof(*iph); form_cm_frame()
449 memset(skb->data, 0x00, ETH_HLEN + sizeof(*iph) + sizeof(*tcph)); form_cm_frame()
456 iph = (struct iphdr *)buf; form_cm_frame()
457 buf += sizeof(*iph); form_cm_frame()
461 skb_set_transport_header(skb, ETH_HLEN + sizeof(*iph)); form_cm_frame()
475 iph->version = IPVERSION; form_cm_frame()
476 iph->ihl = 5; /* 5 * 4Byte words, IP headr len */ form_cm_frame()
477 iph->tos = 0; form_cm_frame()
478 iph->tot_len = htons(packetsize); form_cm_frame()
479 iph->id = htons(++cm_node->tcp_cntxt.loc_id); form_cm_frame()
481 iph->frag_off = htons(0x4000); form_cm_frame()
482 iph->ttl = 0x40; form_cm_frame()
483 iph->protocol = 0x06; /* IPPROTO_TCP */ form_cm_frame()
485 iph->saddr = htonl(cm_node->mapped_loc_addr); form_cm_frame()
486 iph->daddr = htonl(cm_node->mapped_rem_addr); form_cm_frame()
2731 struct iphdr *iph; mini_cm_recv_pkt() local
2742 iph = (struct iphdr *)skb->data; mini_cm_recv_pkt()
2745 nfo.loc_addr = ntohl(iph->daddr); mini_cm_recv_pkt()
2747 nfo.rem_addr = ntohl(iph->saddr); mini_cm_recv_pkt()
2751 nfo.mapped_loc_addr = ntohl(iph->daddr); mini_cm_recv_pkt()
2753 nfo.mapped_rem_addr = ntohl(iph->saddr); mini_cm_recv_pkt()
2756 tmp_daddr = cpu_to_be32(iph->daddr); mini_cm_recv_pkt()
2757 tmp_saddr = cpu_to_be32(iph->saddr); mini_cm_recv_pkt()
2817 skb->len = ntohs(iph->tot_len); mini_cm_recv_pkt()
H A Dnes_nic.c483 struct iphdr *iph; nes_netdev_start_xmit() local
604 iph = (struct iphdr *) nes_netdev_start_xmit()
655 iph->tot_len = htons(tso_wqe_length + original_first_length - nhoffset); nes_netdev_start_xmit()
/linux-4.4.14/arch/score/include/asm/
H A Dchecksum.h83 static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
123 : "=&r" (sum), "=&r" (iph), "=&r" (ihl), "=&r" (dummy) ip_fast_csum()
124 : "1" (iph), "2" (ihl)); ip_fast_csum()
/linux-4.4.14/arch/s390/include/asm/
H A Dchecksum.h84 static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
86 return csum_fold(csum_partial(iph, ihl*4, 0)); ip_fast_csum()
/linux-4.4.14/net/bridge/
H A Dbr_netfilter_hooks.c192 const struct iphdr *iph; br_validate_ipv4() local
198 iph = ip_hdr(skb); br_validate_ipv4()
201 if (iph->ihl < 5 || iph->version != 4) br_validate_ipv4()
204 if (!pskb_may_pull(skb, iph->ihl*4)) br_validate_ipv4()
207 iph = ip_hdr(skb); br_validate_ipv4()
208 if (unlikely(ip_fast_csum((u8 *)iph, iph->ihl))) br_validate_ipv4()
211 len = ntohs(iph->tot_len); br_validate_ipv4()
215 } else if (len < (iph->ihl*4)) br_validate_ipv4()
345 struct iphdr *iph = ip_hdr(skb); br_nf_pre_routing_finish() local
358 if ((err = ip_route_input(skb, iph->daddr, iph->saddr, iph->tos, dev))) { br_nf_pre_routing_finish()
371 rt = ip_route_output(net, iph->daddr, 0, br_nf_pre_routing_finish()
372 RT_TOS(iph->tos), 0); br_nf_pre_routing_finish()
697 struct iphdr *iph = ip_hdr(skb); br_nf_ip_fragment() local
699 if (unlikely(((iph->frag_off & htons(IP_DF)) && !skb->ignore_df) || br_nf_ip_fragment()
H A Dbr_multicast.c369 struct iphdr *iph; br_ip4_multicast_alloc_query() local
371 skb = netdev_alloc_skb_ip_align(br->dev, sizeof(*eth) + sizeof(*iph) + br_ip4_multicast_alloc_query()
392 iph = ip_hdr(skb); br_ip4_multicast_alloc_query()
394 iph->version = 4; br_ip4_multicast_alloc_query()
395 iph->ihl = 6; br_ip4_multicast_alloc_query()
396 iph->tos = 0xc0; br_ip4_multicast_alloc_query()
397 iph->tot_len = htons(sizeof(*iph) + sizeof(*ih) + 4); br_ip4_multicast_alloc_query()
398 iph->id = 0; br_ip4_multicast_alloc_query()
399 iph->frag_off = htons(IP_DF); br_ip4_multicast_alloc_query()
400 iph->ttl = 1; br_ip4_multicast_alloc_query()
401 iph->protocol = IPPROTO_IGMP; br_ip4_multicast_alloc_query()
402 iph->saddr = br->multicast_query_use_ifaddr ? br_ip4_multicast_alloc_query()
404 iph->daddr = htonl(INADDR_ALLHOSTS_GROUP); br_ip4_multicast_alloc_query()
405 ((u8 *)&iph[1])[0] = IPOPT_RA; br_ip4_multicast_alloc_query()
406 ((u8 *)&iph[1])[1] = 4; br_ip4_multicast_alloc_query()
407 ((u8 *)&iph[1])[2] = 0; br_ip4_multicast_alloc_query()
408 ((u8 *)&iph[1])[3] = 0; br_ip4_multicast_alloc_query()
409 ip_send_check(iph); br_ip4_multicast_alloc_query()
1264 const struct iphdr *iph = ip_hdr(skb); br_ip4_multicast_query() local
1304 saddr.u.ip4 = iph->saddr; br_ip4_multicast_query()
/linux-4.4.14/include/uapi/linux/
H A Dif_tunnel.h37 struct iphdr iph; member in struct:ip_tunnel_parm
/linux-4.4.14/arch/sparc/include/asm/
H A Dchecksum_32.h118 /* ihl is always 5 or greater, almost always is 5, and iph is word aligned
121 static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
151 : "=r" (sum), "=&r" (iph) ip_fast_csum()
152 : "r" (ihl), "1" (iph) ip_fast_csum()
H A Dchecksum_64.h77 /* ihl is always 5 or greater, almost always is 5, and iph is word aligned
80 __sum16 ip_fast_csum(const void *iph, unsigned int ihl);
/linux-4.4.14/arch/nios2/include/asm/
H A Dchecksum.h22 extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl);
/linux-4.4.14/net/dccp/
H A Dipv4.c148 const struct iphdr *iph, dccp_do_pmtu_discovery()
236 const struct iphdr *iph = (struct iphdr *)skb->data; dccp_v4_err() local
237 const u8 offset = iph->ihl << 2; dccp_v4_err()
255 iph->daddr, dh->dccph_dport, dccp_v4_err()
256 iph->saddr, ntohs(dh->dccph_sport), dccp_v4_err()
304 dccp_do_pmtu_discovery(sk, iph, info); dccp_v4_err()
451 const struct iphdr *iph = ip_hdr(skb); dccp_v4_route_skb() local
454 .daddr = iph->saddr, dccp_v4_route_skb()
455 .saddr = iph->daddr, dccp_v4_route_skb()
766 const struct iphdr *iph; dccp_v4_rcv() local
775 iph = ip_hdr(skb); dccp_v4_rcv()
777 if (dccp_v4_csum_finish(skb, iph->saddr, iph->daddr)) { dccp_v4_rcv()
789 &iph->saddr, ntohs(dh->dccph_sport), dccp_v4_rcv()
790 &iph->daddr, ntohs(dh->dccph_dport), dccp_v4_rcv()
147 dccp_do_pmtu_discovery(struct sock *sk, const struct iphdr *iph, u32 mtu) dccp_do_pmtu_discovery() argument
/linux-4.4.14/drivers/net/usb/
H A Dcdc_mbim.c310 struct ipv6hdr *iph = (void *)buf; do_neigh_solicit() local
311 struct nd_msg *msg = (void *)(iph + 1); do_neigh_solicit()
319 if (!ipv6_addr_is_solict_mult(&iph->daddr) || do_neigh_solicit()
320 !(ipv6_addr_type(&iph->saddr) & IPV6_ADDR_UNICAST)) do_neigh_solicit()
345 ipv6_stub->ndisc_send_na(netdev, &iph->saddr, &msg->target, do_neigh_solicit()
356 struct ipv6hdr *iph = (void *)buf; is_neigh_solicit() local
357 struct nd_msg *msg = (void *)(iph + 1); is_neigh_solicit()
360 iph->nexthdr == IPPROTO_ICMPV6 && is_neigh_solicit()
/linux-4.4.14/arch/alpha/lib/
H A Dchecksum.c147 __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
149 return (__force __sum16)~do_csum(iph,ihl*4); ip_fast_csum()
/linux-4.4.14/lib/
H A Dchecksum.c110 __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
112 return (__force __sum16)~do_csum(iph, ihl*4); ip_fast_csum()
/linux-4.4.14/arch/alpha/include/asm/
H A Dchecksum.h10 extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl);
/linux-4.4.14/include/asm-generic/
H A Dchecksum.h46 extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl);
/linux-4.4.14/arch/metag/include/asm/
H A Dchecksum.h55 extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl);
/linux-4.4.14/arch/mn10300/include/asm/
H A Dchecksum.h20 extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl);
/linux-4.4.14/arch/ia64/include/asm/
H A Dchecksum.h13 extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl);
/linux-4.4.14/arch/parisc/include/asm/
H A Dchecksum.h41 static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
66 : "=r" (sum), "=r" (iph), "=r" (ihl) ip_fast_csum()
67 : "1" (iph), "2" (ihl) ip_fast_csum()
/linux-4.4.14/drivers/net/ethernet/sun/
H A Dsunvnet.c319 struct iphdr *iph = ip_hdr(skb); vnet_fullcsum() local
324 if (iph->protocol != IPPROTO_TCP && vnet_fullcsum()
325 iph->protocol != IPPROTO_UDP) vnet_fullcsum()
330 if (iph->protocol == IPPROTO_TCP) { vnet_fullcsum()
335 ptcp->check = csum_tcpudp_magic(iph->saddr, iph->daddr, vnet_fullcsum()
338 } else if (iph->protocol == IPPROTO_UDP) { vnet_fullcsum()
343 pudp->check = csum_tcpudp_magic(iph->saddr, iph->daddr, vnet_fullcsum()
394 struct iphdr *iph = (struct iphdr *)skb->data; vnet_rx_one() local
396 iph->check = 0; vnet_rx_one()
397 ip_send_check(iph); vnet_rx_one()
1095 struct iphdr *iph = ip_hdr(nskb); vnet_skb_shape() local
1107 if (iph->protocol == IPPROTO_TCP || vnet_skb_shape()
1108 iph->protocol == IPPROTO_UDP) { vnet_skb_shape()
1109 csum = csum_tcpudp_magic(iph->saddr, iph->daddr, vnet_skb_shape()
1111 iph->protocol, csum); vnet_skb_shape()
/linux-4.4.14/arch/c6x/lib/
H A Dcsum_64plus.S159 ;ip_fast_csum(unsigned char *iph, unsigned int ihl)
162 ; unsigned short *tosum = (unsigned short *) iph;
183 ; A4: iph
/linux-4.4.14/drivers/net/ethernet/apm/xgene/
H A Dxgene_enet_main.c193 struct iphdr *iph; xgene_enet_work_msg() local
209 iph = ip_hdr(skb); xgene_enet_work_msg()
210 if (unlikely(ip_is_fragment(iph))) xgene_enet_work_msg()
213 if (likely(iph->protocol == IPPROTO_TCP)) { xgene_enet_work_msg()
244 } else if (iph->protocol == IPPROTO_UDP) { xgene_enet_work_msg()
465 struct iphdr *iph = ip_hdr(skb); xgene_enet_skip_csum() local
467 if (!ip_is_fragment(iph) || xgene_enet_skip_csum()
468 (iph->protocol != IPPROTO_TCP && iph->protocol != IPPROTO_UDP)) { xgene_enet_skip_csum()
/linux-4.4.14/include/linux/
H A Dinet_lro.h51 struct iphdr *iph; member in struct:net_lro_desc
/linux-4.4.14/drivers/net/
H A Dgeneve.c155 struct iphdr *iph = NULL; geneve_rx() local
170 iph = ip_hdr(skb); /* outer IP header... */ geneve_rx()
178 addr = iph->saddr; geneve_rx()
238 if (iph) geneve_rx()
239 err = IP_ECN_decapsulate(iph, skb); geneve_rx()
247 if (iph) geneve_rx()
250 &iph->saddr, iph->tos); geneve_rx()
H A Dvrf.c225 const struct ipv6hdr *iph = ipv6_hdr(skb); vrf_process_v6_outbound() local
231 .daddr = iph->daddr, vrf_process_v6_outbound()
232 .saddr = iph->saddr, vrf_process_v6_outbound()
233 .flowlabel = ip6_flowinfo(iph), vrf_process_v6_outbound()
235 .flowi6_proto = iph->nexthdr, vrf_process_v6_outbound()
/linux-4.4.14/arch/mips/include/asm/
H A Dchecksum.h131 static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) ip_fast_csum() argument
133 const unsigned int *word = iph; ip_fast_csum()
/linux-4.4.14/drivers/net/ethernet/qlogic/qlcnic/
H A Dqlcnic_io.c1267 struct iphdr *iph; qlcnic_process_lro() local
1325 iph = (struct iphdr *)skb->data; qlcnic_process_lro()
1326 th = (struct tcphdr *)(skb->data + (iph->ihl << 2)); qlcnic_process_lro()
1327 length = (iph->ihl << 2) + (th->doff << 2) + lro_length; qlcnic_process_lro()
1328 csum_replace2(&iph->check, iph->tot_len, htons(length)); qlcnic_process_lro()
1329 iph->tot_len = htons(length); qlcnic_process_lro()
1789 struct iphdr *iph; qlcnic_83xx_process_lro() local
1848 iph = (struct iphdr *)skb->data; qlcnic_83xx_process_lro()
1849 th = (struct tcphdr *)(skb->data + (iph->ihl << 2)); qlcnic_83xx_process_lro()
1850 length = (iph->ihl << 2) + (th->doff << 2) + lro_length; qlcnic_83xx_process_lro()
1851 csum_replace2(&iph->check, iph->tot_len, htons(length)); qlcnic_83xx_process_lro()
1852 iph->tot_len = htons(length); qlcnic_83xx_process_lro()
/linux-4.4.14/drivers/infiniband/hw/qib/
H A Dqib_user_sdma.c457 hdr->iph.pkt_flags = qib_user_sdma_page_to_frags()
458 cpu_to_le16(le16_to_cpu(hdr->iph.pkt_flags)|0x2); qib_user_sdma_page_to_frags()
469 vcto = le32_to_cpu(hdr->iph.ver_ctxt_tid_offset); qib_user_sdma_page_to_frags()
470 hdr->iph.chksum = cpu_to_le16(QIB_LRH_BTH + qib_user_sdma_page_to_frags()
473 le16_to_cpu(hdr->iph.pkt_flags)); qib_user_sdma_page_to_frags()
503 hdr->iph.ver_ctxt_tid_offset = cpu_to_le32( qib_user_sdma_page_to_frags()
504 (le32_to_cpu(hdr->iph.ver_ctxt_tid_offset)&0xFF000000) + qib_user_sdma_page_to_frags()
513 vcto = le32_to_cpu(hdr->iph.ver_ctxt_tid_offset); qib_user_sdma_page_to_frags()
514 hdr->iph.chksum = cpu_to_le16(QIB_LRH_BTH + qib_user_sdma_page_to_frags()
517 le16_to_cpu(hdr->iph.pkt_flags)); qib_user_sdma_page_to_frags()
/linux-4.4.14/net/atm/
H A Dmpc.c494 struct iphdr *iph; send_via_shortcut() local
507 iph = (struct iphdr *)buff; send_via_shortcut()
508 ipaddr = iph->daddr; send_via_shortcut()
531 if (iph->ttl <= 1) { send_via_shortcut()
533 mpc->dev->name, iph->ttl); send_via_shortcut()
537 iph->ttl--; send_via_shortcut()
538 iph->check = 0; send_via_shortcut()
539 iph->check = ip_fast_csum((unsigned char *)iph, iph->ihl); send_via_shortcut()
H A Dbr2684.c481 struct iphdr *iph; br2684_push() local
484 iph = ip_hdr(skb); br2684_push()
485 if (iph->version == 4) br2684_push()
487 else if (iph->version == 6) br2684_push()
/linux-4.4.14/arch/powerpc/include/asm/
H A Dchecksum.h20 extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl);
/linux-4.4.14/drivers/net/ethernet/intel/i40evf/
H A Di40e_txrx.c800 struct iphdr *iph; i40e_rx_checksum() local
870 iph = ip_hdr(skb); i40e_rx_checksum()
871 csum = csum_tcpudp_magic(iph->saddr, iph->daddr, i40e_rx_checksum()
1451 struct iphdr *iph; i40e_tso() local
1462 iph = skb->encapsulation ? inner_ip_hdr(skb) : ip_hdr(skb); i40e_tso()
1465 if (iph->version == 4) { i40e_tso()
1467 iph->tot_len = 0; i40e_tso()
1468 iph->check = 0; i40e_tso()
1469 tcph->check = ~csum_tcpudp_magic(iph->saddr, iph->daddr, i40e_tso()
/linux-4.4.14/drivers/net/ethernet/mellanox/mlx4/
H A Den_rx.c684 struct iphdr *iph) get_fixed_ipv4_csum()
689 length_for_csum = (be16_to_cpu(iph->tot_len) - (iph->ihl << 2)); get_fixed_ipv4_csum()
690 csum_pseudo_header = csum_tcpudp_nofold(iph->saddr, iph->daddr, get_fixed_ipv4_csum()
691 length_for_csum, iph->protocol, 0); get_fixed_ipv4_csum()
683 get_fixed_ipv4_csum(__wsum hw_checksum, struct sk_buff *skb, struct iphdr *iph) get_fixed_ipv4_csum() argument
/linux-4.4.14/drivers/net/ethernet/qlogic/netxen/
H A Dnetxen_nic_init.c1598 struct iphdr *iph; netxen_process_lro() local
1641 iph = (struct iphdr *)(skb->data + vhdr_len); netxen_process_lro()
1642 th = (struct tcphdr *)((skb->data + vhdr_len) + (iph->ihl << 2)); netxen_process_lro()
1644 length = (iph->ihl << 2) + (th->doff << 2) + lro_length; netxen_process_lro()
1645 csum_replace2(&iph->check, iph->tot_len, htons(length)); netxen_process_lro()
1646 iph->tot_len = htons(length); netxen_process_lro()
/linux-4.4.14/drivers/net/ethernet/ibm/
H A Dibmveth.c1182 struct iphdr *iph; ibmveth_poll() local
1228 iph = (struct iphdr *)skb->data; ibmveth_poll()
1233 if (iph->check == 0xffff) { ibmveth_poll()
1234 iph->check = 0; ibmveth_poll()
1235 iph->check = ip_fast_csum((unsigned char *)iph, iph->ihl); ibmveth_poll()
/linux-4.4.14/drivers/net/ethernet/atheros/atlx/
H A Datl1.c2133 struct iphdr *iph = ip_hdr(skb); atl1_tso() local
2135 real_len = (((unsigned char *)iph - skb->data) + atl1_tso()
2136 ntohs(iph->tot_len)); atl1_tso()
2141 iph->check = 0; atl1_tso()
2143 ~csum_tcpudp_magic(iph->saddr, atl1_tso()
2144 iph->daddr, tcp_hdrlen(skb), atl1_tso()
2146 ptpd->word3 |= (iph->ihl & TPD_IPHL_MASK) << atl1_tso()
2156 iph->check = 0; atl1_tso()
2157 tcp_hdr(skb)->check = ~csum_tcpudp_magic(iph->saddr, atl1_tso()
2158 iph->daddr, 0, IPPROTO_TCP, 0); atl1_tso()
2159 ip_off = (unsigned char *)iph - atl1_tso()
2166 ptpd->word3 |= (iph->ihl & TPD_IPHL_MASK) << atl1_tso()
/linux-4.4.14/net/l2tp/
H A Dl2tp_ip.c182 struct iphdr *iph = (struct iphdr *) skb_network_header(skb); l2tp_ip_recv() local
185 sk = __l2tp_ip_bind_lookup(net, iph->daddr, 0, tunnel_id); l2tp_ip_recv()
H A Dl2tp_ip6.c194 struct ipv6hdr *iph = ipv6_hdr(skb); l2tp_ip6_recv() local
197 sk = __l2tp_ip6_bind_lookup(&init_net, &iph->daddr, l2tp_ip6_recv()
/linux-4.4.14/drivers/net/ethernet/intel/i40e/
H A Di40e_txrx.c1326 struct iphdr *iph; i40e_rx_checksum() local
1397 iph = ip_hdr(skb); i40e_rx_checksum()
1399 iph->saddr, iph->daddr, i40e_rx_checksum()
2202 struct iphdr *iph; i40e_tso() local
2213 iph = skb->encapsulation ? inner_ip_hdr(skb) : ip_hdr(skb); i40e_tso()
2216 if (iph->version == 4) { i40e_tso()
2218 iph->tot_len = 0; i40e_tso()
2219 iph->check = 0; i40e_tso()
2220 tcph->check = ~csum_tcpudp_magic(iph->saddr, iph->daddr, i40e_tso()
/linux-4.4.14/drivers/net/ethernet/qlogic/qlge/
H A Dqlge_main.c1606 struct iphdr *iph = ql_process_mac_rx_page() local
1608 if (!(iph->frag_off & ql_process_mac_rx_page()
1721 struct iphdr *iph = (struct iphdr *) skb->data; ql_process_mac_rx_skb() local
1722 if (!(iph->frag_off & ql_process_mac_rx_skb()
2035 struct iphdr *iph = (struct iphdr *) skb->data; ql_process_mac_split_rx_intr() local
2036 if (!(iph->frag_off & ql_process_mac_split_rx_intr()
2594 struct iphdr *iph = ip_hdr(skb); ql_tso() local
2595 iph->check = 0; ql_tso()
2597 tcp_hdr(skb)->check = ~csum_tcpudp_magic(iph->saddr, ql_tso()
2598 iph->daddr, 0, ql_tso()
2617 struct iphdr *iph = ip_hdr(skb); ql_hw_csum_setup() local
2626 len = (ntohs(iph->tot_len) - (iph->ihl << 2)); ql_hw_csum_setup()
2627 if (likely(iph->protocol == IPPROTO_TCP)) { ql_hw_csum_setup()
2640 *check = ~csum_tcpudp_magic(iph->saddr, ql_hw_csum_setup()
2641 iph->daddr, len, iph->protocol, 0); ql_hw_csum_setup()
/linux-4.4.14/drivers/infiniband/hw/cxgb4/
H A Dcm.c3780 struct iphdr *iph; rx_pkt() local
3836 iph = (struct iphdr *)(eh + 1); rx_pkt()
3839 iph = (struct iphdr *)(vlan_eh + 1); rx_pkt()
3843 if (iph->version != 0x4) rx_pkt()
3846 tcph = (struct tcphdr *)(iph + 1); rx_pkt()
3847 skb_set_network_header(skb, (void *)iph - (void *)rss); rx_pkt()
3852 ntohl(iph->daddr), ntohs(tcph->dest), ntohl(iph->saddr), rx_pkt()
3853 ntohs(tcph->source), iph->tos); rx_pkt()
3855 dst = find_route(dev, iph->daddr, iph->saddr, tcph->dest, tcph->source, rx_pkt()
3856 iph->tos); rx_pkt()
3871 pdev = ip_dev_find(&init_net, iph->daddr); rx_pkt()
3905 build_cpl_pass_accept_req(skb, stid, iph->tos); rx_pkt()
3906 send_fw_pass_open_req(dev, skb, iph->daddr, tcph->dest, iph->saddr, rx_pkt()
/linux-4.4.14/drivers/net/ethernet/intel/ixgb/
H A Dixgb_main.c1227 struct iphdr *iph; ixgb_tso() local
1236 iph = ip_hdr(skb); ixgb_tso()
1237 iph->tot_len = 0; ixgb_tso()
1238 iph->check = 0; ixgb_tso()
1239 tcp_hdr(skb)->check = ~csum_tcpudp_magic(iph->saddr, ixgb_tso()
1240 iph->daddr, 0, ixgb_tso()
1243 ipcso = (void *)&(iph->check) - (void *)skb->data; ixgb_tso()
/linux-4.4.14/drivers/net/bonding/
H A Dbond_alb.c1381 const struct iphdr *iph = ip_hdr(skb); bond_alb_xmit() local
1384 (iph->daddr == ip_bcast) || bond_alb_xmit()
1385 (iph->protocol == IPPROTO_IGMP)) { bond_alb_xmit()
1389 hash_start = (char *)&(iph->daddr); bond_alb_xmit()
1390 hash_size = sizeof(iph->daddr); bond_alb_xmit()
H A Dbond_main.c3105 const struct iphdr *iph; bond_flow_dissect() local
3114 if (unlikely(!pskb_may_pull(skb, noff + sizeof(*iph)))) bond_flow_dissect()
3116 iph = ip_hdr(skb); bond_flow_dissect()
3117 iph_to_flow_copy_v4addrs(fk, iph); bond_flow_dissect()
3118 noff += iph->ihl << 2; bond_flow_dissect()
3119 if (!ip_is_fragment(iph)) bond_flow_dissect()
3120 proto = iph->protocol; bond_flow_dissect()
3709 struct iphdr *iph = ip_hdr(skb); bond_xmit_roundrobin() local
3719 if (iph->protocol == IPPROTO_IGMP && skb->protocol == htons(ETH_P_IP)) { bond_xmit_roundrobin()
/linux-4.4.14/drivers/net/ethernet/pasemi/
H A Dpasemi_mac.c265 struct iphdr *iph; get_skb_hdr() local
273 iph = ip_hdr(skb); get_skb_hdr()
274 if (iph->protocol != IPPROTO_TCP) get_skb_hdr()
282 if (ntohs(iph->tot_len) < ip_len + tcp_hdrlen(skb)) get_skb_hdr()
286 *iphdr = iph; get_skb_hdr()
/linux-4.4.14/drivers/s390/net/
H A Dqeth_l3_main.c2767 struct iphdr *iph = ip_hdr(skb); qeth_l3_hdr_csum() local
2772 if (iph->protocol == IPPROTO_UDP) qeth_l3_hdr_csum()
2776 iph->check = 0; qeth_l3_hdr_csum()
2786 struct iphdr *iph = ip_hdr(skb); qeth_tso_fill_header() local
2800 hdr->ext.dg_hdr_len = (__u16)(iph->ihl*4 + tcph->doff*4); qeth_tso_fill_header()
2810 tcph->check = ~csum_tcpudp_magic(iph->saddr, iph->daddr, qeth_tso_fill_header()
2812 iph->tot_len = 0; qeth_tso_fill_header()
2813 iph->check = 0; qeth_tso_fill_header()
/linux-4.4.14/drivers/net/vmxnet3/
H A Dvmxnet3_drv.c850 const struct iphdr *iph = ip_hdr(skb); vmxnet3_parse_and_copy_hdr() local
852 protocol = iph->protocol; vmxnet3_parse_and_copy_hdr()
915 struct iphdr *iph = ip_hdr(skb); vmxnet3_prepare_tso() local
917 iph->check = 0; vmxnet3_prepare_tso()
918 tcph->check = ~csum_tcpudp_magic(iph->saddr, iph->daddr, 0, vmxnet3_prepare_tso()
921 struct ipv6hdr *iph = ipv6_hdr(skb); vmxnet3_prepare_tso() local
923 tcph->check = ~csum_ipv6_magic(&iph->saddr, &iph->daddr, 0, vmxnet3_prepare_tso()
/linux-4.4.14/drivers/net/ethernet/broadcom/bnxt/
H A Dbnxt.c871 struct iphdr *iph; bnxt_gro_skb() local
876 iph = ip_hdr(skb); bnxt_gro_skb()
880 th->check = ~tcp_v4_check(len, iph->saddr, iph->daddr, 0); bnxt_gro_skb()
882 struct ipv6hdr *iph; bnxt_gro_skb() local
887 iph = ipv6_hdr(skb); bnxt_gro_skb()
891 th->check = ~tcp_v6_check(len, &iph->saddr, &iph->daddr, 0); bnxt_gro_skb()
902 struct iphdr *iph = (struct iphdr *)skb->data; bnxt_gro_skb() local
904 if (iph->protocol == IPPROTO_UDP) bnxt_gro_skb()
905 uh = (struct udphdr *)(iph + 1); bnxt_gro_skb()
907 struct ipv6hdr *iph = (struct ipv6hdr *)skb->data; bnxt_gro_skb() local
909 if (iph->nexthdr == IPPROTO_UDP) bnxt_gro_skb()
910 uh = (struct udphdr *)(iph + 1); bnxt_gro_skb()
/linux-4.4.14/drivers/net/ethernet/broadcom/bnx2x/
H A Dbnx2x_cmn.c706 const struct iphdr *iph = ip_hdr(skb); bnx2x_gro_ip_csum() local
713 iph->saddr, iph->daddr, 0); bnx2x_gro_ip_csum()
718 struct ipv6hdr *iph = ipv6_hdr(skb); bnx2x_gro_ipv6_csum() local
725 &iph->saddr, &iph->daddr, 0); bnx2x_gro_ipv6_csum()
3709 struct iphdr *iph = ip_hdr(skb); bnx2x_update_pbds_gso_enc() local
3710 u32 csum = (__force u32)(~iph->check) - bnx2x_update_pbds_gso_enc()
3711 (__force u32)iph->tot_len - bnx2x_update_pbds_gso_enc()
3712 (__force u32)iph->frag_off; bnx2x_update_pbds_gso_enc()
3714 outerip_len = iph->ihl << 1; bnx2x_update_pbds_gso_enc()
/linux-4.4.14/drivers/net/ethernet/oki-semi/pch_gbe/
H A Dpch_gbe_main.c1174 struct iphdr *iph = ip_hdr(skb); pch_gbe_tx_queue() local
1177 if (iph->protocol == IPPROTO_TCP) { pch_gbe_tx_queue()
1183 csum_tcpudp_magic(iph->saddr, pch_gbe_tx_queue()
1184 iph->daddr, pch_gbe_tx_queue()
1188 } else if (iph->protocol == IPPROTO_UDP) { pch_gbe_tx_queue()
1195 csum_tcpudp_magic(iph->saddr, pch_gbe_tx_queue()
1196 iph->daddr, pch_gbe_tx_queue()
/linux-4.4.14/drivers/staging/rdma/ipath/
H A Dipath_common.h746 struct ipath_header iph; member in struct:ipath_message_header
754 struct ipath_header iph; member in struct:ether_header

Completed in 5477 milliseconds

12