Lines Matching refs:q6

282 	struct ip6q *q6 = NULL;  in frag6_input()  local
457 for (q6 = ip6q.ip6q_next; q6 != &ip6q; q6 = q6->ip6q_next) { in frag6_input()
458 if (ip6f->ip6f_ident == q6->ip6q_ident && in frag6_input()
459 …in6_are_addr_equal_scoped(&ip6->ip6_src, &q6->ip6q_src, ip6_input_getsrcifscope(m), q6->ip6q_src_i… in frag6_input()
460 …in6_are_addr_equal_scoped(&ip6->ip6_dst, &q6->ip6q_dst, ip6_input_getdstifscope(m), q6->ip6q_dst_i… in frag6_input()
465 if (q6 == &ip6q) { in frag6_input()
475 q6 = ip6q_alloc(); in frag6_input()
476 if (q6 == NULL) { in frag6_input()
480 frag6_insque(q6, &ip6q); in frag6_input()
484 q6->ip6q_down = q6->ip6q_up = (struct ip6asfrag *)q6; in frag6_input()
486 q6->ip6q_nxtp = (u_char *)nxtp; in frag6_input()
488 q6->ip6q_ident = ip6f->ip6f_ident; in frag6_input()
489 q6->ip6q_ttl = IPV6_FRAGTTL; in frag6_input()
490 q6->ip6q_src = ip6->ip6_src; in frag6_input()
491 q6->ip6q_dst = ip6->ip6_dst; in frag6_input()
492q6->ip6q_dst_ifscope = IN6_IS_SCOPE_EMBED(&q6->ip6q_dst) ? ip6_input_getdstifscope(m) : IFSCOPE_NO… in frag6_input()
493q6->ip6q_src_ifscope = IN6_IS_SCOPE_EMBED(&q6->ip6q_src) ? ip6_input_getsrcifscope(m) : IFSCOPE_NO… in frag6_input()
494 q6->ip6q_ecn = in frag6_input()
496 q6->ip6q_unfrglen = -1; /* The 1st fragment has not arrived. */ in frag6_input()
498 q6->ip6q_nfrag = 0; in frag6_input()
499 q6->ip6q_flags = 0; in frag6_input()
506 q6->ip6q_csum = csum; in frag6_input()
507 q6->ip6q_csum_flags = csum_flags; in frag6_input()
511 if (q6->ip6q_flags & IP6QF_DIRTY) { in frag6_input()
515 local_ip6q_unfrglen = q6->ip6q_unfrglen; in frag6_input()
516 local_ip6q_nxt = q6->ip6q_nxt; in frag6_input()
580 for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6; in frag6_input()
601 ip6err->ip6_src = q6->ip6q_src; in frag6_input()
602 ip6err->ip6_dst = q6->ip6q_dst; in frag6_input()
603 ip6_output_setdstifscope(m, q6->ip6q_dst_ifscope, NULL); in frag6_input()
604 ip6_output_setsrcifscope(m, q6->ip6q_src_ifscope, NULL); in frag6_input()
626 af6 = (struct ip6asfrag *)q6; in frag6_input()
636 ecn0 = q6->ip6q_ecn; in frag6_input()
643 q6->ip6q_ecn = IPTOS_ECN_CE; in frag6_input()
654 for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6; in frag6_input()
670 if (af6->ip6af_up != (struct ip6asfrag *)q6) { in frag6_input()
692 if (af6 != (struct ip6asfrag *)q6) { in frag6_input()
710 if (csum_flags != 0 && csum_flags == q6->ip6q_csum_flags) { in frag6_input()
711 q6->ip6q_csum += csum; in frag6_input()
712 } else if (q6->ip6q_csum_flags != 0) { in frag6_input()
713 q6->ip6q_csum_flags = 0; in frag6_input()
725 q6->ip6q_nfrag++; in frag6_input()
738 q6->ip6q_flags |= IP6QF_DIRTY; in frag6_input()
740 frag6_purgef(q6, &dfq6, NULL); in frag6_input()
777 q6->ip6q_unfrglen = local_ip6q_unfrglen; in frag6_input()
778 q6->ip6q_nxt = local_ip6q_nxt; in frag6_input()
781 for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6; in frag6_input()
801 ip6af = q6->ip6q_down; in frag6_input()
805 while (af6 != (struct ip6asfrag *)q6) { in frag6_input()
822 if (q6->ip6q_csum_flags != 0) { in frag6_input()
823 csum = q6->ip6q_csum; in frag6_input()
829 m->m_pkthdr.csum_flags = q6->ip6q_csum_flags; in frag6_input()
842 ip6->ip6_src = q6->ip6q_src; in frag6_input()
843 ip6->ip6_dst = q6->ip6q_dst; in frag6_input()
844 ip6_output_setdstifscope(m, q6->ip6q_dst_ifscope, NULL); in frag6_input()
845 ip6_output_setsrcifscope(m, q6->ip6q_src_ifscope, NULL); in frag6_input()
846 if (q6->ip6q_ecn == IPTOS_ECN_CE) { in frag6_input()
850 nxt = q6->ip6q_nxt; in frag6_input()
852 *q6->ip6q_nxtp = (u_char)(nxt & 0xff); in frag6_input()
865 frag6_remque(q6); in frag6_input()
867 frag6_nfrags -= q6->ip6q_nfrag; in frag6_input()
868 ip6q_free(q6); in frag6_input()
883 frag6_remque(q6); in frag6_input()
885 frag6_nfrags -= q6->ip6q_nfrag; in frag6_input()
886 ip6q_free(q6); in frag6_input()
958 frag6_purgef(struct ip6q *q6, struct fq6_head *dfq6, struct fq6_head *diq6) in frag6_purgef() argument
965 for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6; in frag6_purgef()
985 ip6->ip6_src = q6->ip6q_src; in frag6_purgef()
986 ip6->ip6_dst = q6->ip6q_dst; in frag6_purgef()
987 ip6_output_setdstifscope(m, q6->ip6q_dst_ifscope, NULL); in frag6_purgef()
988 ip6_output_setsrcifscope(m, q6->ip6q_src_ifscope, NULL); in frag6_purgef()
1008 frag6_freef(struct ip6q *q6, struct fq6_head *dfq6, struct fq6_head *diq6) in frag6_freef() argument
1010 frag6_purgef(q6, dfq6, diq6); in frag6_freef()
1011 frag6_remque(q6); in frag6_freef()
1013 frag6_nfrags -= q6->ip6q_nfrag; in frag6_freef()
1014 ip6q_free(q6); in frag6_freef()
1075 struct ip6q *q6; in frag6_timeout() local
1088 q6 = ip6q.ip6q_next; in frag6_timeout()
1089 if (q6) { in frag6_timeout()
1090 while (q6 != &ip6q) { in frag6_timeout()
1091 --q6->ip6q_ttl; in frag6_timeout()
1092 q6 = q6->ip6q_next; in frag6_timeout()
1093 if (q6->ip6q_prev->ip6q_ttl == 0) { in frag6_timeout()
1100 diq6_tmp = (q6->ip6q_prev->ip6q_flags & IP6QF_DIRTY) ? in frag6_timeout()
1102 frag6_freef(q6->ip6q_prev, &dfq6, diq6_tmp); in frag6_timeout()
1192 struct ip6q *q6; in ip6q_alloc() local
1203 q6 = kalloc_type(struct ip6q, Z_NOWAIT | Z_ZERO); in ip6q_alloc()
1204 if (q6 != NULL) { in ip6q_alloc()
1207 return q6; in ip6q_alloc()
1211 ip6q_free(struct ip6q *q6) in ip6q_free() argument
1213 kfree_type(struct ip6q, q6); in ip6q_free()