H A D | ip6_output.c | 1181 struct inet6_cork *v6_cork, ip6_setup_cork() 1192 if (WARN_ON(v6_cork->opt)) ip6_setup_cork() 1195 v6_cork->opt = kzalloc(opt->tot_len, sk->sk_allocation); ip6_setup_cork() 1196 if (unlikely(!v6_cork->opt)) ip6_setup_cork() 1199 v6_cork->opt->tot_len = opt->tot_len; ip6_setup_cork() 1200 v6_cork->opt->opt_flen = opt->opt_flen; ip6_setup_cork() 1201 v6_cork->opt->opt_nflen = opt->opt_nflen; ip6_setup_cork() 1203 v6_cork->opt->dst0opt = ip6_opt_dup(opt->dst0opt, ip6_setup_cork() 1205 if (opt->dst0opt && !v6_cork->opt->dst0opt) ip6_setup_cork() 1208 v6_cork->opt->dst1opt = ip6_opt_dup(opt->dst1opt, ip6_setup_cork() 1210 if (opt->dst1opt && !v6_cork->opt->dst1opt) ip6_setup_cork() 1213 v6_cork->opt->hopopt = ip6_opt_dup(opt->hopopt, ip6_setup_cork() 1215 if (opt->hopopt && !v6_cork->opt->hopopt) ip6_setup_cork() 1218 v6_cork->opt->srcrt = ip6_rthdr_dup(opt->srcrt, ip6_setup_cork() 1220 if (opt->srcrt && !v6_cork->opt->srcrt) ip6_setup_cork() 1228 v6_cork->hop_limit = hlimit; ip6_setup_cork() 1229 v6_cork->tclass = tclass; ip6_setup_cork() 1252 struct inet6_cork *v6_cork, __ip6_append_data() 1270 struct ipv6_txoptions *opt = v6_cork->opt; __ip6_append_data() 1597 struct inet6_cork *v6_cork) ip6_cork_release() 1599 if (v6_cork->opt) { ip6_cork_release() 1600 kfree(v6_cork->opt->dst0opt); ip6_cork_release() 1601 kfree(v6_cork->opt->dst1opt); ip6_cork_release() 1602 kfree(v6_cork->opt->hopopt); ip6_cork_release() 1603 kfree(v6_cork->opt->srcrt); ip6_cork_release() 1604 kfree(v6_cork->opt); ip6_cork_release() 1605 v6_cork->opt = NULL; ip6_cork_release() 1619 struct inet6_cork *v6_cork) __ip6_make_skb() 1627 struct ipv6_txoptions *opt = v6_cork->opt; __ip6_make_skb() 1665 ip6_flow_hdr(hdr, v6_cork->tclass, __ip6_make_skb() 1668 hdr->hop_limit = v6_cork->hop_limit; __ip6_make_skb() 1685 ip6_cork_release(cork, v6_cork); __ip6_make_skb() 1723 struct inet6_cork *v6_cork) __ip6_flush_pending_frames() 1734 ip6_cork_release(cork, v6_cork); __ip6_flush_pending_frames() 1754 struct inet6_cork v6_cork; ip6_make_skb() local 1767 v6_cork.opt = NULL; ip6_make_skb() 1768 err = ip6_setup_cork(sk, &cork, &v6_cork, hlimit, tclass, opt, rt, fl6); ip6_make_skb() 1775 err = __ip6_append_data(sk, fl6, &queue, &cork.base, &v6_cork, ip6_make_skb() 1780 __ip6_flush_pending_frames(sk, &queue, &cork, &v6_cork); ip6_make_skb() 1784 return __ip6_make_skb(sk, &queue, &cork, &v6_cork); ip6_make_skb() 1180 ip6_setup_cork(struct sock *sk, struct inet_cork_full *cork, struct inet6_cork *v6_cork, int hlimit, int tclass, struct ipv6_txoptions *opt, struct rt6_info *rt, struct flowi6 *fl6) ip6_setup_cork() argument 1248 __ip6_append_data(struct sock *sk, struct flowi6 *fl6, struct sk_buff_head *queue, struct inet_cork *cork, struct inet6_cork *v6_cork, struct page_frag *pfrag, int getfrag(void *from, char *to, int offset, int len, int odd, struct sk_buff *skb), void *from, int length, int transhdrlen, unsigned int flags, int dontfrag) __ip6_append_data() argument 1596 ip6_cork_release(struct inet_cork_full *cork, struct inet6_cork *v6_cork) ip6_cork_release() argument 1616 __ip6_make_skb(struct sock *sk, struct sk_buff_head *queue, struct inet_cork_full *cork, struct inet6_cork *v6_cork) __ip6_make_skb() argument 1720 __ip6_flush_pending_frames(struct sock *sk, struct sk_buff_head *queue, struct inet_cork_full *cork, struct inet6_cork *v6_cork) __ip6_flush_pending_frames() argument
|