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)
75 #define MAX_ATMDRV_IOCTL_COMMANDS 17
80 BCMATM_STATUS baStatus;
81 } ATMDRV_STATUS_ONLY, *PATMDRV_STATUS_ONLY;
84 { PATM_INITIALIZATION_PARMS pInit;
85 BCMATM_STATUS baStatus;
86 } ATMDRV_INITIALIZE, *PATMDRV_INITIALIZE;
93 BCMATM_STATUS baStatus;
94 } ATMDRV_INTERFACE_ID, *PATMDRV_INTERFACE_ID;
98 UINT32 ulTrafficDescrTableSize;
99 BCMATM_STATUS baStatus;
100 } ATMDRV_TRAFFIC_DESCR_TABLE_SIZE, *PATMDRV_TRAFFIC_DESCR_TABLE_SIZE;
104 PATM_TRAFFIC_DESCR_PARM_ENTRY pTrafficDescrTable;
105 UINT32 ulTrafficDescrTableSize;
106 BCMATM_STATUS baStatus;
107 } ATMDRV_TRAFFIC_DESCR_TABLE, *PATMDRV_TRAFFIC_DESCR_TABLE;
111 UINT32 ulInterfaceId;
112 PATM_INTERFACE_CFG pInterfaceCfg;
113 BCMATM_STATUS baStatus;
114 } ATMDRV_INTERFACE_CFG, *PATMDRV_INTERFACE_CFG;
118 ATM_VCC_ADDR VccAddr;
119 PATM_VCC_CFG pVccCfg;
120 BCMATM_STATUS baStatus;
121 } ATMDRV_VCC_CFG, *PATMDRV_VCC_CFG;
125 UINT32 ulInterfaceId;
126 PATM_VCC_ADDR pVccAddrs;
128 UINT32 ulNumReturned;
129 BCMATM_STATUS baStatus;
130 } ATMDRV_VCC_ADDRS, *PATMDRV_VCC_ADDRS;
134 UINT32 ulInterfaceId;
135 PATM_INTERFACE_STATS pStatistics;
137 BCMATM_STATUS baStatus;
138 } ATMDRV_INTERFACE_STATISTICS, *PATMDRV_INTERFACE_STATISTICS;
142 ATM_VCC_ADDR VccAddr;
143 PATM_VCC_STATS pVccStatistics;
145 BCMATM_STATUS baStatus;
146 } ATMDRV_VCC_STATISTICS, *PATMDRV_VCC_STATISTICS;
150 UINT32 ulInterfaceId;
151 ATM_INTERFACE_LINK_INFO InterfaceCfg;
152 BCMATM_STATUS baStatus;
153 } ATMDRV_INTERFACE_LINK_INFO, *PATMDRV_INTERFACE_LINK_INFO;
157 ATM_VCC_ADDR VccAddr;
159 BCMATM_STATUS baStatus;
160 } ATMDRV_TEST, *PATMDRV_TEST;
164 ATM_VCC_ADDR VccAddr;
166 BCMATM_STATUS baStatus;
167 } ATMDRV_OAM_LOOPBACK, *PATMDRV_OAM_LOOPBACK;
169 #include "portMirror.h"
171 #define OAM_TYPE_FUNCTION_BYTE_OFFSET 0
172 #define OAM_LB_INDICATION_BYTE_OFFSET 1
173 #define OAM_LB_CORRELATION_TAG_BYTE_OFFSET 2
174 #define OAM_LB_LOCATION_ID_BYTE_OFFSET 6
175 #define OAM_LB_SRC_ID_BYTE_OFFSET 22
176 #define OAM_LB_UNUSED_BYTE_OFFSET 38
177 #define OAM_RDI_UNUSED_BYTE_OFFSET 1
178 #define OAM_LB_CRC_BYTE_OFFSET 46
179 #define OAM_RDI_CRC_BYTE_OFFSET 46
180 #define OAM_LB_CORRELATION_TAG_LEN 4
181 #define OAM_LB_LOCATION_ID_LEN 16
182 #define OAM_LB_SRC_ID_LEN 16
183 #define OAM_LB_UNUSED_BYTE_LEN 8
184 #define OAM_RDI_UNUSED_BYTE_LEN 45
185 #define OAM_LB_CRC_BYTE_LEN 2
186 #define OAM_RDI_CRC_BYTE_LEN 2
187 #define OAM_FAULT_MANAGEMENT_LB 0x18
188 #define OAM_FAULT_MANAGEMENT_RDI 0x11
189 #define OAM_FAULT_MANAGEMENT_LB_REQUEST 1
190 #define OAM_FAULT_MANAGEMENT_LB_RESPOND 0
191 #define OAM_FAULT_MANAGEMENT_CORRELATION_VAL 0xbcbcbcbc
192 #define OAM_FAULT_MANAGEMENT_SRC_ID_3 0xffffffff
193 #define OAM_FAULT_MANAGEMENT_SRC_ID_2 0xffffffff
194 #define OAM_FAULT_MANAGEMENT_SRC_ID_1 0xffffffff
195 #define OAM_FAULT_MANAGEMENT_SRC_ID_0 0xffffffff
196 #define OAM_FAULT_MANAGEMENT_LOCATION_ID_3 0xffffffff
197 #define OAM_FAULT_MANAGEMENT_LOCATION_ID_2 0xffffffff
198 #define OAM_FAULT_MANAGEMENT_LOCATION_ID_1 0xffffffff
199 #define OAM_FAULT_MANAGEMENT_LOCATION_ID_0 0xffffffff
200 #define OAM_LB_UNUSED_BYTE_DEFAULT 0x6a
201 #define OAM_LB_SEGMENT_TYPE 0
202 #define OAM_LB_END_TO_END_TYPE 1
203 #define OAM_F4_LB_SEGMENT_TYPE 2
204 #define OAM_F4_LB_END_TO_END_TYPE 3
205 #define RM_PROT_ID_OFFSET 0
206 #define RM_MESSAGE_TYPE_OFFSET 1
207 #define RM_PROTOCOL_ID 1
208 #define RM_TYPE_DEFAULT 0x20 /* forward/source_generated/congested */
209 #define RM_UNUSED_BYTES_OFFSET 2
210 #define RM_UNUSED_BYTES_LEN 46
211 #if defined(__cplusplus)
215 #endif // _ATMAPIDRV_H_