# 2.11BSD#431 - /usr/src/sys/netinet/tcp_timer.h

##### Variables

    tcptimers         X

##### Macros

    TCPTV_KEEPCNT     X
    TCPTV_KEEPINTVL   X
    TCPTV_KEEP_IDLE   X
    TCPTV_KEEP_INIT   X
    TCPTV_MIN         X
    TCPTV_MSL         X
    TCPTV_PERSMAX     X
    TCPTV_PERSMIN     X
    TCPTV_REXMTMAX    X
    TCPTV_SRTTBASE    X
    TCPTV_SRTTDFLT    X
    TCPT_2MSL         X
    TCPT_KEEP         X
    TCPT_NTIMERS      X
    TCPT_PERSIST      X
    TCPT_RANGESET     X
    TCPT_REXMT        X
    TCP_LINGERTIME    X
    TCP_MAXRXTSHIFT   X
    tcp_keepidle      X
    tcp_keepintvl     X

       1: /*
       2:  * Copyright (c) 1982, 1986 Regents of the University of California.
       3:  * All rights reserved.
       4:  *
       5:  * Redistribution and use in source and binary forms are permitted
       6:  * provided that this notice is preserved and that due credit is given
       7:  * to the University of California at Berkeley. The name of the University
       8:  * may not be used to endorse or promote products derived from this
       9:  * software without specific prior written permission. This software
      10:  * is provided ``as is'' without express or implied warranty.
      11:  *
      12:  *	@(#)tcp_timer.h	7.5.1 (2.11BSD) 1995/10/10
      13:  */
      14:
      15: /*
      16:  * Definitions of the TCP timers.  These timers are counted
      17:  * down PR_SLOWHZ times a second.
      18:  */
      19: #define TCPT_NTIMERS    4
      20:
      21: #define TCPT_REXMT  0       /* retransmit */
      22: #define TCPT_PERSIST    1       /* retransmit persistance */
      23: #define TCPT_KEEP   2       /* keep alive */
      24: #define TCPT_2MSL   3       /* 2*msl quiet time timer */
      25:
      26: /*
      27:  * The TCPT_REXMT timer is used to force retransmissions.
      28:  * The TCP has the TCPT_REXMT timer set whenever segments
      29:  * have been sent for which ACKs are expected but not yet
      30:  * received.  If an ACK is received which advances tp->snd_una,
      31:  * then the retransmit timer is cleared (if there are no more
      32:  * outstanding segments) or reset to the base value (if there
      33:  * are more ACKs expected).  Whenever the retransmit timer goes off,
      34:  * we retransmit one unacknowledged segment, and do a backoff
      35:  * on the retransmit timer.
      36:  *
      37:  * The TCPT_PERSIST timer is used to keep window size information
      38:  * flowing even if the window goes shut.  If all previous transmissions
      39:  * have been acknowledged (so that there are no retransmissions in progress),
      40:  * and the window is too small to bother sending anything, then we start
      41:  * the TCPT_PERSIST timer.  When it expires, if the window is nonzero,
      42:  * we go to transmit state.  Otherwise, at intervals send a single byte
      43:  * into the peer's window to force him to update our window information.
      44:  * We do this at most as often as TCPT_PERSMIN time intervals,
      45:  * but no more frequently than the current estimate of round-trip
      46:  * packet time.  The TCPT_PERSIST timer is cleared whenever we receive
      47:  * a window update from the peer.
      48:  *
      49:  * The TCPT_KEEP timer is used to keep connections alive.  If an
      50:  * connection is idle (no segments received) for TCPTV_KEEP_INIT amount of time,
      51:  * but not yet established, then we drop the connection.  Once the connection
      52:  * is established, if the connection is idle for TCPTV_KEEP_IDLE time
      53:  * (and keepalives have been enabled on the socket), we begin to probe
      54:  * the connection.  We force the peer to send us a segment by sending:
      55:  *	<SEQ=SND.UNA-1><ACK=RCV.NXT><CTL=ACK>
      56:  * This segment is (deliberately) outside the window, and should elicit
      57:  * an ack segment in response from the peer.  If, despite the TCPT_KEEP
      58:  * initiated segments we cannot elicit a response from a peer in TCPT_MAXIDLE
      59:  * amount of time probing, then we drop the connection.
      60:  */
      61:
      62: /*
      63:  * Time constants.
      64:  */
      65: #define TCPTV_MSL   ( 30*PR_SLOWHZ)     /* max seg lifetime (hah!) */
      66: #define TCPTV_SRTTBASE  0           /* base roundtrip time;
      67: 						   if 0, no idea yet */
      68: #define TCPTV_SRTTDFLT  (  3*PR_SLOWHZ)     /* assumed RTT if no info */
      69:
      70: #define TCPTV_PERSMIN   (  5*PR_SLOWHZ)     /* retransmit persistance */
      71: #define TCPTV_PERSMAX   ( 60*PR_SLOWHZ)     /* maximum persist interval */
      72:
      73: #define TCPTV_KEEP_INIT ( 75*PR_SLOWHZ)     /* initial connect keep alive */
      74: #define TCPTV_KEEP_IDLE (120*60*PR_SLOWHZ)  /* dflt time before probing */
      75: #define TCPTV_KEEPINTVL ( 75*PR_SLOWHZ)     /* default probe interval */
      76: #define TCPTV_KEEPCNT   8           /* max probes before drop */
      77:
      78: #define TCPTV_MIN   (  1*PR_SLOWHZ)     /* minimum allowable value */
      79: #define TCPTV_REXMTMAX  ( 64*PR_SLOWHZ)     /* max allowable REXMT value */
      80:
      81: #define TCP_LINGERTIME  120         /* linger at most 2 minutes */
      82:
      83: #define TCP_MAXRXTSHIFT 12          /* maximum retransmits */
      84:
      85: #ifdef  TCPTIMERS
      86: char *tcptimers[] =
      87:     { "REXMT", "PERSIST", "KEEP", "2MSL" };
      88: #endif
      89:
      90: /*
      91:  * Force a time value to be in a certain range.
      92:  */
      93: #define TCPT_RANGESET(tv, value, tvmin, tvmax) { \
      94:     (tv) = (value); \
      95:     if ((tv) < (tvmin)) \
      96:         (tv) = (tvmin); \
      97:     else if ((tv) > (tvmax)) \
      98:         (tv) = (tvmax); \
      99: }
     100:
     101: #ifdef SUPERVISOR
     102: #define tcp_keepidle tcp_kdle
     103: #define tcp_keepintvl tcp_kntv
     104: extern int tcp_keepidle;        /* time before keepalive probes begin */
     105: extern int tcp_keepintvl;       /* time between keepalive probes */
     106: extern int tcp_maxidle;         /* time to drop after starting probes */
     107: extern int tcp_backoff[];
     108: #endif

