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)
81 #define MAX_ATMDRV_IOCTL_COMMANDS 20
86 BCMATM_STATUS baStatus;
87 } ATMDRV_STATUS_ONLY, *PATMDRV_STATUS_ONLY;
90 { PATM_INITIALIZATION_PARMS pInit;
91 BCMATM_STATUS baStatus;
92 } ATMDRV_INITIALIZE, *PATMDRV_INITIALIZE;
99 BCMATM_STATUS baStatus;
100 } ATMDRV_INTERFACE_ID, *PATMDRV_INTERFACE_ID;
104 UINT32 ulTrafficDescrTableSize;
105 BCMATM_STATUS baStatus;
106 } ATMDRV_TRAFFIC_DESCR_TABLE_SIZE, *PATMDRV_TRAFFIC_DESCR_TABLE_SIZE;
110 UINT32 ulGroupNumber;
111 PATM_PRIORITY_PACKET_ENTRY pPriorityPackets;
112 UINT32 ulPriorityPacketsSize;
113 BCMATM_STATUS baStatus;
114 } ATMDRV_PRIORITY_PACKET_GROUP, *PATMDRV_PRIORITY_PACKET_GROUP;
118 PATM_TRAFFIC_DESCR_PARM_ENTRY pTrafficDescrTable;
119 UINT32 ulTrafficDescrTableSize;
120 BCMATM_STATUS baStatus;
121 } ATMDRV_TRAFFIC_DESCR_TABLE, *PATMDRV_TRAFFIC_DESCR_TABLE;
125 UINT32 ulInterfaceId;
126 PATM_INTERFACE_CFG pInterfaceCfg;
127 BCMATM_STATUS baStatus;
128 } ATMDRV_INTERFACE_CFG, *PATMDRV_INTERFACE_CFG;
132 ATM_VCC_ADDR VccAddr;
133 PATM_VCC_CFG pVccCfg;
134 BCMATM_STATUS baStatus;
135 } ATMDRV_VCC_CFG, *PATMDRV_VCC_CFG;
139 UINT32 ulInterfaceId;
140 PATM_VCC_ADDR pVccAddrs;
142 UINT32 ulNumReturned;
143 BCMATM_STATUS baStatus;
144 } ATMDRV_VCC_ADDRS, *PATMDRV_VCC_ADDRS;
148 UINT32 ulInterfaceId;
149 PATM_INTERFACE_STATS pStatistics;
151 BCMATM_STATUS baStatus;
152 } ATMDRV_INTERFACE_STATISTICS, *PATMDRV_INTERFACE_STATISTICS;
156 ATM_VCC_ADDR VccAddr;
157 PATM_VCC_STATS pVccStatistics;
159 BCMATM_STATUS baStatus;
160 } ATMDRV_VCC_STATISTICS, *PATMDRV_VCC_STATISTICS;
164 UINT32 ulInterfaceId;
165 ATM_INTERFACE_LINK_INFO InterfaceCfg;
166 BCMATM_STATUS baStatus;
167 } ATMDRV_INTERFACE_LINK_INFO, *PATMDRV_INTERFACE_LINK_INFO;
171 ATM_VCC_ADDR VccAddr;
173 BCMATM_STATUS baStatus;
174 } ATMDRV_TEST, *PATMDRV_TEST;
179 BCMATM_STATUS baStatus;
181 ATMDRV_TRAFFIC_TYPE, *PATMDRV_TRAFFIC_TYPE;
185 ATM_VCC_ADDR VccAddr;
187 BCMATM_STATUS baStatus;
192 UINT32 minResponseTime;
193 UINT32 maxResponseTime;
194 UINT32 avgResponseTime;
195 } ATMDRV_OAM_LOOPBACK, *PATMDRV_OAM_LOOPBACK;
197 #include "portMirror.h"
199 #define OAM_TYPE_FUNCTION_BYTE_OFFSET 0
200 #define OAM_LB_INDICATION_BYTE_OFFSET 1
201 #define OAM_LB_CORRELATION_TAG_BYTE_OFFSET 2
202 #define OAM_LB_LOCATION_ID_BYTE_OFFSET 6
203 #define OAM_LB_SRC_ID_BYTE_OFFSET 22
204 #define OAM_LB_UNUSED_BYTE_OFFSET 38
205 #define OAM_RDI_UNUSED_BYTE_OFFSET 1
206 #define OAM_LB_CRC_BYTE_OFFSET 46
207 #define OAM_RDI_CRC_BYTE_OFFSET 46
208 #define OAM_LB_CORRELATION_TAG_LEN 4
209 #define OAM_LB_LOCATION_ID_LEN 16
210 #define OAM_LB_SRC_ID_LEN 16
211 #define OAM_LB_UNUSED_BYTE_LEN 8
212 #define OAM_RDI_UNUSED_BYTE_LEN 45
213 #define OAM_LB_CRC_BYTE_LEN 2
214 #define OAM_RDI_CRC_BYTE_LEN 2
215 #define OAM_FAULT_MANAGEMENT_LB 0x18
216 #define OAM_FAULT_MANAGEMENT_RDI 0x11
217 #define OAM_FAULT_MANAGEMENT_LB_REQUEST 1
218 #define OAM_FAULT_MANAGEMENT_LB_RESPOND 0
219 #define OAM_FAULT_MANAGEMENT_CORRELATION_VAL 0xbcbcbcbc
220 #define OAM_FAULT_MANAGEMENT_SRC_ID_3 0xffffffff
221 #define OAM_FAULT_MANAGEMENT_SRC_ID_2 0xffffffff
222 #define OAM_FAULT_MANAGEMENT_SRC_ID_1 0xffffffff
223 #define OAM_FAULT_MANAGEMENT_SRC_ID_0 0xffffffff
224 #define OAM_FAULT_MANAGEMENT_LOCATION_ID_3 0xffffffff
225 #define OAM_FAULT_MANAGEMENT_LOCATION_ID_2 0xffffffff
226 #define OAM_FAULT_MANAGEMENT_LOCATION_ID_1 0xffffffff
227 #define OAM_FAULT_MANAGEMENT_LOCATION_ID_0 0xffffffff
228 #define OAM_LB_UNUSED_BYTE_DEFAULT 0x6a
229 #define OAM_LB_SEGMENT_TYPE 0
230 #define OAM_LB_END_TO_END_TYPE 1
231 #define OAM_F4_LB_SEGMENT_TYPE 2
232 #define OAM_F4_LB_END_TO_END_TYPE 3
233 #define RM_PROT_ID_OFFSET 0
234 #define RM_MESSAGE_TYPE_OFFSET 1
235 #define RM_PROTOCOL_ID 1
236 #define RM_TYPE_DEFAULT 0x20 /* forward/source_generated/congested */
237 #define RM_UNUSED_BYTES_OFFSET 2
238 #define RM_UNUSED_BYTES_LEN 46
239 #define OAM_LOOPBACK_DEFAULT_REPETITION 1
240 #define OAM_LOOPBACK_DEFAULT_TIMEOUT 1000 /* msec */
241 #define OAM_LOOPBACK_RX_TIMEOUT_INTERVAL 10 /* check receive of OAM response every 10 ms */
243 #if defined(__cplusplus)
247 #endif // _ATMAPIDRV_H_