Lines Matching defs:opt
155 * The mbuf opt, if present, will not be freed.
164 struct ip6_pktopts *opt,
219 if (opt) {
221 MAKE_EXTHDR(opt->ip6po_hbh, &exthdrs.ip6e_hbh);
223 MAKE_EXTHDR(opt->ip6po_dest1, &exthdrs.ip6e_dest1);
225 MAKE_EXTHDR(opt->ip6po_rthdr, &exthdrs.ip6e_rthdr);
227 MAKE_EXTHDR(opt->ip6po_dest2, &exthdrs.ip6e_dest2);
549 if (opt && opt->ip6po_rthdr)
550 ro = &opt->ip6po_route;
671 if (opt && opt->ip6po_pktinfo
672 && opt->ip6po_pktinfo->ipi6_ifindex) {
674 && ifp->if_index != opt->ip6po_pktinfo->ipi6_ifindex) {
682 if (opt && opt->ip6po_hlim != -1)
683 ip6->ip6_hlim = opt->ip6po_hlim & 0xff;
706 if (opt && opt->ip6po_pktinfo && opt->ip6po_pktinfo->ipi6_ifindex)
707 ifp = ifindex2ifnet[opt->ip6po_pktinfo->ipi6_ifindex];
729 if (opt && opt->ip6po_hlim != -1)
730 ip6->ip6_hlim = opt->ip6po_hlim & 0xff;
1799 struct ip6_pktopts *opt = *pktopt;
1805 if (opt) {
1807 if (opt->ip6po_pktinfo || opt->ip6po_nexthop ||
1808 opt->ip6po_hbh || opt->ip6po_dest1 || opt->ip6po_dest2 ||
1809 opt->ip6po_rhinfo.ip6po_rhi_rthdr)
1812 ip6_clearpktopts(opt, 1, -1);
1814 opt = _MALLOC(sizeof(*opt), M_IP6OPT, M_WAITOK);
1820 * whether the opt is just created or given.
1822 if (opt)
1823 FREE(opt, M_IP6OPT);
1830 if ((error = ip6_setpktoptions(m, opt, priv, 1)) != 0) {
1831 ip6_clearpktopts(opt, 1, -1); /* XXX: discard all options */
1832 FREE(opt, M_IP6OPT);
1835 *pktopt = opt;
1844 init_ip6pktopts(opt)
1845 struct ip6_pktopts *opt;
1848 bzero(opt, sizeof(*opt));
1849 opt->ip6po_hlim = -1; /* -1 means default hop limit */
2425 ip6_setpktoptions(control, opt, priv, needcopy)
2427 struct ip6_pktopts *opt;
2432 if (control == 0 || opt == 0)
2435 init_ip6pktopts(opt);
2461 opt->ip6po_pktinfo =
2464 bcopy(CMSG_DATA(cm), opt->ip6po_pktinfo,
2467 opt->ip6po_pktinfo =
2469 if (opt->ip6po_pktinfo->ipi6_ifindex &&
2470 IN6_IS_ADDR_LINKLOCAL(&opt->ip6po_pktinfo->ipi6_addr))
2471 opt->ip6po_pktinfo->ipi6_addr.s6_addr16[1] =
2472 htons(opt->ip6po_pktinfo->ipi6_ifindex);
2474 if (opt->ip6po_pktinfo->ipi6_ifindex > if_index
2475 || opt->ip6po_pktinfo->ipi6_ifindex < 0) {
2484 if (!IN6_IS_ADDR_UNSPECIFIED(&opt->ip6po_pktinfo->ipi6_addr)) {
2492 opt->ip6po_pktinfo->ipi6_addr;
2509 opt->ip6po_hlim = *(int *)CMSG_DATA(cm);
2510 if (opt->ip6po_hlim < -1 || opt->ip6po_hlim > 255)
2524 opt->ip6po_nexthop =
2528 opt->ip6po_nexthop,
2531 opt->ip6po_nexthop =
2548 opt->ip6po_hbh =
2550 bcopy(hbh, opt->ip6po_hbh, hbhlen);
2552 opt->ip6po_hbh = hbh;
2581 if (opt->ip6po_rthdr == NULL)
2582 newdest = &opt->ip6po_dest1;
2584 newdest = &opt->ip6po_dest2;
2623 opt->ip6po_rthdr = _MALLOC(rthlen, M_IP6OPT,
2625 bcopy(rth, opt->ip6po_rthdr, rthlen);
2627 opt->ip6po_rthdr = rth;