more lint
[unix-history] / usr / src / sys / netinet / tcp_var.h
index c97a58c..a1919b6 100644 (file)
@@ -1,23 +1,41 @@
-/*     tcp_var.h       4.1     81/11/08        */
+/*     tcp_var.h       4.4     81/11/16        */
 
 /*
  * Kernel variables for tcp.
  */
 
 
 /*
  * Kernel variables for tcp.
  */
 
+/*
+ * Tcp+ip header, after ip options removed.
+ */
+struct tcpiphdr {
+       struct  ipovly ti_i;            /* overlaid ip structure */
+       struct  tcphdr ti_t;            /* tcp header */
+};
+#define        ti_next         ti_i.ih_next
+#define        ti_prev         ti_i.ih_prev
+#define        ti_x1           ti_i.ih_x1
+#define        ti_pr           ti_i.ih_pr
+#define        ti_len          ti_i.ih_len
+#define        ti_src          ti_i.ih_src
+#define        ti_dst          ti_i.ih_dst
+#define        ti_sport        ti_t.th_sport
+#define        ti_dport        ti_t.th_dport
+#define        ti_seq          ti_t.th_seq
+#define        ti_ackno        ti_t.th_ackno
+#define        ti_x2           ti_t.th_x2
+#define        ti_off          ti_t.th_off
+#define        ti_flags        ti_t.th_flags
+#define        ti_win          ti_t.th_win
+#define        ti_sum          ti_t.th_sum
+#define        ti_urp          ti_t.th_urp
+
 /*
  * Tcp control block.
  */
 /*
  * Tcp control block.
  */
