ip_output.c (2e77d89b2fa8e3f8325b8ce7893ec3645f41aff5) ip_output.c (a21bba945430f3f5e00c349665f88cdacdb32a8d)
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

--- 1270 unchanged lines hidden (view full) ---

1279 ip_select_ident(iph, &rt->u.dst, sk);
1280 iph->ttl = ttl;
1281 iph->protocol = sk->sk_protocol;
1282 iph->saddr = rt->rt_src;
1283 iph->daddr = rt->rt_dst;
1284
1285 skb->priority = sk->sk_priority;
1286 skb->mark = sk->sk_mark;
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

--- 1270 unchanged lines hidden (view full) ---

1279 ip_select_ident(iph, &rt->u.dst, sk);
1280 iph->ttl = ttl;
1281 iph->protocol = sk->sk_protocol;
1282 iph->saddr = rt->rt_src;
1283 iph->daddr = rt->rt_dst;
1284
1285 skb->priority = sk->sk_priority;
1286 skb->mark = sk->sk_mark;
1287 skb->dst = dst_clone(&rt->u.dst);
1287 /*
1288 * Steal rt from cork.dst to avoid a pair of atomic_inc/atomic_dec
1289 * on dst refcount
1290 */
1291 inet->cork.dst = NULL;
1292 skb->dst = &rt->u.dst;
1288
1289 if (iph->protocol == IPPROTO_ICMP)
1290 icmp_out_count(net, ((struct icmphdr *)
1291 skb_transport_header(skb))->type);
1292
1293 /* Netfilter gets whole the not fragmented skb. */
1294 err = ip_local_out(skb);
1295 if (err) {

--- 131 unchanged lines hidden ---
1293
1294 if (iph->protocol == IPPROTO_ICMP)
1295 icmp_out_count(net, ((struct icmphdr *)
1296 skb_transport_header(skb))->type);
1297
1298 /* Netfilter gets whole the not fragmented skb. */
1299 err = ip_local_out(skb);
1300 if (err) {

--- 131 unchanged lines hidden ---