- New function Buf_Append(), which is given a pointer to a string to
[dragonfly.git] / sys / netproto / atm / atm_vc.h
1 /*
2  *
3  * ===================================
4  * HARP  |  Host ATM Research Platform
5  * ===================================
6  *
7  *
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.
12  *
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.
20  *
21  * Copyright 1994-1998 Network Computing Services, Inc.
22  *
23  * Copies of this Software may be made, however, the above copyright
24  * notice must be reproduced on all copies.
25  *
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 $
28  *
29  */
30
31 /*
32  * Core ATM Services
33  * -----------------
34  *
35  * ATM Virtual Channel definitions 
36  *
37  */
38
39 #ifndef _NETATM_ATM_VC_H
40 #define _NETATM_ATM_VC_H
41
42
43 #ifdef ATM_KERNEL
44 /*
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.
49  */
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 */
69 };
70 #endif  /* ATM_KERNEL */
71
72 /*
73  * VCC Types
74  */
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 */
79
80 /*
81  * VCC Signalling-to-User Interface States
82  */
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 */
88
89
90 #endif  /* _NETATM_ATM_VC_H */