-struct tcb {
-       struct tcb_hd {
-               struct  th *seg_next,*seg_prev;         /* seq queue */
-               struct  tcb *tcb_next,*tcb_prev;        /* other tcb's */
-       } tcb_hd;
-       struct  th *t_template;         /* skeletal packet for transmit */
-       struct  socket *t_socket;       /* back pointer to socket */
-       struct  mbuf *seg_unack;        /* unacked message queue */
-       struct  host *t_host;
-       short   seqcnt;
-       short   xxx;
+struct tcpcb {
+       struct  tcpiphdr *seg_next,*seg_prev;   /* seq queue */
+       struct  tcpiphdr *t_template;   /* skeletal packet for transmit */
+       struct  inpcb *t_inpcb;
        seq_t   iss;                    /* initial send seq # */
        seq_t   irs;                    /* initial recv seq # */
        seq_t   rcv_urp;                /* rcv urgent pointer */
        seq_t   iss;                    /* initial send seq # */
        seq_t   irs;                    /* initial recv seq # */
        seq_t   rcv_urp;                /* rcv urgent pointer */
@@ -37,16 +55,16 @@ struct tcb {
        seq_t   t_rtl_val;              /* val saved in rexmt too long timer */
        seq_t   t_xmt_val;              /* seq # sent when xmt timer started */
        seq_t   rcv_adv;                /* advertised window */
        seq_t   t_rtl_val;              /* val saved in rexmt too long timer */
        seq_t   t_xmt_val;              /* seq # sent when xmt timer started */
        seq_t   rcv_adv;                /* advertised window */
+       struct  mbuf *seg_unack;        /* unacked message queue */
+       short   seqcnt;
        u_short tc_flags;               /* flags and state; see below */
        u_short t_options;
 #define        TO_EOL          0x01            /* eol mode */
 #define        TO_URG          0x02            /* urgent mode */
        u_short tc_flags;               /* flags and state; see below */
        u_short t_options;
 #define        TO_EOL          0x01            /* eol mode */
 #define        TO_URG          0x02            /* urgent mode */
-       u_short t_lport;                /* local port */
-       u_short t_fport;                /* foreign port */
        u_char  t_state;                /* state of this connection */
        u_char  t_xmtime;               /* current rexmt time */
 /* timers... must be in order */
        u_char  t_state;                /* state of this connection */
        u_char  t_xmtime;               /* current rexmt time */
 /* timers... must be in order */
-       short   t_init;                 /* initialization too long */
+       short   t_init;                 /* init */
        short   t_rexmt;                /* retransmission */
        short   t_rexmttl;              /* retransmit too long */
        short   t_persist;              /* retransmit persistance */
        short   t_rexmt;                /* retransmission */
        short   t_rexmttl;              /* retransmit too long */
        short   t_persist;              /* retransmit persistance */
@@ -58,7 +76,7 @@ struct tcb {
 /* tc_flags values */
 #define        TC_ACK_DUE      0x0001          /* must we send ACK */
 #define        TC_CANCELLED    0x0002          /* retransmit timer cancelled */
 /* tc_flags values */
 #define        TC_ACK_DUE      0x0001          /* must we send ACK */
 #define        TC_CANCELLED    0x0002          /* retransmit timer cancelled */
-#define        TC_DROPPED_TXT  0x0004          /* dropped incoming data */
+/* ... */
 #define        TC_FIN_RCVD     0x0008          /* FIN received */
 #define        TC_FORCE_ONE    0x0010          /* force sending of one byte */
 #define        TC_NEW_WINDOW   0x0020          /* received new window size */
 #define        TC_FIN_RCVD     0x0008          /* FIN received */
 #define        TC_FORCE_ONE    0x0010          /* force sending of one byte */
 #define        TC_NEW_WINDOW   0x0020          /* received new window size */
@@ -83,23 +101,26 @@ struct tcb {
 #define        TFINACK         4
 #define        TNTIMERS        5
 
 #define        TFINACK         4
 #define        TNTIMERS        5
 
+#define        intotcpcb(ip)   ((struct tcpcb *)(ip)->inp_ppcb)
+#define        sototcpcb(so)   (intotcpcb(sotoinpcb(so)))
+
 /*
  * Tcp machine predicates
  */
 #define        ack_ok(x, y) \
 /*
  * Tcp machine predicates
  */
 #define        ack_ok(x, y) \
-    (((y)->th_flags&TH_ACK)==0 || \
-      ((x)->iss < (y)->t_ackno && (y)->t_ackno <= (x)->snd_hi))
+    (((y)->ti_flags&TH_ACK)==0 || \
+      ((x)->iss < (y)->ti_ackno && (y)->ti_ackno <= (x)->snd_hi))
 
 #define        syn_ok(x, y) \
 
 #define        syn_ok(x, y) \
-    ((y)->th_flags&TH_SYN)
+    ((y)->ti_flags&TH_SYN)
 
 #define        ack_fin(x, y) \
 
 #define        ack_fin(x, y) \
-    ((x)->seq_fin > (x)->iss && (y)->t_ackno > (x)->seq_fin)
+    ((x)->seq_fin > (x)->iss && (y)->ti_ackno > (x)->seq_fin)
 
 #define        rcv_empty(x) \
     (((x)->tc_flags&TC_USR_ABORT) || \
 
 #define        rcv_empty(x) \
     (((x)->tc_flags&TC_USR_ABORT) || \
-      ((x)->t_socket->so_rcv.sb_mb == NULL && \
-       (x)->tcb_hd.seg_next == (x)->tcb_hd.seg_prev))
+      ((x)->t_inpcb->inp_socket->so_rcv.sb_mb == NULL && \
+       (x)->seg_next == (x)->seg_prev))
 
 #define        ISSINCR         128             /* increment for iss each second */
 #define        TCPSIZE         20              /* size of TCP leader (bytes) */
 
 #define        ISSINCR         128             /* increment for iss each second */
 #define        TCPSIZE         20              /* size of TCP leader (bytes) */
@@ -109,6 +130,7 @@ struct tcb {
  *
  * *2 here is because slow timeout routine called every 1/2 second.
  */
  *
  * *2 here is because slow timeout routine called every 1/2 second.
  */
+#define        T_INIT          (30*2)
 #define        T_2ML           (10*2)          /* 2*maximum packet lifetime */
 #define        T_PERS          (5*2)           /* persist time */
 #define        T_REXMT         (1*2)           /* base for retransmission time */
 #define        T_2ML           (10*2)          /* 2*maximum packet lifetime */
 #define        T_PERS          (5*2)           /* persist time */
 #define        T_REXMT         (1*2)           /* base for retransmission time */
@@ -122,7 +144,7 @@ struct tcb {
  */
 struct tcp_debug {
        long    td_tod;                 /* time of day */
  */
 struct tcp_debug {
        long    td_tod;                 /* time of day */
-       struct  tcb *td_tcb;            /* -> tcb */
+       struct  tcbcb *td_tcb;          /* -> tcb */
        char    td_old;                 /* old state */
        char    td_inp;                 /* input */
        char    td_tim;                 /* timer id */
        char    td_old;                 /* old state */
        char    td_inp;                 /* input */
        char    td_tim;                 /* timer id */
@@ -136,18 +158,17 @@ struct tcp_debug {
 #endif
 
 #ifdef KERNEL
 #endif
 
 #ifdef KERNEL
-struct tcb_hd tcb;                     /* tcp tcb list head */
 seq_t  tcp_iss;                        /* tcp initial send seq # */
 seq_t  tcp_iss;                        /* tcp initial send seq # */
-int    tcpconsdebug;                   /* set to 1 traces on console */
+struct inpcb tcb;
 #ifdef TCPDEBUG
 #ifdef TCPDEBUG
+int    tcpconsdebug;                   /* set to 1 traces on console */
 struct tcp_debug tcp_debug[TDBSIZE];
 struct tcp_debug tcp_debug[TDBSIZE];
-#endif
 int    tdbx;                   /* rotating index into tcp_debug */
 int    tdbx;                   /* rotating index into tcp_debug */
-struct th *tcp_template();
+#endif
+struct tcpiphdr *tcp_template();
 #endif
 
 #define        SEQ_LT(a,b)     ((int)((a)-(b)) < 0)
 #define        SEQ_LEQ(a,b)    ((int)((a)-(b)) <= 0)
 #define        SEQ_GT(a,b)     ((int)((a)-(b)) > 0)
 #define        SEQ_GEQ(a,b)    ((int)((a)-(b)) >= 0)
 #endif
 
 #define        SEQ_LT(a,b)     ((int)((a)-(b)) < 0)
 #define        SEQ_LEQ(a,b)    ((int)((a)-(b)) <= 0)
 #define        SEQ_GT(a,b)     ((int)((a)-(b)) > 0)
 #define        SEQ_GEQ(a,b)    ((int)((a)-(b)) >= 0)
-struct th *tcp_template();