Lines Matching refs:exthdrs

293 	struct ip6_exthdrs exthdrs;
374 bcopy(&dn_tag->dn_exthdrs, &exthdrs, sizeof(exthdrs));
425 bzero(&exthdrs, sizeof(exthdrs));
429 MAKE_EXTHDR(opt->ip6po_hbh, &exthdrs.ip6e_hbh);
442 MAKE_EXTHDR(opt->ip6po_dest1, &exthdrs.ip6e_dest1);
445 MAKE_EXTHDR(opt->ip6po_rthdr, &exthdrs.ip6e_rthdr);
447 MAKE_EXTHDR(opt->ip6po_dest2, &exthdrs.ip6e_dest2);
504 if (exthdrs.ip6e_hbh)
505 optlen += exthdrs.ip6e_hbh->m_len;
506 if (exthdrs.ip6e_dest1)
507 optlen += exthdrs.ip6e_dest1->m_len;
508 if (exthdrs.ip6e_rthdr)
509 optlen += exthdrs.ip6e_rthdr->m_len;
513 if (exthdrs.ip6e_dest2)
514 optlen += exthdrs.ip6e_dest2->m_len;
528 if ((error = ip6_splithdr(m, &exthdrs)) != 0) {
532 m = exthdrs.ip6e_ip6;
546 if ((error = ip6_splithdr(m, &exthdrs)) != 0) {
550 m = exthdrs.ip6e_ip6;
555 if ((error = ip6_insert_jumboopt(&exthdrs, plen)) != 0)
583 if (exthdrs.ip6e_dest2) {
586 exthdrs.ip6e_dest2->m_next = m->m_next;
587 m->m_next = exthdrs.ip6e_dest2;
588 *mtod(exthdrs.ip6e_dest2, u_char *) = ip6->ip6_nxt;
610 MAKE_CHAIN(exthdrs.ip6e_hbh, mprev,
612 MAKE_CHAIN(exthdrs.ip6e_dest1, mprev,
614 MAKE_CHAIN(exthdrs.ip6e_rthdr, mprev,
678 exthdrs.ip6e_dest2 = NULL;
684 if (exthdrs.ip6e_rthdr) {
685 rh = mtod(exthdrs.ip6e_rthdr, struct ip6_rthdr *);
714 if (exthdrs.ip6e_rthdr) {
727 if (exthdrs.ip6e_rthdr) {
729 (struct ip6_rthdr *)(mtod(exthdrs.ip6e_rthdr,
863 bzero(&exthdrs, sizeof(exthdrs));
864 exthdrs.ip6e_ip6 = m;
913 exthdrs.ip6e_ip6 = m;
1198 if (exthdrs.ip6e_hbh) {
1199 struct ip6_hbh *hbh = mtod(exthdrs.ip6e_hbh, struct ip6_hbh *);
1203 if ((hbh->ip6h_len + 1) << 3 > exthdrs.ip6e_hbh->m_len)
1246 args.fwa_exthdrs = &exthdrs;
1400 if (exthdrs.ip6e_rthdr) {
1401 nextproto = *mtod(exthdrs.ip6e_rthdr, u_char *);
1402 *mtod(exthdrs.ip6e_rthdr, u_char *) = IPPROTO_FRAGMENT;
1403 } else if (exthdrs.ip6e_dest1) {
1404 nextproto = *mtod(exthdrs.ip6e_dest1, u_char *);
1405 *mtod(exthdrs.ip6e_dest1, u_char *) = IPPROTO_FRAGMENT;
1406 } else if (exthdrs.ip6e_hbh) {
1407 nextproto = *mtod(exthdrs.ip6e_hbh, u_char *);
1408 *mtod(exthdrs.ip6e_hbh, u_char *) = IPPROTO_FRAGMENT;
1542 m_freem(exthdrs.ip6e_hbh); /* m_freem will check if mbuf is 0 */
1543 m_freem(exthdrs.ip6e_dest1);
1544 m_freem(exthdrs.ip6e_rthdr);
1545 m_freem(exthdrs.ip6e_dest2);
1608 ip6_insert_jumboopt(exthdrs, plen)
1609 struct ip6_exthdrs *exthdrs;
1624 if (exthdrs->ip6e_hbh == 0) {
1631 exthdrs->ip6e_hbh = mopt;
1635 mopt = exthdrs->ip6e_hbh;
1639 * - exthdrs->ip6e_hbh is not referenced from places
1640 * other than exthdrs.
1641 * - exthdrs->ip6e_hbh is not an mbuf chain.
1672 mopt = exthdrs->ip6e_hbh = n;
1695 exthdrs->ip6e_ip6->m_pkthdr.len += JUMBOOPTLEN;
3578 ip6_splithdr(m, exthdrs)
3580 struct ip6_exthdrs *exthdrs;
3602 exthdrs->ip6e_ip6 = m;