#### Defined variables

tcptimers defined in line 86; used 5 times

- in /usr/src/sys/netinet/tcp_debug.c line 123
- in /usr/src/usr.sbin/trpt/trpt.c line 291, 312
- in /usr/src/usr.sbin/trsp/trsp.c line 301, 334

#### Defined macros

TCPTV_KEEPCNT defined in line 76; used 1 times

- in /usr/src/sys/netinet/tcp_timer.c line 77

TCPTV_KEEPINTVL defined in line 75; used 1 times

- in /usr/src/sys/netinet/tcp_timer.c line 41

TCPTV_KEEP_IDLE defined in line 74; used 1 times

- in /usr/src/sys/netinet/tcp_timer.c line 40

TCPTV_KEEP_INIT defined in line 73; used 2 times

- in /usr/src/sys/netinet/tcp_input.c line 425
- in /usr/src/sys/netinet/tcp_usrreq.c line 172

TCPTV_MIN defined in line 78; used 4 times

- in /usr/src/sys/netinet/tcp_input.c line 479, 838
- in /usr/src/sys/netinet/tcp_subr.c line 189
- in /usr/src/sys/netinet/tcp_timer.c line 170

TCPTV_MSL defined in line 65; used 4 times

- in /usr/src/sys/netinet/tcp_input.c line 916, 940, 1092, 1100

TCPTV_PERSMAX defined in line 71; used 1 times

- in /usr/src/sys/netinet/tcp_output.c line 435

