ip6_output.c (2423496af35d94a87156b063ea5cedffc10a70a1) ip6_output.c (7dd7eb9513bd02184d45f000ab69d78cb1fa1531)
1/*
2 * IPv6 output functions
3 * Linux INET6 implementation
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 *
8 * Based on linux/net/ipv4/ip_output.c

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

592 struct ipv6hdr *tmp_hdr;
593 struct frag_hdr *fh;
594 unsigned int mtu, hlen, left, len;
595 int hroom, troom;
596 __be32 frag_id;
597 int ptr, offset = 0, err = 0;
598 u8 *prevhdr, nexthdr = 0;
599
1/*
2 * IPv6 output functions
3 * Linux INET6 implementation
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 *
8 * Based on linux/net/ipv4/ip_output.c

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

592 struct ipv6hdr *tmp_hdr;
593 struct frag_hdr *fh;
594 unsigned int mtu, hlen, left, len;
595 int hroom, troom;
596 __be32 frag_id;
597 int ptr, offset = 0, err = 0;
598 u8 *prevhdr, nexthdr = 0;
599
600 hlen = ip6_find_1stfragopt(skb, &prevhdr);
601 if (hlen < 0) {
602 err = hlen;
600 err = ip6_find_1stfragopt(skb, &prevhdr);
601 if (err < 0)
603 goto fail;
602 goto fail;
604 }
603 hlen = err;
605 nexthdr = *prevhdr;
606
607 mtu = ip6_skb_dst_mtu(skb);
608
609 /* We must not fragment if the socket is set to force MTU discovery
610 * or if the skb it not generated by a local socket.
611 */
612 if (unlikely(!skb->ignore_df && skb->len > mtu))

--- 1219 unchanged lines hidden ---
604 nexthdr = *prevhdr;
605
606 mtu = ip6_skb_dst_mtu(skb);
607
608 /* We must not fragment if the socket is set to force MTU discovery
609 * or if the skb it not generated by a local socket.
610 */
611 if (unlikely(!skb->ignore_df && skb->len > mtu))

--- 1219 unchanged lines hidden ---