cleanup the headers
authorBill Joy <wnj@ucbvax.Berkeley.EDU>
Thu, 22 Oct 1981 11:07:57 +0000 (03:07 -0800)
committerBill Joy <wnj@ucbvax.Berkeley.EDU>
Thu, 22 Oct 1981 11:07:57 +0000 (03:07 -0800)
SCCS-vsn: sys/netinet/ip.h 1.3
SCCS-vsn: sys/netinet/ip_input.c 1.5
SCCS-vsn: sys/netinet/ip_output.c 1.3
SCCS-vsn: sys/vax/vax/in_cksum.c 1.5
SCCS-vsn: sys/netinet/tcp.h 1.3
SCCS-vsn: sys/netinet/tcp_usrreq.c 1.5

usr/src/sys/netinet/ip.h
usr/src/sys/netinet/ip_input.c
usr/src/sys/netinet/ip_output.c
usr/src/sys/netinet/tcp.h
usr/src/sys/netinet/tcp_usrreq.c
usr/src/sys/vax/vax/in_cksum.c

index f875495..32aded0 100644 (file)
@@ -1,44 +1,48 @@
-/* ip.h 1.2 81/10/14 */
-struct ip {                     /* ip leader */
-       unsigned char ip_hl:4,          /* header length */
-               ip_v:4;                 /* version */
-       unsigned char ip_tos;           /* type of service */
-#define ip_mff ip_tos                   /* more fragments flag (input) */
-       unsigned short ip_len;          /* total length */
-       unsigned short ip_id;           /* identification */
-       unsigned short ip_off;          /* fragment offset field */
-#define ip_df 0x4000                    /* dont fragment flag */
-#define ip_mf 0x2000                    /* more fragments flag (output) */
-       unsigned char ip_ttl;           /* time to live */
-       unsigned char ip_p;             /* protocol */
-       unsigned short ip_sum;          /* checksum */
-#define ip_end ip_sum                   /* fragment end */
+/* ip.h 1.3 81/10/21 */
+
+struct ip {
+       u_char  ip_hl:4,                /* header length */
+               ip_v:4;                 /* version */
+       u_char  ip_tos;                 /* type of service */
+#define        ip_mff  ip_tos                  /* more fragments flag (input) */
+       u_short ip_len;                 /* total length */
+       u_short ip_id;                  /* identification */
+       u_short ip_off;                 /* fragment offset field */
+#define        ip_df 0x4000                    /* dont fragment flag */
+#define        ip_mf 0x2000                    /* more fragments flag (output) */
+       u_char  ip_ttl;                 /* time to live */
+       u_char  ip_p;                   /* protocol */
+       u_short ip_sum;                 /* checksum */
+#define        ip_end  ip_sum                  /* fragment end */
        union {
        union {
-               struct socket ip_s;     /* source address */
-               struct ip *ip_nxt;      /* ->next fragment */      
+               struct socket ip_s;     /* source address */
+               struct ip *ip_nxt;      /* next fragment */
        } I_sun;
        } I_sun;
-#define ip_src  I_sun.ip_s
-#define ip_next I_sun.ip_nxt
+#define        ip_src  I_sun.ip_s
+#define        ip_next I_sun.ip_nxt
        union {
        union {
-               struct socket ip_d;     /* destination address */
-               struct ip *ip_prv;      /* ->prev fragment */
+               struct socket ip_d;     /* destination address */
+               struct ip *ip_prv;      /* prev fragment */
        } I_dun;
        } I_dun;
-#define ip_dst  I_dun.ip_d
-#define ip_prev I_dun.ip_prv
+#define        ip_dst  I_dun.ip_d
+#define        ip_prev I_dun.ip_prv
 };
 
 };
 
-struct ipq {                    /* ip reass.q header */
-       struct ip iqx;                  /* dummy ip element for top of list */
-       struct ipq *iq_next;            /* -> next chain on q */
-       struct ipq *iq_prev;            /* -> prev chain on q */
-       struct ip iqh;                  /* fragment header */
+/*
+ * Ip reassembly queue.
+ */
+struct ipq {
+       struct  ip iqx;         /* dummy ip element for top of list */
+       struct  ipq *iq_next;   /* -> next chain on q */
+       struct  ipq *iq_prev;   /* -> prev chain on q */
+       struct  ip iqh;         /* fragment header */
 };
 
 };
 
