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 ---