Index: rack.c =================================================================== --- rack.c +++ rack.c @@ -4657,7 +4657,6 @@ rack = (struct tcp_rack *)tp->t_fb_ptr; INP_WLOCK_ASSERT(tp->t_inpcb); - nsegs = max(1, m->m_pkthdr.lro_nsegs); if ((thflags & TH_ACK) && (SEQ_LT(tp->snd_wl1, th->th_seq) || @@ -4687,6 +4686,10 @@ /* Make sure we output to start the timer */ rack->r_wanted_output++; } + if (tp->t_flags2 & TF2_DROP_AF_DATA) { + m_freem(m); + return (0); + } /* * Process segments with URG. */