ip_output.c (6ea24cf79e055f0a62a64baa8587e2254a493c7b) | ip_output.c (fedbb6b4ff341c1e2120f4ffbf367fd78ac3e8f3) |
---|---|
1/* 2 * INET An implementation of the TCP/IP protocol suite for the LINUX 3 * operating system. INET is implemented using the BSD Socket 4 * interface as the means of communication with the user level. 5 * 6 * The Internet Protocol (IP) output module. 7 * 8 * Authors: Ross Biro --- 257 unchanged lines hidden (view full) --- 266 267#if defined(CONFIG_NETFILTER) && defined(CONFIG_XFRM) 268 /* Policy lookup after SNAT yielded a new policy */ 269 if (skb_dst(skb)->xfrm) { 270 IPCB(skb)->flags |= IPSKB_REROUTED; 271 return dst_output(net, sk, skb); 272 } 273#endif | 1/* 2 * INET An implementation of the TCP/IP protocol suite for the LINUX 3 * operating system. INET is implemented using the BSD Socket 4 * interface as the means of communication with the user level. 5 * 6 * The Internet Protocol (IP) output module. 7 * 8 * Authors: Ross Biro --- 257 unchanged lines hidden (view full) --- 266 267#if defined(CONFIG_NETFILTER) && defined(CONFIG_XFRM) 268 /* Policy lookup after SNAT yielded a new policy */ 269 if (skb_dst(skb)->xfrm) { 270 IPCB(skb)->flags |= IPSKB_REROUTED; 271 return dst_output(net, sk, skb); 272 } 273#endif |
274 mtu = ip_skb_dst_mtu(skb); | 274 mtu = ip_skb_dst_mtu(sk, skb); |
275 if (skb_is_gso(skb)) 276 return ip_finish_output_gso(net, sk, skb, mtu); 277 278 if (skb->len > mtu || (IPCB(skb)->flags & IPSKB_FRAG_PMTU)) 279 return ip_fragment(net, sk, skb, mtu, ip_finish_output2); 280 281 return ip_finish_output2(net, sk, skb); 282} --- 253 unchanged lines hidden (view full) --- 536 goto fail; 537 538 /* 539 * Point into the IP datagram header. 540 */ 541 542 iph = ip_hdr(skb); 543 | 275 if (skb_is_gso(skb)) 276 return ip_finish_output_gso(net, sk, skb, mtu); 277 278 if (skb->len > mtu || (IPCB(skb)->flags & IPSKB_FRAG_PMTU)) 279 return ip_fragment(net, sk, skb, mtu, ip_finish_output2); 280 281 return ip_finish_output2(net, sk, skb); 282} --- 253 unchanged lines hidden (view full) --- 536 goto fail; 537 538 /* 539 * Point into the IP datagram header. 540 */ 541 542 iph = ip_hdr(skb); 543 |
544 mtu = ip_skb_dst_mtu(skb); | 544 mtu = ip_skb_dst_mtu(sk, skb); |
545 if (IPCB(skb)->frag_max_size && IPCB(skb)->frag_max_size < mtu) 546 mtu = IPCB(skb)->frag_max_size; 547 548 /* 549 * Setup starting values. 550 */ 551 552 hlen = iph->ihl * 4; --- 1064 unchanged lines hidden --- | 545 if (IPCB(skb)->frag_max_size && IPCB(skb)->frag_max_size < mtu) 546 mtu = IPCB(skb)->frag_max_size; 547 548 /* 549 * Setup starting values. 550 */ 551 552 hlen = iph->ihl * 4; --- 1064 unchanged lines hidden --- |