-#define IPVERSION 4             /* internet protocol version number */
-#define IPLOLINK 155            /* internet link numbers */
-#define IPHILINK 158
-#define IPLINK IPLOLINK
-#define MAXTTL 255              /* maximum time to live (seconds) */
+#define        IPVERSION       4               /* internet protocol version number */
+#define        IPLOLINK        155             /* internet link numbers */
+#define        IPHILINK        158
+#define        IPLINK          IPLOLINK
+#define        MAXTTL          255             /* maximum time to live (seconds) */
 
 #define        ip_bswap(p) { \
        p->ip_len = ntohs(p->ip_len); \
 
 #define        ip_bswap(p) { \
        p->ip_len = ntohs(p->ip_len); \
index cf55af6..b9b1ffc 100644 (file)
@@ -1,6 +1,8 @@
-/* ip_input.c 1.4 81/10/18 */
+/* ip_input.c 1.5 81/10/21 */
+
 #include "../h/param.h"
 #include "../bbnnet/net.h"
 #include "../h/param.h"
 #include "../bbnnet/net.h"
+#include "../bbnnet/mbuf.h"
 #include "../bbnnet/tcp.h"
 #include "../bbnnet/ip.h"
 #include "../bbnnet/ucb.h"
 #include "../bbnnet/tcp.h"
 #include "../bbnnet/ip.h"
 #include "../bbnnet/ucb.h"
index d9721ed..a6295b7 100644 (file)
@@ -1,6 +1,9 @@
-/* ip_output.c 1.2 81/10/18 */
+/* ip_output.c 1.3 81/10/21 */
+
 #include "../h/param.h"
 #include "../bbnnet/net.h"
 #include "../h/param.h"
 #include "../bbnnet/net.h"
+#include "../bbnnet/mbuf.h"
+#include "../bbnnet/host.h"
 #include "../bbnnet/tcp.h"
 #include "../bbnnet/ip.h"
 #include "../bbnnet/imp.h"
 #include "../bbnnet/tcp.h"
 #include "../bbnnet/ip.h"
 #include "../bbnnet/imp.h"
index 80d6e83..4bf56c1 100644 (file)
-/* tcp.h 1.2 81/10/18 */
-struct th {                     /* tcp header (fits over ip header) */
-       struct th *t_next;              /* -> next tcp on rcv chain */
-       struct th *t_prev;              /* -> prev tcp on rcv chain */
-       unsigned char t_x1;             /* (unused) */
-       unsigned char t_pr;             /* protocol */
-       unsigned short t_len;           /* seg length */
-       struct socket t_s;              /* source internet address */
-       struct socket t_d;              /* destination internet address */
-       unsigned short t_src;           /* source port */
-       unsigned short t_dst;           /* destination port */
-       sequence t_seq;                 /* sequence number */
-       sequence t_ackno;               /* acknowledgement number */
-#define t_end(x) (x->t_seq + x->t_len - 1)
-       unsigned char
-               t_x2:4,                 /* (unused) */
-               t_off:4;                /* data offset */
-       unsigned char
-               t_fin:1,                /* fin flag */
-               t_syn:1,                /* syn flag */
-               t_rst:1,                /* reset flag */
-               t_eol:1,                /* eol flag */
-               t_ack:1,                /* ack flag */
-               t_urg:1,                /* urgent flag */
-               t_x3:2;                 /* (unused) */
-       unsigned short t_win;           /* window */
-       unsigned short t_sum;           /* checksum */
-       unsigned short t_urp;           /* urgent pointer */
+/* tcp.h 1.3 81/10/21 */
+
+/*
+ * Tcp header (fits over ip header).
+ */
+struct th {
+       struct  th *t_next;             /* -> next tcp on rcv chain */
+       struct  th *t_prev;             /* -> prev tcp on rcv chain */
+       u_char  t_x1;                   /* (unused) */
+       u_char  t_pr;                   /* protocol */
+       u_short t_len;                  /* seg length */
+       struct  socket t_s;             /* source internet address */
+       struct  socket t_d;             /* destination internet address */
+       u_short t_src;                  /* source port */
+       u_short t_dst;                  /* destination port */
+       seq_t   t_seq;                  /* sequence number */
+       seq_t   t_ackno;                /* acknowledgement number */
+#define        t_end(x) (x->t_seq + x->t_len - 1)
+       u_char
+               t_x2:4,                 /* (unused) */
+               t_off:4;                /* data offset */
+       u_char
+               t_fin:1,                /* fin flag */
+               t_syn:1,                /* syn flag */
+               t_rst:1,                /* reset flag */
+               t_eol:1,                /* eol flag */
+               t_ack:1,                /* ack flag */
+               t_urg:1,                /* urgent flag */
+               t_x3:2;                 /* (unused) */
+       u_short t_win;                  /* window */
+       u_short t_sum;                  /* checksum */
+       u_short t_urp;                  /* urgent pointer */
 };
 
 };
 
