tp->bytes_acked = 0; 
void tcp_enter_loss(struct sock *sk, int how){	const struct inet_connection_sock *icsk = inet_csk(sk);	struct tcp_sock *tp = tcp_sk(sk);	struct sk_buff *skb;	int cnt = 0;	/* Reduce ssthresh if it has not yet been made inside this window. */	if (icsk->icsk_ca_state <= TCP_CA_Disorder || tp->snd_una == tp->high_seq ||	    (icsk->icsk_ca_state == TCP_CA_Loss && !icsk->icsk_retransmits)) {		tp->prior_ssthresh = tcp_current_ssthresh(sk);		tp->snd_ssthresh = icsk->icsk_ca_ops->ssthresh(sk);		tcp_ca_event(sk, CA_EVENT_LOSS);	}	tp->snd_cwnd	   = 1;	tp->snd_cwnd_cnt   = 0;	tp->snd_cwnd_stamp = tcp_time_stamp;	tcp_clear_retrans(tp);	/* Push undo marker, if it was plain RTO and nothing	 * was retransmitted. */	if (!how)		tp->undo_marker = tp->snd_una;	sk_stream_for_retrans_queue(skb, sk) {		cnt += tcp_skb_pcount(skb);		if (TCP_SKB_CB(skb)->sacked&TCPCB_RETRANS)			tp->undo_marker = 0;		TCP_SKB_CB(skb)->sacked &= (~TCPCB_TAGBITS)|TCPCB_SACKED_ACKED;		if (!(TCP_SKB_CB(skb)->sacked&TCPCB_SACKED_ACKED) || how) {			TCP_SKB_CB(skb)->sacked &= ~TCPCB_SACKED_ACKED;			TCP_SKB_CB(skb)->sacked |= TCPCB_LOST;			tp->lost_out += tcp_skb_pcount(skb);		} else {			tp->sacked_out += tcp_skb_pcount(skb);			tp->fackets_out = cnt;		}	}	tcp_sync_left_out(tp);	tp->reordering = min_t(unsigned int, tp->reordering,					     sysctl_tcp_reordering);	tcp_set_ca_state(sk, TCP_CA_Loss);	tp->high_seq = tp->snd_nxt;	TCP_ECN_queue_cwr(tp);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/9772efb970780aeed488c19d8b4afd46c3b484af/tcp_input.c/clean/net/ipv4/tcp_input.c