date and time created 82/07/31 21:28:05 by root
[unix-history] / usr / src / sys / deprecated / netdecnet / nsp_var.h
CommitLineData
24d3bb4c 1/* nsp_var.h 1.2 82/05/15 */
4a31ad56
SL
2
3/*
4 * Kernel variables for NSP
5 */
6
7typedef short nsp_seq;
8
9/*
10 * NSP control block, ala Session Control Port,
11 * p. 41-44, NSP spec.
12 */
13struct 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