sun merge
[unix-history] / usr / src / sys / netinet / tcp_var.h
index 41feb48..ca27a98 100644 (file)
@@ -1,4 +1,4 @@
-/*     tcp_var.h       4.12    81/12/09        */
+/*     tcp_var.h       4.16    82/01/18        */
 
 /*
  * Kernel variables for tcp.
 
 /*
  * Kernel variables for tcp.
 struct tcpcb {
        struct  tcpiphdr *seg_next;     /* sequencing queue */
        struct  tcpiphdr *seg_prev;
 struct tcpcb {
        struct  tcpiphdr *seg_next;     /* sequencing queue */
        struct  tcpiphdr *seg_prev;
-       int     t_state;                /* state of this connection */
+       short   t_state;                /* state of this connection */
        short   t_timer[TCPT_NTIMERS];  /* tcp timers */
        short   t_rxtshift;             /* log(2) of rexmt exp. backoff */
        struct  mbuf *t_tcpopt;         /* tcp options */
        struct  mbuf *t_ipopt;          /* ip options */
        short   t_maxseg;               /* maximum segment size */
        short   t_timer[TCPT_NTIMERS];  /* tcp timers */
        short   t_rxtshift;             /* log(2) of rexmt exp. backoff */
        struct  mbuf *t_tcpopt;         /* tcp options */
        struct  mbuf *t_ipopt;          /* ip options */
        short   t_maxseg;               /* maximum segment size */
-       short   t_force;                /* 1 if forcing out a byte */
+       char    t_force;                /* 1 if forcing out a byte */
        u_char  t_flags;
 #define        TF_ACKNOW       0x01                    /* ack peer immediately */
 #define        TF_DELACK       0x02                    /* ack, but try to delay it */
        u_char  t_flags;
 #define        TF_ACKNOW       0x01                    /* ack peer immediately */
 #define        TF_DELACK       0x02                    /* ack, but try to delay it */
-#define        TF_PUSH         0x04                    /* push mode */
-#define        TF_URG          0x08                    /* urgent mode */
-#define        TF_DONTKEEP     0x10                    /* don't use keep-alives */
+#define        TF_DONTKEEP     0x04                    /* don't use keep-alives */
+#define        TF_NOOPT        0x08                    /* don't use tcp options */
+#ifdef TCPTRUEOOB
+#define        TF_DOOOB        0x10                    /* do use out of band data */
+#endif
        struct  tcpiphdr *t_template;   /* skeletal packet for transmit */
        struct  inpcb *t_inpcb;         /* back pointer to internet pcb */
 /*
        struct  tcpiphdr *t_template;   /* skeletal packet for transmit */
        struct  inpcb *t_inpcb;         /* back pointer to internet pcb */
 /*
@@ -32,14 +34,14 @@ struct tcpcb {
 /* send sequence variables */
        tcp_seq snd_una;                /* send unacknowledged */
        tcp_seq snd_nxt;                /* send next */
 /* send sequence variables */
        tcp_seq snd_una;                /* send unacknowledged */
        tcp_seq snd_nxt;                /* send next */
-       u_short snd_wnd;                /* send window */
        tcp_seq snd_up;                 /* send urgent pointer */
        tcp_seq snd_wl1;                /* window update seg seq number */
        tcp_seq snd_wl2;                /* window update seg ack number */
        tcp_seq iss;                    /* initial send sequence number */
        tcp_seq snd_up;                 /* send urgent pointer */
        tcp_seq snd_wl1;                /* window update seg seq number */
        tcp_seq snd_wl2;                /* window update seg ack number */
        tcp_seq iss;                    /* initial send sequence number */
+       u_short snd_wnd;                /* send window */
 /* receive sequence variables */
 /* receive sequence variables */
-       tcp_seq rcv_nxt;                /* receive next */
        short   rcv_wnd;                /* receive window */
        short   rcv_wnd;                /* receive window */
+       tcp_seq rcv_nxt;                /* receive next */
        tcp_seq rcv_up;                 /* receive urgent pointer */
        tcp_seq irs;                    /* initial receive sequence number */
 /*
        tcp_seq rcv_up;                 /* receive urgent pointer */
        tcp_seq irs;                    /* initial receive sequence number */
 /*
@@ -55,6 +57,19 @@ struct tcpcb {
        short   t_rtt;                  /* round trip time */
        tcp_seq t_rtseq;                /* sequence number being timed */
        float   t_srtt;                 /* smoothed round-trip time */
        short   t_rtt;                  /* round trip time */
        tcp_seq t_rtseq;                /* sequence number being timed */
        float   t_srtt;                 /* smoothed round-trip time */
+/* out-of-band data */
+       char    t_oobflags;             /* have some */
+       char    t_iobc;                 /* input character */
+#define        TCPOOB_HAVEDATA 0x01
+
+#ifdef TCPTRUEOOB
+#define        TCPOOB_OWEACK   0x02
+#define        TCPOOB_NEEDACK  0x04
+       u_char  t_iobseq;               /* input receive sequence number */
+       tcp_seq t_oobmark;              /* output mark position */
+       char    t_oobc;                 /* output character */
+       u_char  t_oobseq;               /* output transmit sequence number */
+#endif
 };
 
 #define        intotcpcb(ip)   ((struct tcpcb *)(ip)->inp_ppcb)
 };
 
 #define        intotcpcb(ip)   ((struct tcpcb *)(ip)->inp_ppcb)