~kris/9p

9hist

29310bf086b2b8a12d33fdaeee6680babf369221 — David du Colombier 27 years ago f1ef638
Plan 9 from Bell Labs 1999-06-07
1 files changed, 6 insertions(+), 3 deletions(-)

M ip/tcp.c
M ip/tcp.c => ip/tcp.c +6 -3
@@ 175,6 175,7 @@ struct Tcpctl
	int	max_snd;		/* Max send */
	ulong	last_ack;		/* Last acknowledege received */
	uchar	backoff;		/* Exponential backoff counter */
	int	backedoff;		/* ms we've backed off for rexmits */
	uchar	flags;			/* State flags */
	ulong	sndcnt;			/* Amount of data in send queue */
	Reseq	*reseq;			/* Resequencing queue */


@@ 1112,6 1113,7 @@ update(Conv *s, Tcp *seg)
		tcphalt(tpriv, &tcb->rtt_timer);
		if((tcb->flags&RETRAN) == 0) {
			tcb->backoff = 0;
			tcb->backedoff = 0;
			rtt = tcb->rtt_timer.start - tcb->rtt_timer.count;
			if(rtt == 0)
				rtt = 1;	/* otherwise all close systems will rexmit in 0 time */


@@ 1150,6 1152,7 @@ done:

	tcb->flags &= ~RETRAN;
	tcb->backoff = 0;
	tcb->backedoff = 0;
}

void


@@ 1902,7 1905,7 @@ tcptimeout(void *arg)
{
	Conv *s;
	Tcpctl *tcb;
	int back, maxback;
	int maxback;
	Tcppriv *tpriv;

	s = (Conv*)arg;


@@ 1917,8 1920,8 @@ tcptimeout(void *arg)
			maxback = MAXBACKMS/2;
		else
			maxback = MAXBACKMS;
		back = backoff(tcb->backoff) * (tcb->mdev + (tcb->srtt>>LOGAGAIN));
		if(back >= maxback) {
		tcb->backedoff += tcb->timer.start * MSPTICK;
		if(tcb->backedoff >= maxback) {
			localclose(s, Etimedout);
			break;
		}