bring up to revision 7 for tahoe release
[unix-history] / usr / src / sys / deprecated / bbnnet / fsmdef.h
/* $Header: fsmdef.h,v 1.4 85/06/18 14:28:45 walsh Exp $ */
#ifndef TRPT
char fstab[TCP_NSTATES][INOP] = {
{
/* STATE CLOSED */
/* unused X unused */ 0,
/* CLOSED X from U:OPEN(await) */ 1,
/* CLOSED X from N:RECEIVE(response) */ 0,
/* CLOSED X from U:OPEN(request) */ 4,
/* user may close a socket after socket() or bind() */
/* CLOSED X from U:CLOSE(request) */ 6, /* was 0 in 4.1 */
/* CLOSED X from S:TIMER(response) */ 24,
/* CLOSED X from U:RECEIVE(request) */ 0,
/* CLOSED X from U:SEND(normal) */ 0,
/* CLOSED X from U:ABORT(request) */ 0,
/* CLOSED X from N:CLEAR(indication) */ 24,
}, /* STATE CLOSED */
/* STATE LISTEN */
{
/* LISTEN X unused */ 0,
/* LISTEN X from U:OPEN(await) */ 0,
/* LISTEN X from N:RECEIVE(response) */ 2,
/* LISTEN X from U:OPEN(request) */ 0,
/* LISTEN X from U:CLOSE(request) */ 6,
/* LISTEN X from S:TIMER(response) */ 9,
/* LISTEN X from U:RECEIVE(request) */ 24,
/* LISTEN X from U:SEND(normal) */ 24,
/* LISTEN X from U:ABORT(request) */ 21,
/* LISTEN X from N:CLEAR(indication) */ 23,
}, /* STATE LISTEN */
/* STATE SYN_SENT */
{
/* SYN_SENT X unused */ 0,
/* SYN_SENT X from U:OPEN(await) */ 0,
/* SYN_SENT X from N:RECEIVE(response) */ 5,
/* SYN_SENT X from U:OPEN(request) */ 0,
/* SYN_SENT X from U:CLOSE(request) */ 6,
/* SYN_SENT X from S:TIMER(response) */ 9,
/* SYN_SENT X from U:RECEIVE(request) */ 24,
/* SYN_SENT X from U:SEND(normal) */ 19, /* was 24 in 4.1 */
/* SYN_SENT X from U:ABORT(request) */ 21,
/* SYN_SENT X from N:CLEAR(indication) */ 23,
}, /* STATE SYN_SENT */
/* STATE SYN_RCVD */
{
/* SYN_RCVD X unused */ 0,
/* SYN_RCVD X from U:OPEN(await) */ 0,
/* SYN_RCVD X from N:RECEIVE(response) */ 3,
/* SYN_RCVD X from U:OPEN(request) */ 0,
/* SYN_RCVD X from U:CLOSE(request) */ 14,
/* SYN_RCVD X from S:TIMER(response) */ 9,
/* SYN_RCVD X from U:RECEIVE(request) */ 24,
/* SYN_RCVD X from U:SEND(normal) */ 24,
/* SYN_RCVD X from U:ABORT(request) */ 21,
/* SYN_RCVD X from N:CLEAR(indication) */ 23,
}, /* STATE SYN_RCVD */
/* STATE L_SYN_RCVD */
{
/* L_SYN_RCVD X unused */ 0,
/* L_SYN_RCVD X from U:OPEN(await) */ 0,
/* L_SYN_RCVD X from N:RECEIVE(response) */ 3,
/* L_SYN_RCVD X from U:OPEN(request) */ 0,
/* L_SYN_RCVD X from U:CLOSE(request) */ 14,
/* L_SYN_RCVD X from S:TIMER(response) */ 9,
/* L_SYN_RCVD X from U:RECEIVE(request) */ 24,
/* L_SYN_RCVD X from U:SEND(normal) */ 24,
/* L_SYN_RCVD X from U:ABORT(request) */ 21,
/* L_SYN_RCVD X from N:CLEAR(indication) */ 23,
}, /* STATE L_SYN_RCVD */
/* STATE ESTAB */
{
/* ESTAB X unused */ 0,
/* ESTAB X from U:OPEN(await) */ 0,
/* ESTAB X from N:RECEIVE(response) */ 7,
/* ESTAB X from U:OPEN(request) */ 0,
/* ESTAB X from U:CLOSE(request) */ 14,
/* ESTAB X from S:TIMER(response) */ 9,
/* ESTAB X from U:RECEIVE(request) */ 20,
/* ESTAB X from U:SEND(normal) */ 19,
/* ESTAB X from U:ABORT(request) */ 22,
/* ESTAB X from N:CLEAR(indication) */ 23,
}, /* STATE ESTAB */
/* STATE FIN_WAIT_1 */
{
/* FIN_WAIT_1 X unused */ 0,
/* FIN_WAIT_1 X from U:OPEN(await) */ 0,
/* FIN_WAIT_1 X from N:RECEIVE(response) */ 15,
/* FIN_WAIT_1 X from U:OPEN(request) */ 0,
/* FIN_WAIT_1 X from U:CLOSE(request) */ 24,
/* FIN_WAIT_1 X from S:TIMER(response) */ 9,
/* FIN_WAIT_1 X from U:RECEIVE(request) */ 20,
/* FIN_WAIT_1 X from U:SEND(normal) */ 25,
/* FIN_WAIT_1 X from U:ABORT(request) */ 22,
/* FIN_WAIT_1 X from N:CLEAR(indication) */ 23,
}, /* STATE FIN_WAIT_1 */
/* STATE FIN_WAIT_2 */
{
/* FIN_WAIT_2 X unused */ 0,
/* FIN_WAIT_2 X from U:OPEN(await) */ 0,
/* FIN_WAIT_2 X from N:RECEIVE(response) */ 16,
/* FIN_WAIT_2 X from U:OPEN(request) */ 0,
/* FIN_WAIT_2 X from U:CLOSE(request) */ 24,
/* FIN_WAIT_2 X from S:TIMER(response) */ 9,
/* FIN_WAIT_2 X from U:RECEIVE(request) */ 20,
/* FIN_WAIT_2 X from U:SEND(normal) */ 24,
/* FIN_WAIT_2 X from U:ABORT(request) */ 22,
/* FIN_WAIT_2 X from N:CLEAR(indication) */ 23,
}, /* STATE FIN_WAIT_2 */
/* STATE TIME_WAIT */
{
/* TIME_WAIT X unused */ 0,
/* TIME_WAIT X from U:OPEN(await) */ 0,
/* TIME_WAIT X from N:RECEIVE(response) */ 18,
/* TIME_WAIT X from U:OPEN(request) */ 0,
/* TIME_WAIT X from U:CLOSE(request) */ 24,
/* TIME_WAIT X from S:TIMER(response) */ 9,
/* TIME_WAIT X from U:RECEIVE(request) */ 20,
/* TIME_WAIT X from U:SEND(normal) */ 25,
/* TIME_WAIT X from U:ABORT(request) */ 22,
/* TIME_WAIT X from N:CLEAR(indication) */ 23,
}, /* STATE TIME_WAIT */
/* STATE CLOSE_WAIT */
{
/* CLOSE_WAIT X unused */ 0,
/* CLOSE_WAIT X from U:OPEN(await) */ 0,
/* CLOSE_WAIT X from N:RECEIVE(response) */ 17,
/* CLOSE_WAIT X from U:OPEN(request) */ 0,
/* CLOSE_WAIT X from U:CLOSE(request) */ 8,
/* CLOSE_WAIT X from S:TIMER(response) */ 9,
/* CLOSE_WAIT X from U:RECEIVE(request) */ 20,
/* CLOSE_WAIT X from U:SEND(normal) */ 19,
/* CLOSE_WAIT X from U:ABORT(request) */ 22,
/* CLOSE_WAIT X from N:CLEAR(indication) */ 23,
}, /* STATE CLOSE_WAIT */
/* STATE CLOSING_1 */
{
/* CLOSING_1 X unused */ 0,
/* CLOSING_1 X from U:OPEN(await) */ 0,
/* CLOSING_1 X from N:RECEIVE(response) */ 10,
/* CLOSING_1 X from U:OPEN(request) */ 0,
/* CLOSING_1 X from U:CLOSE(request) */ 25,
/* CLOSING_1 X from S:TIMER(response) */ 9,
/* CLOSING_1 X from U:RECEIVE(request) */ 20,
/* CLOSING_1 X from U:SEND(normal) */ 25,
/* CLOSING_1 X from U:ABORT(request) */ 22,
/* CLOSING_1 X from N:CLEAR(indication) */ 23,
}, /* STATE CLOSING_1 */
/* STATE CLOSING_2 */
{
/* CLOSING_2 X unused */ 0,
/* CLOSING_2 X from U:OPEN(await) */ 0,
/* CLOSING_2 X from N:RECEIVE(response) */ 11,
/* CLOSING_2 X from U:OPEN(request) */ 0,
/* CLOSING_2 X from U:CLOSE(request) */ 25,
/* CLOSING_2 X from S:TIMER(response) */ 9,
/* CLOSING_2 X from U:RECEIVE(request) */ 20,
/* CLOSING_2 X from U:SEND(normal) */ 25,
/* CLOSING_2 X from U:ABORT(request) */ 22,
/* CLOSING_2 X from N:CLEAR(indication) */ 23,
}, /* STATE CLOSING_2 */
/* STATE RCV_WAIT */
{
/* RCV_WAIT X unused */ 0,
/* RCV_WAIT X from U:OPEN(await) */ 0,
/* RCV_WAIT X from N:RECEIVE(response) */ 13,
/* RCV_WAIT X from U:OPEN(request) */ 0,
/* RCV_WAIT X from U:CLOSE(request) */ 25,
/* RCV_WAIT X from S:TIMER(response) */ 9,
/* RCV_WAIT X from U:RECEIVE(request) */ 12,
/* RCV_WAIT X from U:SEND(normal) */ 25,
/* RCV_WAIT X from U:ABORT(request) */ 22,
/* RCV_WAIT X from N:CLEAR(indication) */ 23,
}, /* STATE RCV_WAIT */
/* STATE CLOSED */
{
/* CLOSED X unused */ 0,
/* CLOSED X from U:OPEN(await) */ 1,
/* CLOSED X from N:RECEIVE(response) */ 0,
/* CLOSED X from U:OPEN(request) */ 4,
/* CLOSED X from U:CLOSE(request) */ 0,
/* CLOSED X from S:TIMER(response) */ 24,
/* CLOSED X from U:RECEIVE(request) */ 0,
/* CLOSED X from U:SEND(normal) */ 0,
/* CLOSED X from U:ABORT(request) */ 0,
/* CLOSED X from N:CLEAR(indication) */ 24
} /* STATE CLOSED */
};
int null() {return(0);}
int lis_cls();
int lis_netr();
int syr_netr();
int sys_cls();
int sys_netr();
int cls_opn();
int est_netr();
int cl2_clw();
int timers();
int cl1_netr();
int cl2_netr();
int cls_rwt();
int rwt_netr();
int fw1_syr();
int fw1_netr();
int fw2_netr();
int cwt_netr();
int sss_syn();
int sss_snd();
int sss_rcv();
int cls_nsy();
int cls_syn();
int cls_act();
int cls_err();
int (*fsactab[])() = {
/* 0 */ null,
/* 1 */ lis_cls, /* 1 */
/* 2 */ lis_netr, /* 3,4 */
/* 3 */ syr_netr, /* 5,33 */
/* 4 */ sys_cls, /* 6 */
/* 5 */ sys_netr, /* 8,9,11,32 */
/* 6 */ cls_opn, /* 10 */
/* 7 */ est_netr, /* 12,39 */
/* 8 */ cl2_clw, /* 13 */
/* 9 */ timers, /* 14,17,35,36,37,38 */
/* 10 */ cl1_netr, /* 15,18,22,23,30,39 */
/* 11 */ cl2_netr, /* 16,19,31,39 */
/* 12 */ cls_rwt, /* 20 */
/* 13 */ rwt_netr, /* 21,30 */
/* 14 */ fw1_syr, /* 24 */
/* 15 */ fw1_netr, /* 26,27,28,39 */
/* 16 */ fw2_netr, /* 29,39 */
/* 17 */ cwt_netr, /* 30,31,39 */
/* 18 */ sss_syn, /* 39 */
/* 19 */ sss_snd, /* 40,41 */
/* 20 */ sss_rcv, /* 42 */
/* 21 */ cls_nsy, /* 44 */
/* 22 */ cls_syn, /* 45 */
/* 23 */ cls_act, /* 47 ### this & INCLEAR unused on 4.2 */
/* 24 */ null,
/* 25 */ cls_err
};
#endif TRPT
#ifdef TCPDEBUG
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",
"TIMER",
"URECV",
"USEND",
"UABORT",
"NCLEAR"
};
char *tcptimers[] =
{
"",
"INIT",
"REXMT",
"REXMTTL",
"PERSIST",
"FINACK",
"DELACK",
"NOACT"
};
#endif TCPDEBUG