Lines Matching defs:cork
1385 static int ip6_setup_cork(struct sock *sk, struct inet_cork_full *cork,
1431 cork->base.dst = &rt->dst;
1432 cork->fl.u.ip6 = *fl6;
1445 cork->base.fragsize = mtu;
1446 cork->base.gso_size = ipc6->gso_size;
1447 cork->base.tx_flags = 0;
1448 cork->base.mark = ipc6->sockc.mark;
1449 sock_tx_timestamp(sk, ipc6->sockc.tsflags, &cork->base.tx_flags);
1452 cork->base.flags |= IPCORK_ALLFRAG;
1453 cork->base.length = 0;
1455 cork->base.transmit_time = ipc6->sockc.transmit_time;
1463 struct inet_cork *cork,
1481 struct rt6_info *rt = (struct rt6_info *)cork->dst;
1494 paged = !!cork->gso_size;
1495 mtu = cork->gso_size ? IP6_MAX_MTU : cork->fragsize;
1498 if (cork->tx_flags & SKBTX_ANY_SW_TSTAMP &&
1526 if (cork->length + length > mtu - headersize && ipc6->dontfrag &&
1539 if (cork->length + length > maxnonfragsize - headersize) {
1552 (!(flags & MSG_MORE) || cork->gso_size) &&
1586 cork->length += length;
1592 copy = (cork->length <= mtu && !(cork->flags & IPCORK_ALLFRAG) ? mtu : maxfraglen) - skb->len;
1623 if (datalen > (cork->length <= mtu && !(cork->flags & IPCORK_ALLFRAG) ? mtu : maxfraglen) - fragheaderlen)
1722 skb_shinfo(skb)->tx_flags = cork->tx_flags;
1723 cork->tx_flags = 0;
1805 cork->length -= length;
1829 err = ip6_setup_cork(sk, &inet->cork, &np->cork,
1838 fl6 = &inet->cork.fl.u.ip6;
1842 return __ip6_append_data(sk, fl6, &sk->sk_write_queue, &inet->cork.base,
1843 &np->cork, sk_page_frag(sk), getfrag,
1848 static void ip6_cork_release(struct inet_cork_full *cork,
1860 if (cork->base.dst) {
1861 dst_release(cork->base.dst);
1862 cork->base.dst = NULL;
1863 cork->base.flags &= ~IPCORK_ALLFRAG;
1865 memset(&cork->fl, 0, sizeof(cork->fl));
1870 struct inet_cork_full *cork,
1880 struct rt6_info *rt = (struct rt6_info *)cork->base.dst;
1881 struct flowi6 *fl6 = &cork->fl.u.ip6;
1926 skb->mark = cork->base.mark;
1928 skb->tstamp = cork->base.transmit_time;
1945 ip6_cork_release(cork, v6_cork);
1984 struct inet_cork_full *cork,
1996 ip6_cork_release(cork, v6_cork);
2002 &inet_sk(sk)->cork, &inet6_sk(sk)->cork);
2012 struct inet_cork_full *cork)
2024 cork->base.flags = 0;
2025 cork->base.addr = 0;
2026 cork->base.opt = NULL;
2027 cork->base.dst = NULL;
2029 err = ip6_setup_cork(sk, cork, &v6_cork, ipc6, rt, fl6);
2031 ip6_cork_release(cork, &v6_cork);
2037 err = __ip6_append_data(sk, fl6, &queue, &cork->base, &v6_cork,
2042 __ip6_flush_pending_frames(sk, &queue, cork, &v6_cork);
2046 return __ip6_make_skb(sk, &queue, cork, &v6_cork);