Home | History | Annotate | Download | only in netinet6

Lines Matching defs:exthdrs

223 	struct ip6_exthdrs exthdrs;
264 memset(&exthdrs, 0, sizeof(exthdrs));
267 MAKE_EXTHDR(opt->ip6po_hbh, &exthdrs.ip6e_hbh);
269 MAKE_EXTHDR(opt->ip6po_dest1, &exthdrs.ip6e_dest1);
271 MAKE_EXTHDR(opt->ip6po_rthdr, &exthdrs.ip6e_rthdr);
273 MAKE_EXTHDR(opt->ip6po_dest2, &exthdrs.ip6e_dest2);
281 if (exthdrs.ip6e_hbh)
282 optlen += exthdrs.ip6e_hbh->m_len;
283 if (exthdrs.ip6e_dest1)
284 optlen += exthdrs.ip6e_dest1->m_len;
285 if (exthdrs.ip6e_rthdr)
286 optlen += exthdrs.ip6e_rthdr->m_len;
289 if (exthdrs.ip6e_dest2)
290 optlen += exthdrs.ip6e_dest2->m_len;
322 if ((error = ip6_splithdr(m, &exthdrs)) != 0) {
327 m = exthdrs.ip6e_ip6;
341 if ((error = ip6_splithdr(m, &exthdrs)) != 0) {
346 m = exthdrs.ip6e_ip6;
351 if ((error = ip6_insert_jumboopt(&exthdrs, plen)) != 0) {
382 if (exthdrs.ip6e_dest2) {
385 exthdrs.ip6e_dest2->m_next = m->m_next;
386 m->m_next = exthdrs.ip6e_dest2;
387 *mtod(exthdrs.ip6e_dest2, u_char *) = ip6->ip6_nxt;
409 MAKE_CHAIN(exthdrs.ip6e_hbh, mprev, nexthdrp, IPPROTO_HOPOPTS);
410 MAKE_CHAIN(exthdrs.ip6e_dest1, mprev, nexthdrp,
412 MAKE_CHAIN(exthdrs.ip6e_rthdr, mprev, nexthdrp,
426 if (exthdrs.ip6e_rthdr) {
429 rh = mtod(exthdrs.ip6e_rthdr, struct ip6_rthdr *);
922 if (exthdrs.ip6e_rthdr) {
923 nextproto = *mtod(exthdrs.ip6e_rthdr, u_char *);
924 *mtod(exthdrs.ip6e_rthdr, u_char *) = IPPROTO_FRAGMENT;
925 } else if (exthdrs.ip6e_dest1) {
926 nextproto = *mtod(exthdrs.ip6e_dest1, u_char *);
927 *mtod(exthdrs.ip6e_dest1, u_char *) = IPPROTO_FRAGMENT;
928 } else if (exthdrs.ip6e_hbh) {
929 nextproto = *mtod(exthdrs.ip6e_hbh, u_char *);
930 *mtod(exthdrs.ip6e_hbh, u_char *) = IPPROTO_FRAGMENT;
1054 m_freem(exthdrs.ip6e_hbh);
1055 m_freem(exthdrs.ip6e_dest1);
1056 m_freem(exthdrs.ip6e_rthdr);
1057 m_freem(exthdrs.ip6e_dest2);
1102 ip6_insert_jumboopt(struct ip6_exthdrs *exthdrs, u_int32_t plen)
1116 if (exthdrs->ip6e_hbh == NULL) {
1123 exthdrs->ip6e_hbh = mopt;
1127 mopt = exthdrs->ip6e_hbh;
1134 * - exthdrs->ip6e_hbh is not referenced from places
1135 * other than exthdrs.
1136 * - exthdrs->ip6e_hbh is not an mbuf chain.
1166 mopt = exthdrs->ip6e_hbh = n;
1189 exthdrs->ip6e_ip6->m_pkthdr.len += JUMBOOPTLEN;
3280 ip6_splithdr(struct mbuf *m, struct ip6_exthdrs *exthdrs)
3301 exthdrs->ip6e_ip6 = m;