Lines Matching refs:exthdrs
313 struct ip6_exthdrs exthdrs; in ip6_output_list() member
328 #define exthdrs ip6obz.exthdrs in ip6_output_list() macro
401 bcopy(&dn_tag->dn_exthdrs, &exthdrs, sizeof(exthdrs)); in ip6_output_list()
547 MAKE_EXTHDR(opt->ip6po_hbh, &exthdrs.ip6e_hbh); in ip6_output_list()
560 MAKE_EXTHDR(opt->ip6po_dest1, &exthdrs.ip6e_dest1); in ip6_output_list()
563 MAKE_EXTHDR(opt->ip6po_rthdr, &exthdrs.ip6e_rthdr); in ip6_output_list()
565 MAKE_EXTHDR(opt->ip6po_dest2, &exthdrs.ip6e_dest2); in ip6_output_list()
722 if (exthdrs.ip6e_hbh != NULL) { in ip6_output_list()
723 optlen += exthdrs.ip6e_hbh->m_len; in ip6_output_list()
725 if (exthdrs.ip6e_dest1 != NULL) { in ip6_output_list()
726 optlen += exthdrs.ip6e_dest1->m_len; in ip6_output_list()
728 if (exthdrs.ip6e_rthdr != NULL) { in ip6_output_list()
729 optlen += exthdrs.ip6e_rthdr->m_len; in ip6_output_list()
734 if (exthdrs.ip6e_dest2 != NULL) { in ip6_output_list()
735 optlen += exthdrs.ip6e_dest2->m_len; in ip6_output_list()
747 if ((error = ip6_splithdr(m, &exthdrs)) != 0) { in ip6_output_list()
751 m = exthdrs.ip6e_ip6; in ip6_output_list()
765 if ((error = ip6_splithdr(m, &exthdrs)) != 0) { in ip6_output_list()
769 m = exthdrs.ip6e_ip6; in ip6_output_list()
774 if ((error = ip6_insert_jumboopt(&exthdrs, plen)) != 0) { in ip6_output_list()
802 if (exthdrs.ip6e_dest2 != NULL) { in ip6_output_list()
807 exthdrs.ip6e_dest2->m_next = m->m_next; in ip6_output_list()
808 m->m_next = exthdrs.ip6e_dest2; in ip6_output_list()
809 *mtod(exthdrs.ip6e_dest2, u_char *) = ip6->ip6_nxt; in ip6_output_list()
832 MAKE_CHAIN(exthdrs.ip6e_hbh, mprev, nexthdrp, IPPROTO_HOPOPTS); in ip6_output_list()
833 MAKE_CHAIN(exthdrs.ip6e_dest1, mprev, nexthdrp, IPPROTO_DSTOPTS); in ip6_output_list()
834 MAKE_CHAIN(exthdrs.ip6e_rthdr, mprev, nexthdrp, IPPROTO_ROUTING); in ip6_output_list()
837 exthdrs.merged = TRUE; in ip6_output_list()
920 exthdrs.ip6e_dest2 = NULL; in ip6_output_list()
922 if (exthdrs.ip6e_rthdr != NULL) { in ip6_output_list()
923 rh = mtod(exthdrs.ip6e_rthdr, struct ip6_rthdr *); in ip6_output_list()
956 if (exthdrs.ip6e_rthdr != NULL) { in ip6_output_list()
964 if (exthdrs.ip6e_rthdr != NULL) { in ip6_output_list()
1069 bzero(&exthdrs, sizeof(exthdrs)); in ip6_output_list()
1070 exthdrs.ip6e_ip6 = m; in ip6_output_list()
1127 exthdrs.ip6e_ip6 = m; in ip6_output_list()
1430 if (exthdrs.ip6e_hbh != NULL) { in ip6_output_list()
1431 struct ip6_hbh *hbh = mtod(exthdrs.ip6e_hbh, struct ip6_hbh *); in ip6_output_list()
1435 if ((hbh->ip6h_len + 1) << 3 > exthdrs.ip6e_hbh->m_len) { in ip6_output_list()
1484 args.fwa_exthdrs = &exthdrs; in ip6_output_list()
1531 &exthdrs, ifp, mtu, unfragpartlen, nxt0, in ip6_output_list()
1578 bzero(&exthdrs, sizeof(exthdrs)); in ip6_output_list()
1638 if (exthdrs.ip6e_hbh != NULL) { in ip6_output_list()
1639 if (exthdrs.merged) { in ip6_output_list()
1642 m_freem(exthdrs.ip6e_hbh); in ip6_output_list()
1644 if (exthdrs.ip6e_dest1 != NULL) { in ip6_output_list()
1645 if (exthdrs.merged) { in ip6_output_list()
1648 m_freem(exthdrs.ip6e_dest1); in ip6_output_list()
1650 if (exthdrs.ip6e_rthdr != NULL) { in ip6_output_list()
1651 if (exthdrs.merged) { in ip6_output_list()
1654 m_freem(exthdrs.ip6e_rthdr); in ip6_output_list()
1656 if (exthdrs.ip6e_dest2 != NULL) { in ip6_output_list()
1657 if (exthdrs.merged) { in ip6_output_list()
1660 m_freem(exthdrs.ip6e_dest2); in ip6_output_list()
1677 #undef exthdrs in ip6_output_list()
2134 ip6_insert_jumboopt(struct ip6_exthdrs *exthdrs, u_int32_t plen) in ip6_insert_jumboopt() argument
2148 if (exthdrs->ip6e_hbh == NULL) { in ip6_insert_jumboopt()
2156 exthdrs->ip6e_hbh = mopt; in ip6_insert_jumboopt()
2160 mopt = exthdrs->ip6e_hbh; in ip6_insert_jumboopt()
2199 mopt = exthdrs->ip6e_hbh = n; in ip6_insert_jumboopt()
2222 exthdrs->ip6e_ip6->m_pkthdr.len += JUMBOOPTLEN; in ip6_insert_jumboopt()
4149 ip6_splithdr(struct mbuf *m, struct ip6_exthdrs *exthdrs) in ip6_splithdr() argument
4171 exthdrs->ip6e_ip6 = m; in ip6_splithdr()