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)
71 #define ATMIOCTL_PORT_MIRRORING \
72 _IOWR(ATMDRV_MAJOR, 16, MirrorCfg)
73 #define ATMIOCTL_GET_PRIORITY_PACKET_GROUP \
74 _IOWR(ATMDRV_MAJOR, 17, ATMDRV_PRIORITY_PACKET_GROUP)
75 #define ATMIOCTL_SET_PRIORITY_PACKET_GROUP \
76 _IOWR(ATMDRV_MAJOR, 18, ATMDRV_PRIORITY_PACKET_GROUP)
77 #define ATMIOCTL_SET_TRAFFIC_TYPE \
78 _IOWR(ATMDRV_MAJOR, 19, ATMDRV_TRAFFIC_TYPE)
80 #define ATMIOCTL_NVRamCfg \
81 _IOWR(ATMDRV_MAJOR, 20, ATMDRV_SET_MAC)
84 #define MAX_ATMDRV_IOCTL_COMMANDS 21
89 BCMATM_STATUS baStatus;
90 } ATMDRV_STATUS_ONLY, *PATMDRV_STATUS_ONLY;
93 { PATM_INITIALIZATION_PARMS pInit;
94 BCMATM_STATUS baStatus;
95 } ATMDRV_INITIALIZE, *PATMDRV_INITIALIZE;
99 { PATM_MAC_PARMS pMac;
100 BCMATM_STATUS baStatus;
101 } ATMDRV_SET_MAC, *PATMDRV_SET_MAC;
107 UINT32 ulInterfaceId;
108 BCMATM_STATUS baStatus;
109 } ATMDRV_INTERFACE_ID, *PATMDRV_INTERFACE_ID;
113 UINT32 ulTrafficDescrTableSize;
114 BCMATM_STATUS baStatus;
115 } ATMDRV_TRAFFIC_DESCR_TABLE_SIZE, *PATMDRV_TRAFFIC_DESCR_TABLE_SIZE;
119 UINT32 ulGroupNumber;
120 PATM_PRIORITY_PACKET_ENTRY pPriorityPackets;
121 UINT32 ulPriorityPacketsSize;
122 BCMATM_STATUS baStatus;
123 } ATMDRV_PRIORITY_PACKET_GROUP, *PATMDRV_PRIORITY_PACKET_GROUP;
127 PATM_TRAFFIC_DESCR_PARM_ENTRY pTrafficDescrTable;
128 UINT32 ulTrafficDescrTableSize;
129 BCMATM_STATUS baStatus;
130 } ATMDRV_TRAFFIC_DESCR_TABLE, *PATMDRV_TRAFFIC_DESCR_TABLE;
134 UINT32 ulInterfaceId;
135 PATM_INTERFACE_CFG pInterfaceCfg;
136 BCMATM_STATUS baStatus;
137 } ATMDRV_INTERFACE_CFG, *PATMDRV_INTERFACE_CFG;
141 ATM_VCC_ADDR VccAddr;
142 PATM_VCC_CFG pVccCfg;
143 BCMATM_STATUS baStatus;
144 } ATMDRV_VCC_CFG, *PATMDRV_VCC_CFG;
148 UINT32 ulInterfaceId;
149 PATM_VCC_ADDR pVccAddrs;
151 UINT32 ulNumReturned;
152 BCMATM_STATUS baStatus;
153 } ATMDRV_VCC_ADDRS, *PATMDRV_VCC_ADDRS;
157 UINT32 ulInterfaceId;
158 PATM_INTERFACE_STATS pStatistics;
160 BCMATM_STATUS baStatus;
161 } ATMDRV_INTERFACE_STATISTICS, *PATMDRV_INTERFACE_STATISTICS;
165 ATM_VCC_ADDR VccAddr;
166 PATM_VCC_STATS pVccStatistics;
168 BCMATM_STATUS baStatus;
169 } ATMDRV_VCC_STATISTICS, *PATMDRV_VCC_STATISTICS;
173 UINT32 ulInterfaceId;
174 ATM_INTERFACE_LINK_INFO InterfaceCfg;
175 BCMATM_STATUS baStatus;
176 } ATMDRV_INTERFACE_LINK_INFO, *PATMDRV_INTERFACE_LINK_INFO;
180 ATM_VCC_ADDR VccAddr;
182 BCMATM_STATUS baStatus;
183 } ATMDRV_TEST, *PATMDRV_TEST;
188 BCMATM_STATUS baStatus;
190 ATMDRV_TRAFFIC_TYPE, *PATMDRV_TRAFFIC_TYPE;
194 ATM_VCC_ADDR VccAddr;
196 BCMATM_STATUS baStatus;
201 UINT32 minResponseTime;
202 UINT32 maxResponseTime;
203 UINT32 avgResponseTime;
204 } ATMDRV_OAM_LOOPBACK, *PATMDRV_OAM_LOOPBACK;
206 #include "portMirror.h"
208 #define OAM_TYPE_FUNCTION_BYTE_OFFSET 0
209 #define OAM_LB_INDICATION_BYTE_OFFSET 1
210 #define OAM_LB_CORRELATION_TAG_BYTE_OFFSET 2
211 #define OAM_LB_LOCATION_ID_BYTE_OFFSET 6
212 #define OAM_LB_SRC_ID_BYTE_OFFSET 22
213 #define OAM_LB_UNUSED_BYTE_OFFSET 38
214 #define OAM_RDI_UNUSED_BYTE_OFFSET 1
215 #define OAM_LB_CRC_BYTE_OFFSET 46
216 #define OAM_RDI_CRC_BYTE_OFFSET 46
217 #define OAM_LB_CORRELATION_TAG_LEN 4
218 #define OAM_LB_LOCATION_ID_LEN 16
219 #define OAM_LB_SRC_ID_LEN 16
220 #define OAM_LB_UNUSED_BYTE_LEN 8
221 #define OAM_RDI_UNUSED_BYTE_LEN 45
222 #define OAM_LB_CRC_BYTE_LEN 2
223 #define OAM_RDI_CRC_BYTE_LEN 2
224 #define OAM_FAULT_MANAGEMENT_LB 0x18
225 #define OAM_FAULT_MANAGEMENT_RDI 0x11
226 #define OAM_FAULT_MANAGEMENT_LB_REQUEST 1
227 #define OAM_FAULT_MANAGEMENT_LB_RESPOND 0
228 #define OAM_FAULT_MANAGEMENT_CORRELATION_VAL 0xbcbcbcbc
229 #define OAM_FAULT_MANAGEMENT_SRC_ID_3 0xffffffff
230 #define OAM_FAULT_MANAGEMENT_SRC_ID_2 0xffffffff
231 #define OAM_FAULT_MANAGEMENT_SRC_ID_1 0xffffffff
232 #define OAM_FAULT_MANAGEMENT_SRC_ID_0 0xffffffff
233 #define OAM_FAULT_MANAGEMENT_LOCATION_ID_3 0xffffffff
234 #define OAM_FAULT_MANAGEMENT_LOCATION_ID_2 0xffffffff
235 #define OAM_FAULT_MANAGEMENT_LOCATION_ID_1 0xffffffff
236 #define OAM_FAULT_MANAGEMENT_LOCATION_ID_0 0xffffffff
237 #define OAM_LB_UNUSED_BYTE_DEFAULT 0x6a
238 #define OAM_LB_SEGMENT_TYPE 0
239 #define OAM_LB_END_TO_END_TYPE 1
240 #define OAM_F4_LB_SEGMENT_TYPE 2
241 #define OAM_F4_LB_END_TO_END_TYPE 3
242 #define RM_PROT_ID_OFFSET 0
243 #define RM_MESSAGE_TYPE_OFFSET 1
244 #define RM_PROTOCOL_ID 1
245 #define RM_TYPE_DEFAULT 0x20 /* forward/source_generated/congested */
246 #define RM_UNUSED_BYTES_OFFSET 2
247 #define RM_UNUSED_BYTES_LEN 46
248 #define OAM_LOOPBACK_DEFAULT_REPETITION 1
249 #define OAM_LOOPBACK_DEFAULT_TIMEOUT 1000 /* msec */
250 #define OAM_LOOPBACK_RX_TIMEOUT_INTERVAL 10 /* check receive of OAM response every 10 ms */
252 #if defined(__cplusplus)
256 #endif // _ATMAPIDRV_H_