Lines Matching refs:pktopt
3129 ip6_pcbopts(struct ip6_pktopts **pktopt, struct mbuf *m, struct socket *so, in ip6_pcbopts() argument
3133 struct ip6_pktopts *opt = *pktopt; in ip6_pcbopts()
3150 *pktopt = NULL; in ip6_pcbopts()
3169 *pktopt = opt; in ip6_pcbopts()
3188 ip6_pcbopt(int optname, u_char *buf, int len, struct ip6_pktopts **pktopt, in ip6_pcbopt() argument
3193 opt = *pktopt; in ip6_pcbopt()
3197 *pktopt = opt; in ip6_pcbopt()
3204 ip6_getpcbopt(struct ip6_pktopts *pktopt, int optname, struct sockopt *sopt) in ip6_getpcbopt() argument
3217 if (pktopt && pktopt->ip6po_pktinfo) { in ip6_getpcbopt()
3218 optdata = (void *)pktopt->ip6po_pktinfo; in ip6_getpcbopt()
3228 if (pktopt && pktopt->ip6po_tclass >= 0) { in ip6_getpcbopt()
3229 optdata = (void *)&pktopt->ip6po_tclass; in ip6_getpcbopt()
3237 if (pktopt && pktopt->ip6po_hbh) { in ip6_getpcbopt()
3238 optdata = (void *)pktopt->ip6po_hbh; in ip6_getpcbopt()
3239 ip6e = (struct ip6_ext *)pktopt->ip6po_hbh; in ip6_getpcbopt()
3245 if (pktopt && pktopt->ip6po_rthdr) { in ip6_getpcbopt()
3246 optdata = (void *)pktopt->ip6po_rthdr; in ip6_getpcbopt()
3247 ip6e = (struct ip6_ext *)pktopt->ip6po_rthdr; in ip6_getpcbopt()
3253 if (pktopt && pktopt->ip6po_dest1) { in ip6_getpcbopt()
3254 optdata = (void *)pktopt->ip6po_dest1; in ip6_getpcbopt()
3255 ip6e = (struct ip6_ext *)pktopt->ip6po_dest1; in ip6_getpcbopt()
3261 if (pktopt && pktopt->ip6po_dest2) { in ip6_getpcbopt()
3262 optdata = (void *)pktopt->ip6po_dest2; in ip6_getpcbopt()
3263 ip6e = (struct ip6_ext *)pktopt->ip6po_dest2; in ip6_getpcbopt()
3269 if (pktopt && pktopt->ip6po_nexthop) { in ip6_getpcbopt()
3270 optdata = (void *)pktopt->ip6po_nexthop; in ip6_getpcbopt()
3271 optdatalen = pktopt->ip6po_nexthop->sa_len; in ip6_getpcbopt()
3276 if (pktopt) { in ip6_getpcbopt()
3277 optdata = (void *)&pktopt->ip6po_minmtu; in ip6_getpcbopt()
3285 if (pktopt && ((pktopt->ip6po_flags) & IP6PO_DONTFRAG)) { in ip6_getpcbopt()
3295 if (pktopt) { in ip6_getpcbopt()
3296 optdata = (void *)&pktopt->ip6po_prefer_tempaddr; in ip6_getpcbopt()
3314 ip6_clearpktopts(struct ip6_pktopts *pktopt, int optname) in ip6_clearpktopts() argument
3316 if (pktopt == NULL) { in ip6_clearpktopts()
3321 if (pktopt->ip6po_pktinfo) { in ip6_clearpktopts()
3322 kfree_type(struct in6_pktinfo, pktopt->ip6po_pktinfo); in ip6_clearpktopts()
3324 pktopt->ip6po_pktinfo = NULL; in ip6_clearpktopts()
3327 pktopt->ip6po_hlim = -1; in ip6_clearpktopts()
3330 pktopt->ip6po_tclass = -1; in ip6_clearpktopts()
3333 ROUTE_RELEASE(&pktopt->ip6po_nextroute); in ip6_clearpktopts()
3334 if (pktopt->ip6po_nexthop) { in ip6_clearpktopts()
3335 kfree_data_addr(pktopt->ip6po_nexthop); in ip6_clearpktopts()
3337 pktopt->ip6po_nexthop = NULL; in ip6_clearpktopts()
3340 if (pktopt->ip6po_hbh) { in ip6_clearpktopts()
3341 kfree_data_addr(pktopt->ip6po_hbh); in ip6_clearpktopts()
3343 pktopt->ip6po_hbh = NULL; in ip6_clearpktopts()
3346 if (pktopt->ip6po_dest1) { in ip6_clearpktopts()
3347 kfree_data_addr(pktopt->ip6po_dest1); in ip6_clearpktopts()
3349 pktopt->ip6po_dest1 = NULL; in ip6_clearpktopts()
3352 if (pktopt->ip6po_rhinfo.ip6po_rhi_rthdr) { in ip6_clearpktopts()
3353 kfree_data_addr(pktopt->ip6po_rhinfo.ip6po_rhi_rthdr); in ip6_clearpktopts()
3355 pktopt->ip6po_rhinfo.ip6po_rhi_rthdr = NULL; in ip6_clearpktopts()
3356 ROUTE_RELEASE(&pktopt->ip6po_route); in ip6_clearpktopts()
3359 if (pktopt->ip6po_dest2) { in ip6_clearpktopts()
3360 kfree_data_addr(pktopt->ip6po_dest2); in ip6_clearpktopts()
3362 pktopt->ip6po_dest2 = NULL; in ip6_clearpktopts()
3436 ip6_freepcbopts(struct ip6_pktopts *pktopt) in ip6_freepcbopts() argument
3438 if (pktopt == NULL) { in ip6_freepcbopts()
3442 ip6_clearpktopts(pktopt, -1); in ip6_freepcbopts()
3444 kfree_type(struct ip6_pktopts, pktopt); in ip6_freepcbopts()