Lines Matching refs:pktopt
2485 ip6_pcbopts(struct ip6_pktopts **pktopt, struct mbuf *m, in ip6_pcbopts() argument
2488 struct ip6_pktopts *opt = *pktopt; in ip6_pcbopts()
2507 *pktopt = NULL; in ip6_pcbopts()
2528 *pktopt = opt; in ip6_pcbopts()
2548 ip6_pcbopt(int optname, u_char *buf, int len, struct ip6_pktopts **pktopt, in ip6_pcbopt() argument
2553 if (*pktopt == NULL) { in ip6_pcbopt()
2554 *pktopt = malloc(sizeof(struct ip6_pktopts), M_IP6OPT, in ip6_pcbopt()
2556 if (*pktopt == NULL) in ip6_pcbopt()
2558 ip6_initpktopts(*pktopt); in ip6_pcbopt()
2560 opt = *pktopt; in ip6_pcbopt()
2566 if (pktopt && pktopt->field) { \
2576 pktopt = inp->in6p_outputopts; \
2577 if (pktopt && pktopt->field) { \
2579 bcopy(pktopt->field, optdata, optdatalen); \
2589 (((struct ip6_ext *)pktopt->field)->ip6e_len + 1) << 3)
2592 pktopt->field->sa_len)
2605 struct ip6_pktopts *pktopt; in ip6_getpcbopt() local
2608 pktopt = inp->in6p_outputopts; in ip6_getpcbopt()
2613 if (pktopt && pktopt->ip6po_pktinfo) { in ip6_getpcbopt()
2614 bcopy(pktopt->ip6po_pktinfo, &null_pktinfo, in ip6_getpcbopt()
2624 if (pktopt && pktopt->ip6po_tclass >= 0) in ip6_getpcbopt()
2625 deftclass = pktopt->ip6po_tclass; in ip6_getpcbopt()
2645 if (pktopt) in ip6_getpcbopt()
2646 defminmtu = pktopt->ip6po_minmtu; in ip6_getpcbopt()
2651 if (pktopt && ((pktopt->ip6po_flags) & IP6PO_DONTFRAG)) in ip6_getpcbopt()
2659 if (pktopt) in ip6_getpcbopt()
2660 defpreftemp = pktopt->ip6po_prefer_tempaddr; in ip6_getpcbopt()
2681 ip6_clearpktopts(struct ip6_pktopts *pktopt, int optname) in ip6_clearpktopts() argument
2683 if (pktopt == NULL) in ip6_clearpktopts()
2687 if (pktopt->ip6po_pktinfo) in ip6_clearpktopts()
2688 free(pktopt->ip6po_pktinfo, M_IP6OPT); in ip6_clearpktopts()
2689 pktopt->ip6po_pktinfo = NULL; in ip6_clearpktopts()
2692 pktopt->ip6po_hlim = -1; in ip6_clearpktopts()
2694 pktopt->ip6po_tclass = -1; in ip6_clearpktopts()
2696 if (pktopt->ip6po_nextroute.ro_nh) { in ip6_clearpktopts()
2697 NH_FREE(pktopt->ip6po_nextroute.ro_nh); in ip6_clearpktopts()
2698 pktopt->ip6po_nextroute.ro_nh = NULL; in ip6_clearpktopts()
2700 if (pktopt->ip6po_nexthop) in ip6_clearpktopts()
2701 free(pktopt->ip6po_nexthop, M_IP6OPT); in ip6_clearpktopts()
2702 pktopt->ip6po_nexthop = NULL; in ip6_clearpktopts()
2705 if (pktopt->ip6po_hbh) in ip6_clearpktopts()
2706 free(pktopt->ip6po_hbh, M_IP6OPT); in ip6_clearpktopts()
2707 pktopt->ip6po_hbh = NULL; in ip6_clearpktopts()
2710 if (pktopt->ip6po_dest1) in ip6_clearpktopts()
2711 free(pktopt->ip6po_dest1, M_IP6OPT); in ip6_clearpktopts()
2712 pktopt->ip6po_dest1 = NULL; in ip6_clearpktopts()
2715 if (pktopt->ip6po_rhinfo.ip6po_rhi_rthdr) in ip6_clearpktopts()
2716 free(pktopt->ip6po_rhinfo.ip6po_rhi_rthdr, M_IP6OPT); in ip6_clearpktopts()
2717 pktopt->ip6po_rhinfo.ip6po_rhi_rthdr = NULL; in ip6_clearpktopts()
2718 if (pktopt->ip6po_route.ro_nh) { in ip6_clearpktopts()
2719 NH_FREE(pktopt->ip6po_route.ro_nh); in ip6_clearpktopts()
2720 pktopt->ip6po_route.ro_nh = NULL; in ip6_clearpktopts()
2724 if (pktopt->ip6po_dest2) in ip6_clearpktopts()
2725 free(pktopt->ip6po_dest2, M_IP6OPT); in ip6_clearpktopts()
2726 pktopt->ip6po_dest2 = NULL; in ip6_clearpktopts()
2801 ip6_freepcbopts(struct ip6_pktopts *pktopt) in ip6_freepcbopts() argument
2803 if (pktopt == NULL) in ip6_freepcbopts()
2806 ip6_clearpktopts(pktopt, -1); in ip6_freepcbopts()
2808 free(pktopt, M_IP6OPT); in ip6_freepcbopts()