add NFS leasing
[unix-history] / usr / src / sys / netccitt / hd_var.h
CommitLineData
fa58c82e
KS
1/*
2 * Copyright (c) University of British Columbia, 1984
3 * Copyright (c) 1990 The Regents of the University of California.
4 * All rights reserved.
5 *
6 * This code is derived from software contributed to Berkeley by
7 * the Laboratory for Computation Vision and the Computer Science Department
8 * of the University of British Columbia.
9 *
10 * %sccs.include.redist.c%
11 *
315951e8 12 * @(#)hd_var.h 7.4 (Berkeley) %G%
fa58c82e 13 */
82237f5b
KS
14
15/*
16 *
17 * hdlc control block
18 *
19 */
20
21struct hdtxq {
22 struct mbuf *head;
23 struct mbuf *tail;
24};
25
26struct hdcb {
27 struct hdcb *hd_next; /* pointer to next hdlc control block */
28 char hd_state; /* link state */
29 char hd_vs; /* send state variable */
30 char hd_vr; /* receive state variable */
31 char hd_lastrxnr; /* last received N(R) */
32 char hd_lasttxnr; /* last transmitted N(R) */
33 char hd_condition;
34#define TIMER_RECOVERY_CONDITION 0x01
35#define REJ_CONDITION 0x02
36#define REMOTE_RNR_CONDITION 0X04
37 char hd_retxcnt;
38 char hd_xx;
39 struct hdtxq hd_txq;
40 struct mbuf *hd_retxq[MODULUS];
41 char hd_retxqi;
42 char hd_rrtimer;
43 char hd_timer;
44#define SET_TIMER(hdp) hdp->hd_timer = hd_t1
45#define KILL_TIMER(hdp) hdp->hd_timer = 0
46 char hd_dontcopy; /* if-driver doesn't free I-frames */
47 struct ifnet *hd_ifp; /* device's network visible interface */
b84e7ca8 48 struct ifaddr *hd_ifa; /* device's X.25 network address */
315951e8
KS
49 struct x25config *hd_xcp;
50 caddr_t hd_pkp; /* Level III junk */
b84e7ca8 51 int (*hd_output)(); /* separate entry for HDLC direct output */
82237f5b
KS
52
53 /* link statistics */
54
55 long hd_iframes_in;
56 long hd_iframes_out;
57 long hd_rrs_in;
58 long hd_rrs_out;
59 short hd_rejs_in;
60 short hd_rejs_out;
61 long hd_window_condition;
62 short hd_invalid_ns;
63 short hd_invalid_nr;
64 short hd_timeouts;
65 short hd_resets;
66 short hd_unknown;
67 short hd_frmrs_in;
68 short hd_frmrs_out;
69 short hd_rnrs_in;
70 short hd_rnrs_out;
71};
72
73#ifdef KERNEL
74struct hdcb *hdcbhead; /* head of linked list of hdcb's */
75struct Frmr_frame hd_frmr; /* rejected frame diagnostic info */
76struct ifqueue hdintrq; /* hdlc packet input queue */
77
78int hd_t1; /* timer T1 value */
79int hd_t3; /* RR send timer */
80int hd_n2; /* frame retransmission limit */
81#endif