xref: /original-bsd/sys/deprecated/bbnnet/fsmdef.h (revision 0a83ae40)
1 /* $Header: fsmdef.h,v 1.4 85/06/18 14:28:45 walsh Exp $ */
2 
3 
4 #ifndef TRPT
5 char fstab[TCP_NSTATES][INOP] = {
6 {
7 /* STATE CLOSED */
8 /* unused X unused */				0,
9 /* CLOSED X from U:OPEN(await) */		1,
10 /* CLOSED X from N:RECEIVE(response) */		0,
11 /* CLOSED X from U:OPEN(request) */		4,
12 			/* user may close a socket after socket() or bind() */
13 /* CLOSED X from U:CLOSE(request) */		6,	/* was 0 in 4.1 */
14 /* CLOSED X from S:TIMER(response) */		24,
15 /* CLOSED X from U:RECEIVE(request) */		0,
16 /* CLOSED X from U:SEND(normal) */		0,
17 /* CLOSED X from U:ABORT(request) */		0,
18 /* CLOSED X from N:CLEAR(indication) */		24,
19 }, /* STATE CLOSED */
20 
21 /* STATE LISTEN */
22 {
23 /* LISTEN X unused */				0,
24 /* LISTEN X from U:OPEN(await) */		0,
25 /* LISTEN X from N:RECEIVE(response) */		2,
26 /* LISTEN X from U:OPEN(request) */		0,
27 /* LISTEN X from U:CLOSE(request) */		6,
28 /* LISTEN X from S:TIMER(response) */		9,
29 /* LISTEN X from U:RECEIVE(request) */		24,
30 /* LISTEN X from U:SEND(normal) */		24,
31 /* LISTEN X from U:ABORT(request) */		21,
32 /* LISTEN X from N:CLEAR(indication) */		23,
33 }, /* STATE LISTEN */
34 
35 
36 /* STATE SYN_SENT */
37 {
38 /* SYN_SENT X unused */	                        0,
39 /* SYN_SENT X from U:OPEN(await) */		0,
40 /* SYN_SENT X from N:RECEIVE(response) */       5,
41 /* SYN_SENT X from U:OPEN(request) */		0,
42 /* SYN_SENT X from U:CLOSE(request) */		6,
43 /* SYN_SENT X from S:TIMER(response) */		9,
44 /* SYN_SENT X from U:RECEIVE(request) */        24,
45 /* SYN_SENT X from U:SEND(normal) */		19,	/* was 24 in 4.1 */
46 /* SYN_SENT X from U:ABORT(request) */		21,
47 /* SYN_SENT X from N:CLEAR(indication) */       23,
48 }, /* STATE SYN_SENT */
49 
50 
51 /* STATE SYN_RCVD */
52 {
53 /* SYN_RCVD X unused */	                        0,
54 /* SYN_RCVD X from U:OPEN(await) */		0,
55 /* SYN_RCVD X from N:RECEIVE(response) */       3,
56 /* SYN_RCVD X from U:OPEN(request) */		0,
57 /* SYN_RCVD X from U:CLOSE(request) */		14,
58 /* SYN_RCVD X from S:TIMER(response) */	        9,
59 /* SYN_RCVD X from U:RECEIVE(request) */        24,
60 /* SYN_RCVD X from U:SEND(normal) */		24,
61 /* SYN_RCVD X from U:ABORT(request) */          21,
62 /* SYN_RCVD X from N:CLEAR(indication) */       23,
63 }, /* STATE SYN_RCVD */
64 
65 
66 /* STATE L_SYN_RCVD */
67 {
68 /* L_SYN_RCVD X unused */                       0,
69 /* L_SYN_RCVD X from U:OPEN(await) */		0,
70 /* L_SYN_RCVD X from N:RECEIVE(response) */	3,
71 /* L_SYN_RCVD X from U:OPEN(request) */		0,
72 /* L_SYN_RCVD X from U:CLOSE(request) */	14,
73 /* L_SYN_RCVD X from S:TIMER(response) */	9,
74 /* L_SYN_RCVD X from U:RECEIVE(request) */	24,
75 /* L_SYN_RCVD X from U:SEND(normal) */		24,
76 /* L_SYN_RCVD X from U:ABORT(request) */	21,
77 /* L_SYN_RCVD X from N:CLEAR(indication) */	23,
78 }, /* STATE L_SYN_RCVD */
79 
80 
81 /* STATE ESTAB */
82 {
83 /* ESTAB X unused */                            0,
84 /* ESTAB X from U:OPEN(await) */		0,
85 /* ESTAB X from N:RECEIVE(response) */		7,
86 /* ESTAB X from U:OPEN(request) */		0,
87 /* ESTAB X from U:CLOSE(request) */	        14,
88 /* ESTAB X from S:TIMER(response) */	        9,
89 /* ESTAB X from U:RECEIVE(request) */           20,
90 /* ESTAB X from U:SEND(normal) */               19,
91 /* ESTAB X from U:ABORT(request) */             22,
92 /* ESTAB X from N:CLEAR(indication) */	        23,
93 }, /* STATE ESTAB */
94 
95 
96 /* STATE FIN_WAIT_1 */
97 {
98 /* FIN_WAIT_1 X unused */                       0,
99 /* FIN_WAIT_1 X from U:OPEN(await) */		0,
100 /* FIN_WAIT_1 X from N:RECEIVE(response) */	15,
101 /* FIN_WAIT_1 X from U:OPEN(request) */		0,
102 /* FIN_WAIT_1 X from U:CLOSE(request) */	24,
103 /* FIN_WAIT_1 X from S:TIMER(response) */	9,
104 /* FIN_WAIT_1 X from U:RECEIVE(request) */	20,
105 /* FIN_WAIT_1 X from U:SEND(normal) */		25,
106 /* FIN_WAIT_1 X from U:ABORT(request) */	22,
107 /* FIN_WAIT_1 X from N:CLEAR(indication) */	23,
108 }, /* STATE FIN_WAIT_1 */
109 
110 
111 /* STATE FIN_WAIT_2 */
112 {
113 /* FIN_WAIT_2 X unused */                       0,
114 /* FIN_WAIT_2 X from U:OPEN(await) */		0,
115 /* FIN_WAIT_2 X from N:RECEIVE(response) */	16,
116 /* FIN_WAIT_2 X from U:OPEN(request) */		0,
117 /* FIN_WAIT_2 X from U:CLOSE(request) */	24,
118 /* FIN_WAIT_2 X from S:TIMER(response) */	9,
119 /* FIN_WAIT_2 X from U:RECEIVE(request) */	20,
120 /* FIN_WAIT_2 X from U:SEND(normal) */		24,
121 /* FIN_WAIT_2 X from U:ABORT(request) */	22,
122 /* FIN_WAIT_2 X from N:CLEAR(indication) */	23,
123 }, /* STATE FIN_WAIT_2 */
124 
125 
126 /* STATE TIME_WAIT */
127 {
128 /* TIME_WAIT X unused */                        0,
129 /* TIME_WAIT X from U:OPEN(await) */		0,
130 /* TIME_WAIT X from N:RECEIVE(response) */	18,
131 /* TIME_WAIT X from U:OPEN(request) */		0,
132 /* TIME_WAIT X from U:CLOSE(request) */		24,
133 /* TIME_WAIT X from S:TIMER(response) */	9,
134 /* TIME_WAIT X from U:RECEIVE(request) */	20,
135 /* TIME_WAIT X from U:SEND(normal) */		25,
136 /* TIME_WAIT X from U:ABORT(request) */	        22,
137 /* TIME_WAIT X from N:CLEAR(indication) */	23,
138 }, /* STATE TIME_WAIT */
139 
140 
141 /* STATE CLOSE_WAIT */
142 {
143 /* CLOSE_WAIT X unused */			0,
144 /* CLOSE_WAIT X from U:OPEN(await) */		0,
145 /* CLOSE_WAIT X from N:RECEIVE(response) */	17,
146 /* CLOSE_WAIT X from U:OPEN(request) */		0,
147 /* CLOSE_WAIT X from U:CLOSE(request) */	8,
148 /* CLOSE_WAIT X from S:TIMER(response) */	9,
149 /* CLOSE_WAIT X from U:RECEIVE(request) */	20,
150 /* CLOSE_WAIT X from U:SEND(normal) */	        19,
151 /* CLOSE_WAIT X from U:ABORT(request) */	22,
152 /* CLOSE_WAIT X from N:CLEAR(indication) */	23,
153 }, /* STATE CLOSE_WAIT */
154 
155 
156 /* STATE CLOSING_1 */
157 {
158 /* CLOSING_1 X unused */			0,
159 /* CLOSING_1 X from U:OPEN(await) */		0,
160 /* CLOSING_1 X from N:RECEIVE(response) */	10,
161 /* CLOSING_1 X from U:OPEN(request) */		0,
162 /* CLOSING_1 X from U:CLOSE(request) */		25,
163 /* CLOSING_1 X from S:TIMER(response) */	9,
164 /* CLOSING_1 X from U:RECEIVE(request) */	20,
165 /* CLOSING_1 X from U:SEND(normal) */		25,
166 /* CLOSING_1 X from U:ABORT(request) */	        22,
167 /* CLOSING_1 X from N:CLEAR(indication) */	23,
168 }, /* STATE CLOSING_1 */
169 
170 
171 /* STATE CLOSING_2 */
172 {
173 /* CLOSING_2 X unused */			0,
174 /* CLOSING_2 X from U:OPEN(await) */		0,
175 /* CLOSING_2 X from N:RECEIVE(response) */	11,
176 /* CLOSING_2 X from U:OPEN(request) */		0,
177 /* CLOSING_2 X from U:CLOSE(request) */		25,
178 /* CLOSING_2 X from S:TIMER(response) */	9,
179 /* CLOSING_2 X from U:RECEIVE(request) */	20,
180 /* CLOSING_2 X from U:SEND(normal) */		25,
181 /* CLOSING_2 X from U:ABORT(request) */	        22,
182 /* CLOSING_2 X from N:CLEAR(indication) */	23,
183 }, /* STATE CLOSING_2 */
184 
185 
186 /* STATE RCV_WAIT */
187 {
188 /* RCV_WAIT X unused */				0,
189 /* RCV_WAIT X from U:OPEN(await) */		0,
190 /* RCV_WAIT X from N:RECEIVE(response) */	13,
191 /* RCV_WAIT X from U:OPEN(request) */		0,
192 /* RCV_WAIT X from U:CLOSE(request) */		25,
193 /* RCV_WAIT X from S:TIMER(response) */	        9,
194 /* RCV_WAIT X from U:RECEIVE(request) */	12,
195 /* RCV_WAIT X from U:SEND(normal) */		25,
196 /* RCV_WAIT X from U:ABORT(request) */	        22,
197 /* RCV_WAIT X from N:CLEAR(indication) */	23,
198 }, /* STATE RCV_WAIT */
199 
200 
201 /* STATE CLOSED */
202 {
203 /* CLOSED X unused */				0,
204 /* CLOSED X from U:OPEN(await) */               1,
205 /* CLOSED X from N:RECEIVE(response) */		0,
206 /* CLOSED X from U:OPEN(request) */	        4,
207 /* CLOSED X from U:CLOSE(request) */		0,
208 /* CLOSED X from S:TIMER(response) */		24,
209 /* CLOSED X from U:RECEIVE(request) */		0,
210 /* CLOSED X from U:SEND(normal) */		0,
211 /* CLOSED X from U:ABORT(request) */		0,
212 /* CLOSED X from N:CLEAR(indication) */		24
213 }  /* STATE CLOSED */
214 
215 };
216 
217 int null() {return(0);}
218 int lis_cls();
219 int lis_netr();
220 int syr_netr();
221 int sys_cls();
222 int sys_netr();
223 int cls_opn();
224 int est_netr();
225 int cl2_clw();
226 int timers();
227 int cl1_netr();
228 int cl2_netr();
229 int cls_rwt();
230 int rwt_netr();
231 int fw1_syr();
232 int fw1_netr();
233 int fw2_netr();
234 int cwt_netr();
235 int sss_syn();
236 int sss_snd();
237 int sss_rcv();
238 int cls_nsy();
239 int cls_syn();
240 int cls_act();
241 int cls_err();
242 
243 int (*fsactab[])() = {
244 
245 	/* 0 */         null,
246         /* 1 */ 	lis_cls,        /* 1 */
247         /* 2 */ 	lis_netr,       /* 3,4 */
248         /* 3 */ 	syr_netr,       /* 5,33 */
249         /* 4 */ 	sys_cls,        /* 6 */
250         /* 5 */ 	sys_netr,       /* 8,9,11,32 */
251         /* 6 */ 	cls_opn,        /* 10 */
252         /* 7 */ 	est_netr,       /* 12,39 */
253         /* 8 */ 	cl2_clw,        /* 13 */
254         /* 9 */ 	timers,         /* 14,17,35,36,37,38 */
255         /* 10 */	cl1_netr,       /* 15,18,22,23,30,39 */
256         /* 11 */	cl2_netr,       /* 16,19,31,39 */
257         /* 12 */	cls_rwt,        /* 20 */
258         /* 13 */	rwt_netr,       /* 21,30 */
259         /* 14 */	fw1_syr,        /* 24 */
260         /* 15 */	fw1_netr,       /* 26,27,28,39 */
261         /* 16 */	fw2_netr,       /* 29,39 */
262         /* 17 */	cwt_netr,       /* 30,31,39 */
263         /* 18 */ 	sss_syn,        /* 39 */
264         /* 19 */	sss_snd,        /* 40,41 */
265         /* 20 */	sss_rcv,        /* 42 */
266         /* 21 */	cls_nsy,        /* 44 */
267         /* 22 */	cls_syn,        /* 45 */
268         /* 23 */	cls_act,        /* 47 ### this & INCLEAR unused on 4.2 */
269 	/* 24 */	null,
270 	/* 25 */        cls_err
271 };
272 
273 #endif TRPT
274 #ifdef TCPDEBUG
275 
276 char *tcpstates[] =
277 {
278 	"CLOSED",
279 	"LISTEN",
280 	"SYN_SENT",
281 	"SYN_RCVD",
282 	"L_SYN_RCVD",
283 	"ESTAB",
284 	"FIN_W1",
285         "FIN_W2",
286         "TIME_WAIT",
287 	"CLOSE_WAIT",
288 	"CLOSING1",
289 	"CLOSING2",
290 	"RCV_WAIT",
291 	"CLOSED"
292 };
293 
294 char *tcpinputs[] =
295 {
296 	"BAD",
297 	"UOPENA",
298 	"NRECV",
299 	"UOPENR",
300 	"UCLOSE",
301 	"TIMER",
302 	"URECV",
303 	"USEND",
304 	"UABORT",
305 	"NCLEAR"
306 };
307 
308 char *tcptimers[] =
309 {
310 	"",
311 	"INIT",
312 	"REXMT",
313 	"REXMTTL",
314 	"PERSIST",
315 	"FINACK",
316 	"DELACK",
317 	"NOACT"
318 };
319 
320 #endif TCPDEBUG
321 
322