xref: /original-bsd/sys/netccitt/pk_var.h (revision 8e206d2f)
1 /* Copyright (c) University of British Columbia, 1984 */
2 
3 
4 /*
5  *
6  *  X.25 Logical Channel Descriptor
7  *
8  */
9 
10 struct pklcd {
11 	short   lcd_lcn;		/* Logical channel number */
12 	short   lcd_state;		/* Logical Channel state */
13         bool	lcd_intrconf_pending;	/* Interrupt confirmation pending */
14 	octet	lcd_intrdata;		/* Octet of incoming intr data */
15 	short   lcd_timer;		/* Various timer values */
16 	char	lcd_retry;		/* Timer retry count */
17 	char	lcd_rsn;		/* Seq no of last received packet */
18 	char	lcd_ssn;		/* Seq no of next packet to send */
19 	char	lcd_output_window;	/* Output flow control window */
20 	char	lcd_input_window;	/* Input flow control window */
21 	char	lcd_last_transmitted_pr;/* Last Pr value transmitted */
22         bool	lcd_rnr_condition;	/* Remote in busy condition */
23         bool	lcd_window_condition;	/* Output window size exceeded */
24         bool	lcd_reset_condition;	/* True, if waiting reset confirm */
25 	char	lcd_packetsize;		/* Maximum packet size */
26 	char	lcd_windowsize;		/* Window size - both directions */
27         octet	lcd_closed_user_group;	/* Closed user group specification */
28 	char	lcd_flags;		/* copy of sockaddr_x25 op_flags */
29 	struct	x25_packet *lcd_template;/* Address of current packet */
30 	struct	socket *lcd_so;		/* Socket addr for connection */
31 	struct	sockaddr_x25 *lcd_craddr;/* Calling address */
32 	struct	sockaddr_x25 *lcd_ceaddr;/* Called address */
33 	time_t	lcd_stime;		/* time circuit established */
34 	long    lcd_txcnt;		/* Data packet transmit count */
35 	long    lcd_rxcnt;		/* Data packet receive count */
36 	short   lcd_intrcnt;		/* Interrupt packet transmit count */
37 	struct	pklcd *lcd_listen;	/* Next lcd on listen queue */
38 	struct	pkcb *lcd_pkp;		/* network this lcd is attached to */
39 };
40 
41 /*
42  * Per network information, allocated dynamically
43  * when a new network is configured.
44  */
45 
46 struct	pkcb {
47 	struct	pkcb *pk_next;
48 	short	pk_state;		/* packet level status */
49 	short	pk_maxlcn;		/* local copy of xc_maxlcn */
50 	int	(*pk_output) ();	/* link level output procedure */
51 	struct	x25config *pk_xcp;	/* network specific configuration */
52 	struct	pklcd *pk_chan[1];	/* actual size == xc_maxlcn+1 */
53 };
54 
55 #ifdef KERNEL
56 struct	pkcb *pkcbhead;		/* head of linked list of networks */
57 struct	pklcd *pk_listenhead;
58 
59 char	*pk_name[], *pk_state[];
60 int	pk_t20, pk_t21, pk_t22, pk_t23;
61 #endif
62