ip6po_rthdr
if ((error = copyexthdr(opt->ip6po_rthdr, &exthdrs.ip6e_rthdr)))
if (pktopt && pktopt->ip6po_rthdr) {
optdata = (void *)pktopt->ip6po_rthdr;
ip6e = (struct ip6_ext *)pktopt->ip6po_rthdr;
PKTOPT_EXTHDRCPY(ip6po_rthdr); /* not copy the cached route */
if (dst->ip6po_rthdr) kfree(dst->ip6po_rthdr, M_IP6OPT);
PKTOPT_EXTHDRCPY(ip6po_rthdr); /* not copy the cached route */
if (opt->ip6po_rthdr == NULL)
opt->ip6po_rthdr = kmalloc(rthlen, M_IP6OPT, M_NOWAIT);
if (opt->ip6po_rthdr == NULL)
bcopy(rth, opt->ip6po_rthdr, rthlen);
if (in6p->in6p_outputopts->ip6po_rthdr)
len += elen(in6p->in6p_outputopts->ip6po_rthdr);
if (opt && opt->ip6po_rthdr)
if (optp == &opt && optp->ip6po_rthdr && optp->ip6po_route.ro_rt)