FreeBSD/sys/netinet/ip_reass.c
/*
 * If a timer expires on a reassembly queue, discard it.
 */
If a timer expires on a reassembly queue, discard it.
If a timer expires on a reassembly queue discard it .
void
ipreass_slowtimo(void)
{
	struct ipq *fp, *tmp;
	for (int i = 0; i < IPREASS_NHASH; i++) {
		IPQ_LOCK(i);
		TAILQ_FOREACH_SAFE(fp, &V_ipq[i].head, ipq_list, tmp)
		if (--fp->ipq_ttl == 0)
				ipq_timeout(&V_ipq[i].head, fp);
		IPQ_UNLOCK(i);
	}
}
void ipreass_slowtimo ( void ) { struct ipq * fp , * tmp ; for ( int i = 0 ; i < IPREASS_NHASH ; i ++ ) { IPQ_LOCK ( i ) ; TAILQ_FOREACH_SAFE ( fp , & V_ipq [ i ] . head , ipq_list , tmp ) if ( -- fp -> ipq_ttl == 0 ) ipq_timeout ( & V_ipq [ i ] . head , fp ) ; IPQ_UNLOCK ( i ) ; } }
If a timer expires on a reassembly queue, discard it.
If a timer expires on a reassembly queue discard it .