fetch.9: Minor fixes.
[dragonfly.git] / sys / netproto / atm / atm_vc.h
blob1b0dca9670ed4d83f81e60999427e719bfad9b29
1 /*
3 * ===================================
4 * HARP | Host ATM Research Platform
5 * ===================================
8 * This Host ATM Research Platform ("HARP") file (the "Software") is
9 * made available by Network Computing Services, Inc. ("NetworkCS")
10 * "AS IS". NetworkCS does not provide maintenance, improvements or
11 * support of any kind.
13 * NETWORKCS MAKES NO WARRANTIES OR REPRESENTATIONS, EXPRESS OR IMPLIED,
14 * INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY
15 * AND FITNESS FOR A PARTICULAR PURPOSE, AS TO ANY ELEMENT OF THE
16 * SOFTWARE OR ANY SUPPORT PROVIDED IN CONNECTION WITH THIS SOFTWARE.
17 * In no event shall NetworkCS be responsible for any damages, including
18 * but not limited to consequential damages, arising from or relating to
19 * any use of the Software or related support.
21 * Copyright 1994-1998 Network Computing Services, Inc.
23 * Copies of this Software may be made, however, the above copyright
24 * notice must be reproduced on all copies.
26 * @(#) $FreeBSD: src/sys/netatm/atm_vc.h,v 1.2 1999/08/28 00:48:39 peter Exp $
27 * @(#) $DragonFly: src/sys/netproto/atm/atm_vc.h,v 1.2 2003/06/17 04:28:49 dillon Exp $
32 * Core ATM Services
33 * -----------------
35 * ATM Virtual Channel definitions
39 #ifndef _NETATM_ATM_VC_H
40 #define _NETATM_ATM_VC_H
43 #ifdef ATM_KERNEL
45 * ATM Virtual Channel Connection control block. All vccb's are created
46 * and controlled by an ATM signalling manager. Each ATM signalling
47 * protocol will also have its own protocol-specific vccb format. Each
48 * of these protocol vccb's must have this common block at the beginning.
50 struct vccb {
51 u_char vc_type; /* VCC type (see below) */
52 u_char vc_proto; /* Signalling protocol */
53 u_char vc_sstate; /* Signalling state (sigmgr specific) */
54 u_char vc_ustate; /* User interface state (see below) */
55 struct atm_pif *vc_pif; /* Physical interface */
56 struct atm_nif *vc_nif; /* Network interface */
57 Qelem_t vc_sigelem; /* Signalling instance vccb queue */
58 struct atm_time vc_time; /* Timer controls */
59 u_short vc_vpi; /* Virtual Path Identifier */
60 u_short vc_vci; /* Virtual Channel Identifier */
61 Atm_connvc *vc_connvc; /* CM connection VCC instance */
62 long vc_ipdus; /* PDUs received from VCC */
63 long vc_opdus; /* PDUs sent to VCC */
64 long vc_ibytes; /* Bytes received from VCC */
65 long vc_obytes; /* Bytes sent to VCC */
66 long vc_ierrors; /* Errors receiving from VCC */
67 long vc_oerrors; /* Errors sending to VCC */
68 time_t vc_tstamp; /* State transition timestamp */
70 #endif /* ATM_KERNEL */
73 * VCC Types
75 #define VCC_PVC 0x01 /* PVC (Permanent Virtual Channel) */
76 #define VCC_SVC 0x02 /* SVC (Switched Virtual Channel) */
77 #define VCC_IN 0x04 /* Inbound VCC */
78 #define VCC_OUT 0x08 /* Outbound VCC */
81 * VCC Signalling-to-User Interface States
83 #define VCCU_NULL 0 /* No state */
84 #define VCCU_POPEN 1 /* Pending open completion */
85 #define VCCU_OPEN 2 /* Connection is open */
86 #define VCCU_CLOSED 3 /* Connection has been terminated */
87 #define VCCU_ABORT 4 /* Connection being aborted */
90 #endif /* _NETATM_ATM_VC_H */