Lines Matching defs:pktopt

2449 ip6_pcbopts(struct ip6_pktopts **pktopt, struct mbuf *m,
2452 struct ip6_pktopts *opt = *pktopt;
2471 *pktopt = NULL;
2492 *pktopt = opt;
2512 ip6_pcbopt(int optname, u_char *buf, int len, struct ip6_pktopts **pktopt,
2519 if (*pktopt == NULL) {
2520 *pktopt = malloc(sizeof(struct ip6_pktopts), M_IP6OPT,
2522 if (*pktopt == NULL)
2524 ip6_initpktopts(*pktopt);
2526 opt = *pktopt;
2536 if (pktopt && pktopt->field) { \
2546 pktopt = inp->in6p_outputopts; \
2547 if (pktopt && pktopt->field) { \
2549 bcopy(pktopt->field, optdata, optdatalen); \
2559 (((struct ip6_ext *)pktopt->field)->ip6e_len + 1) << 3)
2562 pktopt->field->sa_len)
2575 struct ip6_pktopts *pktopt;
2578 pktopt = inp->in6p_outputopts;
2583 if (pktopt && pktopt->ip6po_pktinfo) {
2584 bcopy(pktopt->ip6po_pktinfo, &null_pktinfo,
2594 if (pktopt && pktopt->ip6po_tclass >= 0)
2595 deftclass = pktopt->ip6po_tclass;
2615 if (pktopt)
2616 defminmtu = pktopt->ip6po_minmtu;
2621 if (pktopt && ((pktopt->ip6po_flags) & IP6PO_DONTFRAG))
2629 if (pktopt)
2630 defpreftemp = pktopt->ip6po_prefer_tempaddr;
2651 ip6_clearpktopts(struct ip6_pktopts *pktopt, int optname)
2653 if (pktopt == NULL)
2657 if (pktopt->ip6po_pktinfo)
2658 free(pktopt->ip6po_pktinfo, M_IP6OPT);
2659 pktopt->ip6po_pktinfo = NULL;
2662 pktopt->ip6po_hlim = -1;
2663 pktopt->ip6po_valid &= ~IP6PO_VALID_HLIM;
2666 pktopt->ip6po_tclass = -1;
2667 pktopt->ip6po_valid &= ~IP6PO_VALID_TC;
2670 if (pktopt->ip6po_nextroute.ro_nh) {
2671 NH_FREE(pktopt->ip6po_nextroute.ro_nh);
2672 pktopt->ip6po_nextroute.ro_nh = NULL;
2674 if (pktopt->ip6po_nexthop)
2675 free(pktopt->ip6po_nexthop, M_IP6OPT);
2676 pktopt->ip6po_nexthop = NULL;
2677 pktopt->ip6po_valid &= ~IP6PO_VALID_NHINFO;
2680 if (pktopt->ip6po_hbh)
2681 free(pktopt->ip6po_hbh, M_IP6OPT);
2682 pktopt->ip6po_hbh = NULL;
2683 pktopt->ip6po_valid &= ~IP6PO_VALID_HBH;
2686 if (pktopt->ip6po_dest1)
2687 free(pktopt->ip6po_dest1, M_IP6OPT);
2688 pktopt->ip6po_dest1 = NULL;
2689 pktopt->ip6po_valid &= ~IP6PO_VALID_DEST1;
2692 if (pktopt->ip6po_rhinfo.ip6po_rhi_rthdr)
2693 free(pktopt->ip6po_rhinfo.ip6po_rhi_rthdr, M_IP6OPT);
2694 pktopt->ip6po_rhinfo.ip6po_rhi_rthdr = NULL;
2695 if (pktopt->ip6po_route.ro_nh) {
2696 NH_FREE(pktopt->ip6po_route.ro_nh);
2697 pktopt->ip6po_route.ro_nh = NULL;
2699 pktopt->ip6po_valid &= ~IP6PO_VALID_RHINFO;
2702 if (pktopt->ip6po_dest2)
2703 free(pktopt->ip6po_dest2, M_IP6OPT);
2704 pktopt->ip6po_dest2 = NULL;
2705 pktopt->ip6po_valid &= ~IP6PO_VALID_DEST2;
2781 ip6_freepcbopts(struct ip6_pktopts *pktopt)
2783 if (pktopt == NULL)
2786 ip6_clearpktopts(pktopt, -1);
2788 free(pktopt, M_IP6OPT);