Lines Matching refs:opt
146 __be32 saddr, __be32 daddr, struct ip_options_rcu *opt, in ip_build_and_send_pkt() argument
155 skb_push(skb, sizeof(struct iphdr) + (opt ? opt->opt.optlen : 0)); in ip_build_and_send_pkt()
162 iph->daddr = (opt && opt->opt.srr ? opt->opt.faddr : daddr); in ip_build_and_send_pkt()
180 if (opt && opt->opt.optlen) { in ip_build_and_send_pkt()
181 iph->ihl += opt->opt.optlen>>2; in ip_build_and_send_pkt()
182 ip_options_build(skb, &opt->opt, daddr, rt, 0); in ip_build_and_send_pkt()
489 if (inet_opt && inet_opt->opt.srr) in __ip_queue_xmit()
490 daddr = inet_opt->opt.faddr; in __ip_queue_xmit()
510 if (inet_opt && inet_opt->opt.is_strictroute && rt->rt_uses_gateway) in __ip_queue_xmit()
514 skb_push(skb, sizeof(struct iphdr) + (inet_opt ? inet_opt->opt.optlen : 0)); in __ip_queue_xmit()
528 if (inet_opt && inet_opt->opt.optlen) { in __ip_queue_xmit()
529 iph->ihl += inet_opt->opt.optlen >> 2; in __ip_queue_xmit()
530 ip_options_build(skb, &inet_opt->opt, inet->inet_daddr, rt, 0); in __ip_queue_xmit()
852 if (first_frag && IPCB(skb)->opt.optlen) { in ip_do_fragment()
857 IPCB(iter.frag)->opt.optlen = in ip_do_fragment()
858 IPCB(skb)->opt.optlen; in ip_do_fragment()
981 struct ip_options *opt = cork->opt; in __ip_append_data() local
1007 fragheaderlen = sizeof(struct iphdr) + (opt ? opt->optlen : 0); in __ip_append_data()
1013 mtu - (opt ? opt->optlen : 0)); in __ip_append_data()
1256 struct ip_options_rcu *opt; in ip_setup_cork() local
1266 opt = ipc->opt; in ip_setup_cork()
1267 if (opt) { in ip_setup_cork()
1268 if (!cork->opt) { in ip_setup_cork()
1269 cork->opt = kmalloc(sizeof(struct ip_options) + 40, in ip_setup_cork()
1271 if (unlikely(!cork->opt)) in ip_setup_cork()
1274 memcpy(cork->opt, &opt->opt, sizeof(struct ip_options) + opt->opt.optlen); in ip_setup_cork()
1346 struct ip_options *opt = NULL; in ip_append_page() local
1366 opt = cork->opt; in ip_append_page()
1374 fragheaderlen = sizeof(struct iphdr) + (opt ? opt->optlen : 0); in ip_append_page()
1380 mtu - (opt ? opt->optlen : 0)); in ip_append_page()
1473 kfree(cork->opt); in ip_cork_release()
1474 cork->opt = NULL; in ip_cork_release()
1492 struct ip_options *opt = NULL; in __ip_make_skb() local
1533 opt = cork->opt; in __ip_make_skb()
1552 if (opt) { in __ip_make_skb()
1553 iph->ihl += opt->optlen >> 2; in __ip_make_skb()
1554 ip_options_build(skb, opt, cork->addr, rt, 0); in __ip_make_skb()
1641 cork->opt = NULL; in ip_make_skb()
1689 if (__ip_options_echo(net, &replyopts.opt.opt, skb, sopt)) in ip_send_unicast_reply()
1696 if (replyopts.opt.opt.optlen) { in ip_send_unicast_reply()
1697 ipc.opt = &replyopts.opt; in ip_send_unicast_reply()
1699 if (replyopts.opt.opt.srr) in ip_send_unicast_reply()
1700 daddr = replyopts.opt.opt.faddr; in ip_send_unicast_reply()