4 Copyright (c) 2002 Broadcom Corporation
6 No portions of this material may be reproduced in any form without the
10 Irvine, California 92619
11 All information contained in this document is Broadcom Corporation
12 company private, proprietary, and trade secret.
16 /***************************************************************************
17 * File Name : AtmApiDrv.h
19 * Description: This file contains the definitions and structures for the
20 * Linux IOCTL interface that used between the user mode ATM
21 * API library and the kernel ATM API driver.
23 * Updates : 09/15/2000 lat. Created.
24 ***************************************************************************/
26 #if !defined(_ATMAPIDRV_H_)
29 #if defined(__cplusplus)
34 #include <bcmatmapi.h>
37 #define ATMDRV_MAJOR 205 /* arbitrary unused value */
39 #define ATMIOCTL_INITIALIZE \
40 _IOWR(ATMDRV_MAJOR, 0, ATMDRV_INITIALIZE)
41 #define ATMIOCTL_UNINITIALIZE \
42 _IOR(ATMDRV_MAJOR, 1, ATMDRV_STATUS_ONLY)
43 #define ATMIOCTL_GET_INTERFACE_ID \
44 _IOWR(ATMDRV_MAJOR, 2, ATMDRV_INTERFACE_ID)
45 #define ATMIOCTL_GET_TRAFFIC_DESCR_TABLE_SIZE \
46 _IOR(ATMDRV_MAJOR, 3, ATMDRV_TRAFFIC_DESCR_TABLE_SIZE)
47 #define ATMIOCTL_GET_TRAFFIC_DESCR_TABLE \
48 _IOWR(ATMDRV_MAJOR, 4, ATMDRV_TRAFFIC_DESCR_TABLE)
49 #define ATMIOCTL_SET_TRAFFIC_DESCR_TABLE \
50 _IOWR(ATMDRV_MAJOR, 5, ATMDRV_TRAFFIC_DESCR_TABLE)
51 #define ATMIOCTL_GET_INTERFACE_CFG \
52 _IOWR(ATMDRV_MAJOR, 6, ATMDRV_INTERFACE_CFG)
53 #define ATMIOCTL_SET_INTERFACE_CFG \
54 _IOWR(ATMDRV_MAJOR, 7, ATMDRV_INTERFACE_CFG)
55 #define ATMIOCTL_GET_VCC_CFG \
56 _IOWR(ATMDRV_MAJOR, 8, ATMDRV_VCC_CFG)
57 #define ATMIOCTL_SET_VCC_CFG \
58 _IOWR(ATMDRV_MAJOR, 9, ATMDRV_VCC_CFG)
59 #define ATMIOCTL_GET_VCC_ADDRS \
60 _IOWR(ATMDRV_MAJOR, 10, ATMDRV_VCC_ADDRS)
61 #define ATMIOCTL_GET_INTERFACE_STATISTICS \
62 _IOWR(ATMDRV_MAJOR, 11, ATMDRV_INTERFACE_STATISTICS)
63 #define ATMIOCTL_GET_VCC_STATISTICS \
64 _IOWR(ATMDRV_MAJOR, 12, ATMDRV_VCC_STATISTICS)
65 #define ATMIOCTL_SET_INTERFACE_LINK_INFO \
66 _IOWR(ATMDRV_MAJOR, 13, ATMDRV_INTERFACE_LINK_INFO)
67 #define ATMIOCTL_TEST \
68 _IOWR(ATMDRV_MAJOR, 14, ATMDRV_TEST)
69 #define ATMIOCTL_OAM_LOOPBACK_TEST \
70 _IOWR(ATMDRV_MAJOR, 15, ATMDRV_OAM_LOOPBACK)
73 #define MAX_ATMDRV_IOCTL_COMMANDS 16
78 BCMATM_STATUS baStatus;
79 } ATMDRV_STATUS_ONLY, *PATMDRV_STATUS_ONLY;
82 { PATM_INITIALIZATION_PARMS pInit;
83 BCMATM_STATUS baStatus;
84 } ATMDRV_INITIALIZE, *PATMDRV_INITIALIZE;
91 BCMATM_STATUS baStatus;
92 } ATMDRV_INTERFACE_ID, *PATMDRV_INTERFACE_ID;
96 UINT32 ulTrafficDescrTableSize;
97 BCMATM_STATUS baStatus;
98 } ATMDRV_TRAFFIC_DESCR_TABLE_SIZE, *PATMDRV_TRAFFIC_DESCR_TABLE_SIZE;
102 PATM_TRAFFIC_DESCR_PARM_ENTRY pTrafficDescrTable;
103 UINT32 ulTrafficDescrTableSize;
104 BCMATM_STATUS baStatus;
105 } ATMDRV_TRAFFIC_DESCR_TABLE, *PATMDRV_TRAFFIC_DESCR_TABLE;
109 UINT32 ulInterfaceId;
110 PATM_INTERFACE_CFG pInterfaceCfg;
111 BCMATM_STATUS baStatus;
112 } ATMDRV_INTERFACE_CFG, *PATMDRV_INTERFACE_CFG;
116 ATM_VCC_ADDR VccAddr;
117 PATM_VCC_CFG pVccCfg;
118 BCMATM_STATUS baStatus;
119 } ATMDRV_VCC_CFG, *PATMDRV_VCC_CFG;
123 UINT32 ulInterfaceId;
124 PATM_VCC_ADDR pVccAddrs;
126 UINT32 ulNumReturned;
127 BCMATM_STATUS baStatus;
128 } ATMDRV_VCC_ADDRS, *PATMDRV_VCC_ADDRS;
132 UINT32 ulInterfaceId;
133 PATM_INTERFACE_STATS pStatistics;
135 BCMATM_STATUS baStatus;
136 } ATMDRV_INTERFACE_STATISTICS, *PATMDRV_INTERFACE_STATISTICS;
140 ATM_VCC_ADDR VccAddr;
141 PATM_VCC_STATS pVccStatistics;
143 BCMATM_STATUS baStatus;
144 } ATMDRV_VCC_STATISTICS, *PATMDRV_VCC_STATISTICS;
148 UINT32 ulInterfaceId;
149 ATM_INTERFACE_LINK_INFO InterfaceCfg;
150 BCMATM_STATUS baStatus;
151 } ATMDRV_INTERFACE_LINK_INFO, *PATMDRV_INTERFACE_LINK_INFO;
155 ATM_VCC_ADDR VccAddr;
157 BCMATM_STATUS baStatus;
158 } ATMDRV_TEST, *PATMDRV_TEST;
162 ATM_VCC_ADDR VccAddr;
164 BCMATM_STATUS baStatus;
165 } ATMDRV_OAM_LOOPBACK, *PATMDRV_OAM_LOOPBACK;
167 #define OAM_TYPE_FUNCTION_BYTE_OFFSET 0
168 #define OAM_LB_INDICATION_BYTE_OFFSET 1
169 #define OAM_LB_CORRELATION_TAG_BYTE_OFFSET 2
170 #define OAM_LB_LOCATION_ID_BYTE_OFFSET 6
171 #define OAM_LB_SRC_ID_BYTE_OFFSET 22
172 #define OAM_LB_UNUSED_BYTE_OFFSET 38
173 #define OAM_RDI_UNUSED_BYTE_OFFSET 1
174 #define OAM_LB_CRC_BYTE_OFFSET 46
175 #define OAM_RDI_CRC_BYTE_OFFSET 46
176 #define OAM_LB_CORRELATION_TAG_LEN 4
177 #define OAM_LB_LOCATION_ID_LEN 16
178 #define OAM_LB_SRC_ID_LEN 16
179 #define OAM_LB_UNUSED_BYTE_LEN 8
180 #define OAM_RDI_UNUSED_BYTE_LEN 45
181 #define OAM_LB_CRC_BYTE_LEN 2
182 #define OAM_RDI_CRC_BYTE_LEN 2
183 #define OAM_FAULT_MANAGEMENT_LB 0x18
184 #define OAM_FAULT_MANAGEMENT_RDI 0x11
185 #define OAM_FAULT_MANAGEMENT_LB_REQUEST 1
186 #define OAM_FAULT_MANAGEMENT_LB_RESPOND 0
187 #define OAM_FAULT_MANAGEMENT_CORRELATION_VAL 0xbcbcbcbc
188 #define OAM_FAULT_MANAGEMENT_SRC_ID_3 0xffffffff
189 #define OAM_FAULT_MANAGEMENT_SRC_ID_2 0xffffffff
190 #define OAM_FAULT_MANAGEMENT_SRC_ID_1 0xffffffff
191 #define OAM_FAULT_MANAGEMENT_SRC_ID_0 0xffffffff
192 #define OAM_FAULT_MANAGEMENT_LOCATION_ID_3 0xffffffff
193 #define OAM_FAULT_MANAGEMENT_LOCATION_ID_2 0xffffffff
194 #define OAM_FAULT_MANAGEMENT_LOCATION_ID_1 0xffffffff
195 #define OAM_FAULT_MANAGEMENT_LOCATION_ID_0 0xffffffff
196 #define OAM_LB_UNUSED_BYTE_DEFAULT 0x6a
197 #define OAM_LB_SEGMENT_TYPE 0
198 #define OAM_LB_END_TO_END_TYPE 1
199 #define OAM_F4_LB_SEGMENT_TYPE 2
200 #define OAM_F4_LB_END_TO_END_TYPE 3
201 #define RM_PROT_ID_OFFSET 0
202 #define RM_MESSAGE_TYPE_OFFSET 1
203 #define RM_PROTOCOL_ID 1
204 #define RM_TYPE_DEFAULT 0x20 /* forward/source_generated/congested */
205 #define RM_UNUSED_BYTES_OFFSET 2
206 #define RM_UNUSED_BYTES_LEN 46
207 #if defined(__cplusplus)
211 #endif // _ATMAPIDRV_H_