Lines Matching refs:exthdrs
187 __func__, __LINE__, hdrsplit, &exthdrs);\
427 struct ip6_exthdrs exthdrs; in ip6_output() local
495 bzero(&exthdrs, sizeof(exthdrs)); in ip6_output()
500 MAKE_EXTHDR(opt->ip6po_hbh, &exthdrs.ip6e_hbh, optlen); in ip6_output()
529 MAKE_EXTHDR(opt->ip6po_dest1, &exthdrs.ip6e_dest1, in ip6_output()
533 MAKE_EXTHDR(opt->ip6po_rthdr, &exthdrs.ip6e_rthdr, optlen); in ip6_output()
543 MAKE_EXTHDR(opt->ip6po_dest2, &exthdrs.ip6e_dest2, optlen); in ip6_output()
552 if ((error = ip6_splithdr(m, &exthdrs)) != 0) { in ip6_output()
556 m = exthdrs.ip6e_ip6; in ip6_output()
568 if ((error = ip6_splithdr(m, &exthdrs)) != 0) { in ip6_output()
572 m = exthdrs.ip6e_ip6; in ip6_output()
576 if ((error = ip6_insert_jumboopt(&exthdrs, plen)) != 0) in ip6_output()
605 if (exthdrs.ip6e_dest2) { in ip6_output()
609 __func__, __LINE__, hdrsplit, &exthdrs); in ip6_output()
610 exthdrs.ip6e_dest2->m_next = m->m_next; in ip6_output()
611 m->m_next = exthdrs.ip6e_dest2; in ip6_output()
612 *mtod(exthdrs.ip6e_dest2, u_char *) = ip6->ip6_nxt; in ip6_output()
621 MAKE_CHAIN(exthdrs.ip6e_hbh, mprev, nexthdrp, IPPROTO_HOPOPTS); in ip6_output()
622 MAKE_CHAIN(exthdrs.ip6e_dest1, mprev, nexthdrp, in ip6_output()
624 MAKE_CHAIN(exthdrs.ip6e_rthdr, mprev, nexthdrp, in ip6_output()
987 if (exthdrs.ip6e_hbh) { in ip6_output()
988 struct ip6_hbh *hbh = mtod(exthdrs.ip6e_hbh, struct ip6_hbh *); in ip6_output()
993 if ((hbh->ip6h_len + 1) << 3 > exthdrs.ip6e_hbh->m_len) in ip6_output()
1230 if (exthdrs.ip6e_rthdr) { in ip6_output()
1231 nextproto = *mtod(exthdrs.ip6e_rthdr, u_char *); in ip6_output()
1232 *mtod(exthdrs.ip6e_rthdr, u_char *) = IPPROTO_FRAGMENT; in ip6_output()
1233 } else if (exthdrs.ip6e_dest1) { in ip6_output()
1234 nextproto = *mtod(exthdrs.ip6e_dest1, u_char *); in ip6_output()
1235 *mtod(exthdrs.ip6e_dest1, u_char *) = IPPROTO_FRAGMENT; in ip6_output()
1236 } else if (exthdrs.ip6e_hbh) { in ip6_output()
1237 nextproto = *mtod(exthdrs.ip6e_hbh, u_char *); in ip6_output()
1238 *mtod(exthdrs.ip6e_hbh, u_char *) = IPPROTO_FRAGMENT; in ip6_output()
1289 m_freem(exthdrs.ip6e_hbh); /* m_freem() checks if mbuf is NULL. */ in ip6_output()
1290 m_freem(exthdrs.ip6e_dest1); in ip6_output()
1291 m_freem(exthdrs.ip6e_rthdr); in ip6_output()
1292 m_freem(exthdrs.ip6e_dest2); in ip6_output()
1326 ip6_insert_jumboopt(struct ip6_exthdrs *exthdrs, u_int32_t plen) in ip6_insert_jumboopt() argument
1340 if (exthdrs->ip6e_hbh == NULL) { in ip6_insert_jumboopt()
1347 exthdrs->ip6e_hbh = mopt; in ip6_insert_jumboopt()
1351 mopt = exthdrs->ip6e_hbh; in ip6_insert_jumboopt()
1381 mopt = exthdrs->ip6e_hbh = n; in ip6_insert_jumboopt()
1404 exthdrs->ip6e_ip6->m_pkthdr.len += JUMBOOPTLEN; in ip6_insert_jumboopt()
3292 ip6_splithdr(struct mbuf *m, struct ip6_exthdrs *exthdrs) in ip6_splithdr() argument
3313 exthdrs->ip6e_ip6 = m; in ip6_splithdr()