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$
27 *
28 */
29
30 /*
31 * Core ATM Services
32 * -----------------
33 *
34 * ATM Signalling Manager definitions
35 *
36 */
37
38 #ifndef _NETATM_ATM_SIGMGR_H
39 #define _NETATM_ATM_SIGMGR_H
40
41 #ifdef _KERNEL
42 /*
43 * Structure common to all ATM Signalling Managers. Each Signalling
44 * Manager must create one of these and use it to register itself
45 * with the system.
46 */
47 struct sigmgr {
48 struct sigmgr *sm_next; /* Next registered sigmgr */
49 u_char sm_proto; /* Signalling protocol (see below) */
50 struct siginst *sm_prinst; /* List of protocol instances */
51 /* Exported functions */
52 int (*sm_attach) /* Attach interface */
53 (struct sigmgr *, struct atm_pif *);
54 int (*sm_detach) /* Detach interface */
55 (struct atm_pif *);
56 int (*sm_setup) /* Connection setup */
57 (Atm_connvc *, int *);
58 int (*sm_accept) /* Call accepted */
59 (struct vccb *, int *);
60 int (*sm_reject) /* Call rejected */
61 (struct vccb *, int *);
62 int (*sm_release) /* Connection release */
63 (struct vccb *, int *);
64 int (*sm_free) /* Free connection resources */
65 (struct vccb *);
66 int (*sm_ioctl) /* Ioctl handler */
67 (int, caddr_t, caddr_t);
68 };
69 #endif /* _KERNEL */
70
71 /*
72 * ATM Signalling Protocols
73 */
74 #define ATM_SIG_PVC 1 /* PVC-only */
75 #define ATM_SIG_SPANS 2 /* Fore Systems SPANS */
76 #define ATM_SIG_UNI30 3 /* ATM Forum UNI 3.0 */
77 #define ATM_SIG_UNI31 4 /* ATM Forum UNI 3.1 */
78 #define ATM_SIG_UNI40 5 /* ATM Forum UNI 4.0 */
79
80
81 #ifdef _KERNEL
82 /*
83 * Signalling Protocol Instance control block header. Common header for
84 * every signalling protocol instance control block.
85 */
86 struct siginst {
87 struct siginst *si_next; /* Next sigmgr protocol instance */
88 struct atm_pif *si_pif; /* Device interface */
89 Atm_addr si_addr; /* Interface ATM address */
90 Atm_addr si_subaddr; /* Interface ATM subaddress */
91 Queue_t si_vccq; /* VCCB queue */
92 u_short si_state; /* Protocol state (sigmgr specific) */
93
94 /* Exported protocol services */
95 struct ip_serv *si_ipserv; /* IP/ATM services */
96 };
97
98
99 /*
100 * Sigmgr function return codes
101 */
102 #define CALL_PROCEEDING 1 /* Connection request is in progress */
103 #define CALL_FAILED 2 /* Connection request failed */
104 #define CALL_CONNECTED 3 /* Connection setup successful */
105 #define CALL_CLEARED 4 /* Connection has been terminated */
106
107 #endif /* _KERNEL */
108
109 #endif /* _NETATM_ATM_SIGMGR_H */
Cache object: c3915eda293a986244ccee61e0803284
|