-struct tcb {                    /* tcp control block */
+/*
+ * Tcp control block.
+ */
+struct tcb {
+       struct  th *t_rcv_next;         /* first el on rcv queue */
+       struct  th *t_rcv_prev;         /* last el on rcv queue */
+       struct  tcb *t_tcb_next;        /* next tcb */
+       struct  tcb *t_tcb_prev;        /* next tcb */
+       struct  ucb *t_ucb;             /* ucb */
+       struct  mbuf *t_rcv_unack;      /* unacked message queue */
+       seq_t   iss;                    /* initial send seq # */
+       seq_t   irs;                    /* initial recv seq # */
+       seq_t   rcv_urp;                /* rcv urgent pointer */
+       seq_t   rcv_nxt;                /* next seq # to rcv */
+       seq_t   rcv_end;                /* rcv eol pointer */
+       seq_t   snd_off;                /* seq # of first datum in send buf */
+       seq_t   seq_fin;                /* seq # of FIN sent */
+       seq_t   snd_end;                /* send eol pointer */
+       seq_t   snd_urp;                /* snd urgent pointer */
+       seq_t   snd_lst;                /* seq # of last sent datum */
+       seq_t   snd_nxt;                /* seq # of next datum to send */
+       seq_t   snd_una;                /* seq # of first unacked datum */
+       seq_t   snd_wl;                 /* seq # of last sent window */
+       seq_t   snd_hi;                 /* highest seq # sent */
+       seq_t   snd_wnd;                /* send window max */
+       seq_t   t_rexmt_val;            /* val saved in rexmt timer */
+       seq_t   t_rtl_val;              /* val saved in rexmt too long timer */
+       seq_t   t_xmt_val;              /* seq # sent when xmt timer started */
 
 
-       /* various pointers */
+       /* various flags and state variables */
 
 
-       struct th *t_rcv_next;          /* -> first el on rcv queue */
-       struct th *t_rcv_prev;          /* -> last el on rcv queue */
-       struct tcb *t_tcb_next;         /* -> next tcb */
-       struct tcb *t_tcb_prev;         /* -> prev tcb */
-       struct ucb *t_ucb;              /* -> ucb */
-       struct mbuf *t_rcv_unack;       /* -> unacked message queue */
+       u_short
+               ack_due:1,              /* must we send ACK */
+               cancelled:1,            /* retransmit timer cancelled */
+               dropped_txt:1,          /* dropped incoming data */
+               fin_rcvd:1,             /* FIN received */
+               force_one:1,            /* force sending of one byte */
+               new_window:1,           /* received new window size */
+               rexmt:1,                /* this msg is a retransmission */
+               snd_fin:1,              /* FIN should be sent */
+               snd_rst:1,              /* RST should be sent */
+               snd_urg:1,              /* urgent data to send */
+               syn_acked:1,            /* SYN has been ACKed */
+               syn_rcvd:1,             /* SYN has been received */
+               usr_closed:1,           /* user has closed connection */
+               waited_2_ml:1,          /* wait time for FIN ACK is up */
+               net_keep:1,             /* don't free this net input */
+               usr_abort:1;            /* user has closed and does not expect
+                                          to receive any more data */
+       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 */
 
 
-       /* sequence number variables */
+       /* timers */
 
 
-       sequence iss;                   /* initial send seq # */
-       sequence irs;                   /* initial recv seq # */
-       sequence rcv_urp;               /* rcv urgent pointer */
-       sequence rcv_nxt;               /* next seq # to rcv */
-       sequence rcv_end;               /* rcv eol pointer */
-       sequence snd_off;               /* seq # of first datum in send buf */
-       sequence seq_fin;               /* seq # of FIN sent */
-       sequence snd_end;               /* send eol pointer */
-       sequence snd_urp;               /* snd urgent pointer */
-       sequence snd_lst;               /* seq # of last sent datum */
-       sequence snd_nxt;               /* seq # of next datum to send */
-       sequence snd_una;               /* seq # of first unacked datum */
-       sequence snd_wl;                /* seq # of last sent window */
-       sequence snd_hi;                /* highest seq # sent */
-       sequence snd_wnd;               /* send window max */
-       sequence t_rexmt_val;           /* value saved in rexmt timer */
-       sequence t_rtl_val;             /* value saved in rexmt too long timer */
-       sequence t_xmt_val;             /* seq # sent when xmt timer started */
+       u_char  t_init;                 /* initialization too long */
+       u_char  t_rexmt;                /* retransmission */
+       u_char  t_rexmttl;              /* retransmit too long */
+       u_char  t_persist;              /* retransmit persistance */
+       u_char  t_finack;               /* fin acknowledged */
+       u_char  t_xmt;                  /* round trip transmission time */
+};
 
 
-       /* various flags and state variables */
+#define        ISSINCR         128             /* increment for iss each second */
+#define        TCPROTO         6               /* TCP-4 protocol number */
+#define        TCPSIZE         20              /* size of TCP leader (bytes) */
+#define        T_2ML           10              /* 2*maximum packet lifetime */
+#define        T_PERS          5               /* persist time */
+#define        T_INIT          30              /* init too long timeout */
+#define        T_REXMT         1               /* base for retransmission time */
+#define        T_REXMTTL       30              /* retransmit too long timeout */
+#define        T_REMAX         30              /* maximum retransmission time */
+#define        ACTIVE          1               /* active open */
+#define        PASSIVE         0               /* passive open */
 
 
-       unsigned short
-               ack_due:1,              /* must we send ACK */
-               cancelled:1,            /* retransmit timer cancelled */
-               dropped_txt:1,          /* dropped incoming data */
-               fin_rcvd:1,             /* FIN received */
-               force_one:1,            /* force sending of one byte */
-               new_window:1,           /* received new window size */
-               rexmt:1,                /* this msg is a retransmission */
-               snd_fin:1,              /* FIN should be sent */
-               snd_rst:1,              /* RST should be sent */
-               snd_urg:1,              /* urgent data to send */
-               syn_acked:1,            /* SYN has been ACKed */
-               syn_rcvd:1,             /* SYN has been received */
-               usr_closed:1,           /* user has closed connection */
-               waited_2_ml:1,          /* wait time for FIN ACK is up */
-               net_keep:1,             /* don't free this net input */
-               usr_abort:1;            /* user has closed and does not expect
-                                          to receive any more data */
+/*
+ * Tcp debugging record.
+ */
+struct t_debug {
+       long    t_tod;                  /* time of day */
+       struct  tcb *t_tcb;             /* -> tcb */
+       char    t_old;                  /* old state */
+       char    t_inp;                  /* input */
+       char    t_tim;                  /* timer id */
+       char    t_new;                  /* new state */
+       seq_t   t_sno;                  /* seq_t number */
+       seq_t   t_ano;                  /* acknowledgement */
+       u_short t_wno;                  /* window */
+       u_short t_lno;                  /* length */
+       u_char  t_flg;                  /* message flags */
+};
 
 
-       unsigned short t_flag2;         /* (unused) */
-       unsigned short t_lport;         /* local port */
-       unsigned short t_fport;         /* foreign port */
-       unsigned char t_state;          /* state of this connection */
-       unsigned char t_xmtime;         /* current rexmt time */
-       unsigned char t_sec;            /* security */
-       unsigned char t_prec;           /* precedence */
-       unsigned char t_compt;          /* compartment */
+/*
+ * Tcp machine predicates
+ */
+#define        ack_ok(x, y) \
+    (!(y)->t_ack || ((x)->iss < (y)->t_ackno && (y)->t_ackno <= (x)->snd_hi))
 
 
-       /* timers */
+#define        syn_ok(x, y) \
+    ((y)->t_syn)
 
 
-       unsigned char t_init;           /* initialization too long */
-       unsigned char t_rexmt;          /* retransmission */
-       unsigned char t_rexmttl;        /* retransmit too long */
-       unsigned char t_persist;        /* retransmit persistance */
-       unsigned char t_finack;         /* fin acknowledged */
-       unsigned char t_xmt;            /* round trip transmission time */
-};          
-           
-#define ISSINCR 128                     /* increment for iss each second */
-#define TCPROTO 6                       /* TCP-4 protocol number */
-#define TCPSIZE 20                      /* size of TCP leader (bytes) */
-#define T_2ML   10                      /* 2*maximum packet lifetime */
-#define T_PERS  5                       /* persist time */
-#define T_INIT  30                      /* init too long timeout */
-#define T_REXMT 1                       /* base for retransmission time */
-#define T_REXMTTL 30                    /* retransmit too long timeout */
-#define T_REMAX 30                      /* maximum retransmission time */
-#define ACTIVE  1                       /* active open */
-#define PASSIVE 0                       /* passive open */
+#define        ack_fin(x, y) \
+    ((x)->seq_fin > (x)->iss && (y)->t_ackno > (x)->seq_fin)
 
 
+#define        rcv_empty(x) \
+    ((x)->usr_abort || \
+      ((x)->t_ucb->uc_rbuf == NULL && (x)->t_rcv_next == (x)->t_rcv_prev))
index 4f4896e..6488078 100644 (file)
@@ -1,15 +1,15 @@
-/* tcp_usrreq.c 1.4 81/10/21 */
+/* tcp_usrreq.c 1.5 81/10/21 */
 
 #include "../h/param.h"
 #include "../h/systm.h"
 #include "../bbnnet/net.h"
 
 #include "../h/param.h"
 #include "../h/systm.h"
 #include "../bbnnet/net.h"
