Lines Matching refs:cork

953 			    struct inet_cork *cork,  in __ip_append_data()  argument
963 struct ip_options *opt = cork->opt; in __ip_append_data()
973 struct rtable *rt = dst_rtable(cork->dst); in __ip_append_data()
981 mtu = cork->gso_size ? IP_MAX_MTU : cork->fragsize; in __ip_append_data()
982 paged = !!cork->gso_size; in __ip_append_data()
990 if (cork->length + length > maxnonfragsize - fragheaderlen) { in __ip_append_data()
1003 (!(flags & MSG_MORE) || cork->gso_size) && in __ip_append_data()
1049 cork->length += length; in __ip_append_data()
1051 if (cork->tx_flags & SKBTX_ANY_TSTAMP && in __ip_append_data()
1053 if (cork->flags & IPCORK_TS_OPT_ID) { in __ip_append_data()
1054 tskey = cork->ts_opt_id; in __ip_append_data()
1189 skb_shinfo(skb)->tx_flags = cork->tx_flags; in __ip_append_data()
1190 cork->tx_flags = 0; in __ip_append_data()
1284 cork->length -= length; in __ip_append_data()
1292 static int ip_setup_cork(struct sock *sk, struct inet_cork *cork, in ip_setup_cork() argument
1302 cork->fragsize = ip_sk_use_pmtu(sk) ? in ip_setup_cork()
1305 if (!inetdev_valid_mtu(cork->fragsize)) in ip_setup_cork()
1313 if (!cork->opt) { in ip_setup_cork()
1314 cork->opt = kmalloc(sizeof(struct ip_options) + 40, in ip_setup_cork()
1316 if (unlikely(!cork->opt)) in ip_setup_cork()
1319 memcpy(cork->opt, &opt->opt, sizeof(struct ip_options) + opt->opt.optlen); in ip_setup_cork()
1320 cork->flags |= IPCORK_OPT; in ip_setup_cork()
1321 cork->addr = ipc->addr; in ip_setup_cork()
1324 cork->gso_size = ipc->gso_size; in ip_setup_cork()
1326 cork->dst = &rt->dst; in ip_setup_cork()
1330 cork->length = 0; in ip_setup_cork()
1331 cork->ttl = ipc->ttl; in ip_setup_cork()
1332 cork->tos = ipc->tos; in ip_setup_cork()
1333 cork->mark = ipc->sockc.mark; in ip_setup_cork()
1334 cork->priority = ipc->sockc.priority; in ip_setup_cork()
1335 cork->transmit_time = ipc->sockc.transmit_time; in ip_setup_cork()
1336 cork->tx_flags = 0; in ip_setup_cork()
1337 sock_tx_timestamp(sk, &ipc->sockc, &cork->tx_flags); in ip_setup_cork()
1339 cork->flags |= IPCORK_TS_OPT_ID; in ip_setup_cork()
1340 cork->ts_opt_id = ipc->sockc.ts_opt_id; in ip_setup_cork()
1371 err = ip_setup_cork(sk, &inet->cork.base, ipc, rtp); in ip_append_data()
1378 return __ip_append_data(sk, fl4, &sk->sk_write_queue, &inet->cork.base, in ip_append_data()
1383 static void ip_cork_release(struct inet_cork *cork) in ip_cork_release() argument
1385 cork->flags &= ~IPCORK_OPT; in ip_cork_release()
1386 kfree(cork->opt); in ip_cork_release()
1387 cork->opt = NULL; in ip_cork_release()
1388 dst_release(cork->dst); in ip_cork_release()
1389 cork->dst = NULL; in ip_cork_release()
1399 struct inet_cork *cork) in __ip_make_skb() argument
1406 struct rtable *rt = dst_rtable(cork->dst); in __ip_make_skb()
1446 if (cork->flags & IPCORK_OPT) in __ip_make_skb()
1447 opt = cork->opt; in __ip_make_skb()
1449 if (cork->ttl != 0) in __ip_make_skb()
1450 ttl = cork->ttl; in __ip_make_skb()
1459 iph->tos = (cork->tos != -1) ? cork->tos : READ_ONCE(inet->tos); in __ip_make_skb()
1468 ip_options_build(skb, opt, cork->addr, rt); in __ip_make_skb()
1471 skb->priority = cork->priority; in __ip_make_skb()
1472 skb->mark = cork->mark; in __ip_make_skb()
1474 skb_set_delivery_time(skb, cork->transmit_time, SKB_CLOCK_MONOTONIC); in __ip_make_skb()
1476 skb_set_delivery_type_by_clockid(skb, cork->transmit_time, sk->sk_clockid); in __ip_make_skb()
1481 cork->dst = NULL; in __ip_make_skb()
1499 ip_cork_release(cork); in __ip_make_skb()
1536 struct inet_cork *cork) in __ip_flush_pending_frames() argument
1543 ip_cork_release(cork); in __ip_flush_pending_frames()
1548 __ip_flush_pending_frames(sk, &sk->sk_write_queue, &inet_sk(sk)->cork.base); in ip_flush_pending_frames()
1557 struct inet_cork *cork, unsigned int flags) in ip_make_skb() argument
1567 cork->flags = 0; in ip_make_skb()
1568 cork->addr = 0; in ip_make_skb()
1569 cork->opt = NULL; in ip_make_skb()
1570 err = ip_setup_cork(sk, cork, ipc, rtp); in ip_make_skb()
1574 err = __ip_append_data(sk, fl4, &queue, cork, in ip_make_skb()
1578 __ip_flush_pending_frames(sk, &queue, cork); in ip_make_skb()
1582 return __ip_make_skb(sk, fl4, &queue, cork); in ip_make_skb()