1: /*
   2:  * Copyright (c) 1982, 1986 Regents of the University of California.
   3:  * All rights reserved.  The Berkeley software License Agreement
   4:  * specifies the terms and conditions for redistribution.
   5:  *
   6:  *	@(#)tcp_var.h	7.1 (Berkeley) 6/5/86
   7:  */
   8: 
   9: /*
  10:  * Kernel variables for tcp.
  11:  */
  12: 
  13: /*
  14:  * Tcp control block, one per tcp; fields:
  15:  */
  16: struct tcpcb {
  17:     struct  tcpiphdr *seg_next; /* sequencing queue */
  18:     struct  tcpiphdr *seg_prev;
  19:     short   t_state;        /* state of this connection */
  20:     short   t_timer[TCPT_NTIMERS];  /* tcp timers */
  21:     short   t_rxtshift;     /* log(2) of rexmt exp. backoff */
  22:     struct  mbuf *t_tcpopt;     /* tcp options */
  23:     u_short t_maxseg;       /* maximum segment size */
  24:     char    t_force;        /* 1 if forcing out a byte */
  25:     u_char  t_flags;
  26: #define TF_ACKNOW   0x01        /* ack peer immediately */
  27: #define TF_DELACK   0x02        /* ack, but try to delay it */
  28: #define TF_NODELAY  0x04        /* don't delay packets to coalesce */
  29: #define TF_NOOPT    0x08        /* don't use tcp options */
  30: #define TF_SENTFIN  0x10        /* have sent FIN */
  31:     struct  tcpiphdr *t_template;   /* skeletal packet for transmit */
  32:     struct  inpcb *t_inpcb;     /* back pointer to internet pcb */
  33: /*
  34:  * The following fields are used as in the protocol specification.
  35:  * See RFC783, Dec. 1981, page 21.
  36:  */
  37: /* send sequence variables */
  38:     tcp_seq snd_una;        /* send unacknowledged */
  39:     tcp_seq snd_nxt;        /* send next */
  40:     tcp_seq snd_up;         /* send urgent pointer */
  41:     tcp_seq snd_wl1;        /* window update seg seq number */
  42:     tcp_seq snd_wl2;        /* window update seg ack number */
  43:     tcp_seq iss;            /* initial send sequence number */
  44:     u_short snd_wnd;        /* send window */
  45: /* receive sequence variables */
  46:     u_short rcv_wnd;        /* receive window */
  47:     tcp_seq rcv_nxt;        /* receive next */
  48:     tcp_seq rcv_up;         /* receive urgent pointer */
  49:     tcp_seq irs;            /* initial receive sequence number */
  50: /*
  51:  * Additional variables for this implementation.
  52:  */
  53: /* receive variables */
  54:     tcp_seq rcv_adv;        /* advertised window */
  55: /* retransmit variables */
  56:     tcp_seq snd_max;        /* highest sequence number sent
  57: 					 * used to recognize retransmits
  58: 					 */
  59: /* congestion control (for source quench) */
  60:     u_short snd_cwnd;       /* congestion-controlled window */
  61: /* transmit timing stuff */
  62:     short   t_idle;         /* inactivity time */
  63:     short   t_rtt;          /* round trip time */
  64:     u_short max_rcvd;       /* most peer has sent into window */
  65:     tcp_seq t_rtseq;        /* sequence number being timed */
  66:     float   t_srtt;         /* smoothed round-trip time */
  67:     u_short max_sndwnd;     /* largest window peer has offered */
  68: /* out-of-band data */
  69:     char    t_oobflags;     /* have some */
  70:     char    t_iobc;         /* input character */
  71: #define TCPOOB_HAVEDATA 0x01
  72: #define TCPOOB_HADDATA  0x02
  73: };
  74: 
  75: #define intotcpcb(ip)   ((struct tcpcb *)(ip)->inp_ppcb)
  76: #define sototcpcb(so)   (intotcpcb(sotoinpcb(so)))
  77: 
  78: struct  tcpstat {
  79:     int tcps_badsum;
  80:     int tcps_badoff;
  81:     int tcps_hdrops;
  82:     int tcps_badsegs;
  83:     int tcps_unack;
  84: };
  85: 
  86: #ifdef KERNEL
  87: struct  inpcb tcb;      /* head of queue of active tcpcb's */
  88: struct  tcpstat tcpstat;    /* tcp statistics */
  89: struct  tcpiphdr *tcp_template();
  90: struct  tcpcb *tcp_close(), *tcp_drop();
  91: struct  tcpcb *tcp_timers(), *tcp_disconnect(), *tcp_usrclosed();
  92: #endif

Defined variables

tcpstat defined in line 88; used 4 times

Defined struct's

tcpcb defined in line 16; used 74 times
tcpstat defined in line 78; used 2 times
  • in line 88(2)

Defined macros

TF_NOOPT defined in line 29; used 1 times
TF_SENTFIN defined in line 30; used 3 times

Usage of this include

Last modified: 1986-06-05
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1045
Valid CSS Valid XHTML 1.0 Strict