Commit | Line | Data |
---|---|---|
24d3bb4c | 1 | /* nsp_var.h 1.2 82/05/15 */ |
4a31ad56 SL |
2 | |
3 | /* | |
4 | * Kernel variables for NSP | |
5 | */ | |
6 | ||
7 | typedef short nsp_seq; | |
8 | ||
9 | /* | |
10 | * NSP control block, ala Session Control Port, | |
11 | * p. 41-44, NSP spec. | |
12 | */ | |
13 | struct nspcb { | |
14 | struct nspcb *n_next, *n_prev; /* list of all NSP cb's */ | |
15 | struct nspcb *n_head; /* pointer to head of list */ | |
16 | struct nspq *nq_next, *nq_prev; /* retransmit queue */ | |
17 | /* NEED STUFF FOR INPUT REASSEMBLY */ | |
18 | struct socket *n_socket; /* back pointer to socket */ | |
19 | char n_state; /* state of the port */ | |
20 | char n_flags; /* flags, see below */ | |
21 | short n_retrans; /* count of message retransmissions */ | |
22 | short n_segsize; /* transmit segment size */ | |
23 | u_short n_node; /* remote node address */ | |
24 | u_short n_loc; /* local link address */ | |
25 | u_short n_rem; /* remote link address */ | |
26 | /* timer variables */ | |
27 | u_short nt_dat; /* timeout for data segments */ | |
28 | u_short nt_oth; /* timeout for other data */ | |
29 | u_short nt_con; /* timeout for connect, disconnect */ | |
30 | /* sequence variables */ | |
31 | nsp_seq nn_dat; /* number of next data segment to transmit */ | |
32 | nsp_seq nn_oth; /* number of next other data segment */ | |
33 | nsp_seq nn_high; /* highest numbered data segment queued */ | |
34 | /* error control variables */ | |
35 | nsp_seq na_xmtdat; /* number of last data segment we acked */ | |
36 | nsp_seq na_xmtoth; /* number of last other data we acked */ | |
37 | nsp_seq na_rcvdat; /* number of highest data segment ack rcv'ed */ | |
38 | /* flow control variables */ | |
39 | char nf_locdat; /* data request count */ | |
40 | char nf_locint; /* flow control state for receiving intr data */ | |
41 | char nf_remdat; /* data request count from remote */ | |
42 | char nf_remint; /* interrupt request count from remote */ | |
43 | /* buffers for optional data */ | |
44 | u_short nb_src; /* source node addr for rcv CI */ | |
45 | struct mbuf *nb_con; /* data for rcv or xmt CI */ | |
46 | struct mbuf *nb_xmt; /* data for xmt CC, DI, Intr */ | |
47 | struct mbuf *nb_rcv; /* data for rcv CC, DI, Intr */ | |
48 | }; | |
49 | ||
50 | #define sotonspcb(so) ((struct nspcb *)(so)->so_pcb) | |
51 | ||
52 | /* port states, p. 34-36 */ | |
53 | #define NS_O 0 /* open */ | |
54 | #define NS_CR 1 /* connect received */ | |
55 | #define NS_DR 2 /* disconnect reject */ | |
56 | #define NS_DRC 3 /* disconnect reject complete */ | |
57 | #define NS_CC 4 /* connect confirm */ | |
58 | #define NS_CI 5 /* connect initiate */ | |
59 | #define NS_NR 6 /* no resources */ | |
60 | #define NS_NC 7 /* no communication */ | |
61 | #define NS_CD 8 /* connect delivered */ | |
62 | #define NS_RJ 9 /* rejected */ | |
63 | #define NS_RUN 10 /* running */ | |
64 | #define NS_DI 11 /* disconnect initiate */ | |
65 | #define NS_DIC 12 /* disconnect complete */ | |
66 | #define NS_DN 13 /* disconnect notification */ | |
67 | #define NS_CL 14 /* closed */ | |
68 | #define NS_CN 15 /* closed notification */ | |
69 | #define NS_LI 16 /* listen for connection */ | |
70 | ||
71 | /* flags */ | |
72 | #define NF_DATACK 0001 /* data acknowledgement required */ | |
73 | #define NF_OTHACK 0002 /* other data acknowledgement required */ | |
74 | #define NF_CON 0004 /* connect data available */ | |
75 | #define NF_INTAVAIL 0010 /* transmit interrupt data available */ | |
76 | #define NF_OTHSENT 0020 /* other data message has been sent */ | |
77 | #define NF_OTHINTR 0040 /* other data message was an interrupt msg */ | |
78 | #define NF_DATOFF 0100 /* on/off switch for data flow control */ | |
79 | ||
80 | /* locint states */ | |
81 | /* I STILL DON'T UNDERSTAND THIS WELL ENOUGH */ | |
82 | #define NFL_EMPTY 0 | |
83 | #define NFL_INTR 1 | |
84 | #define NFL_SEND 2 |