+#include "../bbnnet/mbuf.h"
 #include "../bbnnet/tcp.h"
 #include "../bbnnet/ip.h"
 #include "../bbnnet/imp.h"
 #include "../bbnnet/ucb.h"
 #define TCPFSTAB
 #include "../bbnnet/fsm.h"
 #include "../bbnnet/tcp.h"
 #include "../bbnnet/ip.h"
 #include "../bbnnet/imp.h"
 #include "../bbnnet/ucb.h"
 #define TCPFSTAB
 #include "../bbnnet/fsm.h"
-#include "../bbnnet/tcp_pred.h"
 
 /*
  * This file contains the top level routines for actions
 
 /*
  * This file contains the top level routines for actions
@@ -283,7 +283,7 @@ sss_snd(wp)
        register struct mbuf *m, *n;
        register struct ucb *up;
        register off;
        register struct mbuf *m, *n;
        register struct ucb *up;
        register off;
-       sequence last;
+       seq_t last;
 
        tp = wp->w_tcb;
        up = tp->t_ucb;
 
        tp = wp->w_tcb;
        up = tp->t_ucb;
index 4b41339..7b88dd5 100644 (file)
@@ -1,7 +1,8 @@
-/* in_cksum.c 1.4 81/10/20 */
+/* in_cksum.c 1.5 81/10/21 */
 
 #include <sys/types.h>
 #include "../bbnnet/net.h"
 
 #include <sys/types.h>
 #include "../bbnnet/net.h"
+#include "../bbnnet/mbuf.h"
 #include "../bbnnet/count.h"
 
 /*
 #include "../bbnnet/count.h"
 
 /*