date and time created 81/11/03 11:26:10 by wnj
authorBill Joy <wnj@ucbvax.Berkeley.EDU>
Wed, 4 Nov 1981 03:26:10 +0000 (19:26 -0800)
committerBill Joy <wnj@ucbvax.Berkeley.EDU>
Wed, 4 Nov 1981 03:26:10 +0000 (19:26 -0800)
SCCS-vsn: sys/netinet/tcp_fsm.h 4.1

usr/src/sys/netinet/tcp_fsm.h [new file with mode: 0644]

diff --git a/usr/src/sys/netinet/tcp_fsm.h b/usr/src/sys/netinet/tcp_fsm.h
new file mode 100644 (file)
index 0000000..ea6e3bb
--- /dev/null
@@ -0,0 +1,120 @@
+/* fsm.h 1.4 81/10/29 */
+
+/*
+ * TCP FSM definitions.
+ */
+
+/*
+ * States
+ */
+#define        TCP_NSTATES     14
+
+#define        EFAILEC         -1              /* pseudo-state for internal use */
+#define        SAME            0
+#define        LISTEN          1
+#define        SYN_SENT        2
+#define        SYN_RCVD        3
+#define        L_SYN_RCVD      4
+#define        ESTAB           5
+#define        FIN_W1          6
+#define        FIN_W2          7
+#define        TIME_WAIT       8
+#define        CLOSE_WAIT      9
+#define        CLOSING1        10
+#define        CLOSING2        11
+#define        RCV_WAIT        12
+#define        CLOSED          13
+
+/*
+ * Inputs to fsm.
+ */
+#define        TCP_NINPUTS     10
+
+#define        IUOPENA         1
+#define        INRECV          2
+#define        IUOPENR         3
+#define        IUCLOSE         4
+#define        ISTIMER         5
+#define        IURECV          6
+#define        IUSEND          7
+#define        IUABORT         8
+#define        INCLEAR         9
+#define        INSEND          10
+
+/*
+ * Actions
+ */
+#define        BAD             0
+#define        LIS_CLS         1
+#define        LIS_NETR        2
+#define        SYR_NETR        3
+#define        SYS_CLS         4
+#define        SYS_NETR        5
+#define        CLS_OPN         6
+#define        EST_NETR        7
+#define        CL2_CLW         8
+#define        TIMERS          9
+#define        CL1_NETR        10
+#define        CL2_NETR        11
+#define        CLS_RWT         12
+#define        RWT_NETR        13
+#define        FW1_SYR         14
+#define        FW1_NETR        15
+#define        FW2_NETR        16
+#define        CWT_NETR        17
+#define        SSS_SYN         18
+#define        SSS_SND         19
+#define        SSS_RCV         20
+#define        CLS_NSY         21
+#define        CLS_SYN         22
+#define        CLS_ACT         23
+#define        NOP             24
+#define        CLS_ERR         25
+
+#ifdef KERNEL
+int    acounts[14][10];
+#endif
+
+#ifdef TCPFSTAB
+/* SHOULD FIGURE OUT HOW TO MAKE THIS READABLE! */
+char   tcp_fstab[TCP_NSTATES][TCP_NINPUTS] = {
+       { 0, 1, 0, 4, 0, 24, 0, 0, 0, 24 },             /* CLOSED */
+       { 0, 0, 2, 0, 6, 0, 0, 0, 21, 23 },             /* LISTEN */
+       { 0, 0, 5, 0, 6, 9, 0,  0, 21, 23, },           /* SYN_SENT */
+       { 0, 0, 3, 0, 14, 9, 0, 0, 21, 23, },           /* SYN_RCVD */
+       { 0, 0, 3, 0, 14, 9, 0, 0, 21, 23, },           /* L_SYN_RCVD */
+       { 0, 0, 7, 0, 14, 9, 20, 19, 22, 23, },         /* ESTAB */
+       { 0, 0, 15, 0, 24, 9, 20, 25, 22, 23, },        /* FIN_WAIT_1 */
+       { 0, 0, 16, 0, 24, 9, 20, 24, 22, 23, },        /* FIN_WAIT_2 */
+       { 0, 0, 18, 0, 24, 9, 20, 25, 22, 23, },        /* TIME_WAIT */
+       { 0, 0, 17, 0, 8, 9, 20, 19, 22, 23, },         /* CLOSE_WAIT */
+       { 0, 0, 10, 0, 25, 9, 20, 25, 22, 23, },        /* CLOSING_1 */
+       { 0, 0, 11, 0, 25, 9, 20, 25, 22, 23, },        /* CLOSING_2 */
+       { 0, 0, 13, 0, 25, 9, 12, 25, 22, 23, },        /* RCV_WAIT */
+       { 0, 1, 0, 4, 0, 24, 0, 0, 0, 24 }              /* CLOSED */
+};
+#endif
+#ifdef KERNEL
+int    acounts[TCP_NSTATES][TCP_NINPUTS];
+#endif
+
+#ifdef TCPSTATES
+char *tcpstates[] = {
+       "CLOSED",       "LISTEN",       "SYN_SENT",     "SYN_RCVD",
+       "L_SYN_RCVD",   "ESTAB",        "FIN_W1",       "FIN_W2",
+       "TIME_WAIT",    "CLOSE_WAIT",   "CLOSING1",     "CLOSING2",
+       "RCV_WAIT",     "CLOSED"
+};
+char *tcpinputs[] = {
+       "BAD",          "UOPENA",       "NRECV",        "UOPENR",
+       "UCLOSE",       "STIMER",       "URECV",        "USEND",
+       "UABORT",       "NCLEAR"
+};
+char *tcptimers[] = { "", "INIT", "REXMT", "REXMTTL", "PERSIST", "FINACK" };
+#endif
+
+#define        TINIT           1
+#define        TREXMT          2
+#define        TREXMTTL        3
+#define        TPERSIST        4
+#define        TFINACK         5