TCPTV_PERSMIN defined in line 70; used 1 times

- in /usr/src/sys/netinet/tcp_output.c line 435

TCPTV_REXMTMAX defined in line 79; used 4 times

- in /usr/src/sys/netinet/tcp_input.c line 479, 838
- in /usr/src/sys/netinet/tcp_subr.c line 189
- in /usr/src/sys/netinet/tcp_timer.c line 170

TCPTV_SRTTBASE defined in line 66; used 2 times

- in /usr/src/sys/netinet/tcp_subr.c line 185-188(2)

TCPTV_SRTTDFLT defined in line 68; used 2 times

- in /usr/src/sys/netinet/tcp_subr.c line 186-188(2)

TCPT_2MSL defined in line 24; used 6 times

- in /usr/src/sys/netinet/tcp_input.c line 900, 916, 940, 1092, 1100
- in /usr/src/sys/netinet/tcp_timer.c line 150

TCPT_KEEP defined in line 23; used 5 times

- in /usr/src/sys/netinet/tcp_input.c line 336, 425
- in /usr/src/sys/netinet/tcp_timer.c line 274-276(2)
- in /usr/src/sys/netinet/tcp_usrreq.c line 172

TCPT_NTIMERS defined in line 19; used 5 times

- in /usr/src/new/crash/dispnet.c line 863
- in /usr/src/sys/netinet/tcp_timer.c line 91, 122
- in /usr/src/usr.sbin/trpt/trpt.c line 309
- in /usr/src/usr.sbin/trsp/trsp.c line 331

TCPT_PERSIST defined in line 22; used 7 times

- in /usr/src/sys/netinet/tcp_input.c line 850
- in /usr/src/sys/netinet/tcp_output.c line 83, 198, 335, 372-373(2), 433

TCPT_RANGESET defined in line 93; used 5 times

- in /usr/src/sys/netinet/tcp_input.c line 477, 836
- in /usr/src/sys/netinet/tcp_output.c line 433
- in /usr/src/sys/netinet/tcp_subr.c line 187
- in /usr/src/sys/netinet/tcp_timer.c line 170

TCPT_REXMT defined in line 21; used 13 times

- in /usr/src/sys/netinet/tcp_input.c line 460, 747, 760, 848-851(2)
- in /usr/src/sys/netinet/tcp_output.c line 104, 197, 369-371(2), 428
- in /usr/src/sys/netinet/tcp_timer.c line 171
- in /usr/src/usr.sbin/trpt/trpt.c line 313
- in /usr/src/usr.sbin/trsp/trsp.c line 335

TCP_LINGERTIME defined in line 81; used 1 times

- in /usr/src/sys/netinet/tcp_usrreq.c line 110

TCP_MAXRXTSHIFT defined in line 83; used 5 times

- in /usr/src/sys/netinet/tcp_output.c line 436
- in /usr/src/sys/netinet/tcp_timer.c line 126, 161-162(2), 180

tcp_keepidle defined in line 102; used 4 times

- in line 104
- in /usr/src/sys/netinet/tcp_input.c line 336
- in /usr/src/sys/netinet/tcp_timer.c line 248, 276

tcp_keepintvl defined in line 103; used 4 times

- in line 105
- in /usr/src/sys/netinet/tcp_timer.c line 77, 150, 274

#### Usage of this include

tcp_timer.h used 12 times

- in /usr/src/new/crash/dispnet.c line 36
- in /usr/src/new/crash/inet.c line 30
- in /usr/src/sys/netinet/tcp_debug.c line 42
- in /usr/src/sys/netinet/tcp_input.c line 35
- in /usr/src/sys/netinet/tcp_output.c line 35
- in /usr/src/sys/netinet/tcp_subr.c line 36
- in /usr/src/sys/netinet/tcp_timer.c line 35
- in /usr/src/sys/netinet/tcp_usrreq.c line 36
- in /usr/src/ucb/PORT/systat/netstat.c line 33
- in /usr/src/ucb/netstat/inet.c line 41
- in /usr/src/usr.sbin/trpt/trpt.c line 38
- in /usr/src/usr.sbin/trsp/trsp.c line 30

Last modified: 1995-10-12 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 1723 |