Lines Matching refs:ipf

3306 	ipf_t		*ipf;
3518 if ((msg_len + sizeof (*ipf) + ill->ill_frag_count) >=
3535 ipf = ipfp[0];
3536 if (ipf) {
3541 if (ipf->ipf_ident == ident &&
3542 IN6_ARE_ADDR_EQUAL(&ipf->ipf_v6src, v6src_ptr) &&
3543 IN6_ARE_ADDR_EQUAL(&ipf->ipf_v6dst, v6dst_ptr)) {
3550 if (ipf->ipf_num_dups > ip_max_frag_dups) {
3551 ill_frag_free_pkts(ill, ipfb, ipf, 1);
3559 ipfp = &ipf->ipf_hash_next;
3582 mp1 = allocb(sizeof (*ipf), BPRI_MED);
3603 ipf = (ipf_t *)mp1->b_rptr;
3604 ipf->ipf_mp = mp1;
3605 ipf->ipf_ptphn = ipfp;
3606 ipfp[0] = ipf;
3607 ipf->ipf_hash_next = NULL;
3608 ipf->ipf_ident = ident;
3609 ipf->ipf_v6src = *v6src_ptr;
3610 ipf->ipf_v6dst = *v6dst_ptr;
3612 ipf->ipf_timestamp = gethrestime_sec();
3613 /* Record ipf generation and account for frag header */
3614 ipf->ipf_gen = ill->ill_ipf_gen++;
3615 ipf->ipf_count = MBLKSIZE(mp1);
3616 ipf->ipf_protocol = nexthdr;
3617 ipf->ipf_nf_hdr_len = 0;
3618 ipf->ipf_prev_nexthdr_offset = 0;
3619 ipf->ipf_last_frag_seen = B_FALSE;
3620 ipf->ipf_ecn = ecn_info;
3621 ipf->ipf_num_dups = 0;
3623 ipf->ipf_checksum = 0;
3624 ipf->ipf_checksum_flags = 0;
3630 ipf->ipf_checksum = sum_val;
3631 ipf->ipf_checksum_flags = sum_flags;
3647 ipf->ipf_count += msg_len;
3648 ipf->ipf_tail_mp = tail_mp;
3653 ipf->ipf_end = end;
3654 ipf->ipf_nf_hdr_len = hdr_length;
3655 ipf->ipf_prev_nexthdr_offset = prev_nexthdr_offset;
3658 ipf->ipf_tail_mp = NULL;
3663 ipf->ipf_end = 0;
3666 ipf->ipf_checksum_flags = 0;
3675 (void) ip_reassemble(mp, ipf, offset, more_frags, ill,
3679 ipfb->ipfb_count += ipf->ipf_count;
3681 atomic_add_32(&ill->ill_frag_count, ipf->ipf_count);
3696 if (sum_flags != 0 && sum_flags == ipf->ipf_checksum_flags) {
3697 sum_val += ipf->ipf_checksum;
3700 ipf->ipf_checksum = sum_val;
3701 } else if (ipf->ipf_checksum_flags != 0) {
3703 ipf->ipf_checksum_flags = 0;
3713 if (ecn_info != IPH_ECN_NECT && ipf->ipf_ecn != IPH_ECN_NECT) {
3715 ipf->ipf_ecn = IPH_ECN_CE;
3717 ipf->ipf_ecn = IPH_ECN_NECT;
3720 if (offset && ipf->ipf_end == offset) {
3722 ipf->ipf_tail_mp->b_cont = mp;
3724 ipf->ipf_count += msg_len;
3731 ipf->ipf_end = end;
3732 ipf->ipf_tail_mp = tail_mp;
3743 if (ipf->ipf_prev_nexthdr_offset == 0) {
3744 ipf->ipf_nf_hdr_len = hdr_length;
3745 ipf->ipf_prev_nexthdr_offset =
3750 count = ipf->ipf_count;
3751 ret = ip_reassemble(mp, ipf, offset, more_frags, ill, msg_len);
3754 count = ipf->ipf_count - count;
3765 ill_frag_free_pkts(ill, ipfb, ipf, 1);
3783 ASSERT(ipf->ipf_nf_hdr_len != 0);
3784 hdr_length = ipf->ipf_nf_hdr_len;
3790 ecn_info = ipf->ipf_ecn;
3796 nexthdr = ipf->ipf_protocol;
3797 prev_nexthdr_offset = ipf->ipf_prev_nexthdr_offset;
3798 ipfp = ipf->ipf_ptphn;
3801 if ((sum_flags = ipf->ipf_checksum_flags) != 0)
3802 sum_val = ipf->ipf_checksum;
3806 mp1 = ipf->ipf_mp;
3807 count = ipf->ipf_count;
3808 ipf = ipf->ipf_hash_next;
3809 if (ipf)
3810 ipf->ipf_ptphn = ipfp;
3811 ipfp[0] = ipf;