1 /******************************************************************************
3 ** FILE NAME : ifx_atm.h
9 ** DESCRIPTION : Global ATM driver header file
10 ** COPYRIGHT : Copyright (c) 2006
11 ** Infineon Technologies AG
12 ** Am Campeon 1-12, 85579 Neubiberg, Germany
14 ** This program is free software; you can redistribute it and/or modify
15 ** it under the terms of the GNU General Public License as published by
16 ** the Free Software Foundation; either version 2 of the License, or
17 ** (at your option) any later version.
20 ** $Date $Author $Comment
21 ** 07 JUL 2009 Xu Liang Init Version
22 *******************************************************************************/
30 \defgroup IFX_ATM UEIP Project - ATM driver module
31 \brief UEIP Project - ATM driver module, support Danube, Amazon-SE, AR9, VR9.
35 \defgroup IFX_ATM_IOCTL IOCTL Commands
37 \brief IOCTL Commands used by user application.
41 \defgroup IFX_ATM_STRUCT Structures
43 \brief Structures used by user application.
49 \brief ATM driver header file
55 * ####################################
57 * ####################################
61 \addtogroup IFX_ATM_STRUCT
70 \struct atm_cell_ifEntry_t
71 \brief Structure used for Cell Level MIB Counters.
73 User application use this structure to call IOCTL command "PPE_ATM_MIB_CELL".
76 __u32 ifHCInOctets_h
; /*!< byte counter of ingress cells (upper 32 bits, total 64 bits) */
77 __u32 ifHCInOctets_l
; /*!< byte counter of ingress cells (lower 32 bits, total 64 bits) */
78 __u32 ifHCOutOctets_h
; /*!< byte counter of egress cells (upper 32 bits, total 64 bits) */
79 __u32 ifHCOutOctets_l
; /*!< byte counter of egress cells (lower 32 bits, total 64 bits) */
80 __u32 ifInErrors
; /*!< counter of error ingress cells */
81 __u32 ifInUnknownProtos
; /*!< counter of unknown ingress cells */
82 __u32 ifOutErrors
; /*!< counter of error egress cells */
86 \struct atm_aal5_ifEntry_t
87 \brief Structure used for AAL5 Frame Level MIB Counters.
89 User application use this structure to call IOCTL command "PPE_ATM_MIB_AAL5".
92 __u32 ifHCInOctets_h
; /*!< byte counter of ingress packets (upper 32 bits, total 64 bits) */
93 __u32 ifHCInOctets_l
; /*!< byte counter of ingress packets (lower 32 bits, total 64 bits) */
94 __u32 ifHCOutOctets_h
; /*!< byte counter of egress packets (upper 32 bits, total 64 bits) */
95 __u32 ifHCOutOctets_l
; /*!< byte counter of egress packets (lower 32 bits, total 64 bits) */
96 __u32 ifInUcastPkts
; /*!< counter of ingress packets */
97 __u32 ifOutUcastPkts
; /*!< counter of egress packets */
98 __u32 ifInErrors
; /*!< counter of error ingress packets */
99 __u32 ifInDiscards
; /*!< counter of dropped ingress packets */
100 __u32 ifOutErros
; /*!< counter of error egress packets */
101 __u32 ifOutDiscards
; /*!< counter of dropped egress packets */
102 } atm_aal5_ifEntry_t
;
105 \struct atm_aal5_vcc_t
106 \brief Structure used for per PVC AAL5 Frame Level MIB Counters.
108 This structure is a part of structure "atm_aal5_vcc_x_t".
111 __u32 aal5VccCrcErrors
; /*!< counter of ingress packets with CRC error */
112 __u32 aal5VccSarTimeOuts
; /*!< counter of ingress packets with Re-assemble timeout */ //no timer support yet
113 __u32 aal5VccOverSizedSDUs
; /*!< counter of oversized ingress packets */
117 \struct atm_aal5_vcc_x_t
118 \brief Structure used for per PVC AAL5 Frame Level MIB Counters.
120 User application use this structure to call IOCTL command "PPE_ATM_MIB_VCC".
123 int vpi
; /*!< VPI of the VCC to get MIB counters */
124 int vci
; /*!< VCI of the VCC to get MIB counters */
125 atm_aal5_vcc_t mib_vcc
; /*!< structure to get MIB counters */
133 * ####################################
135 * ####################################
139 \addtogroup IFX_ATM_IOCTL
147 \brief ATM IOCTL Magic Number
149 #define PPE_ATM_IOC_MAGIC 'o'
151 \brief ATM IOCTL Command - Get Cell Level MIB Counters
153 This command is obsolete. User can get cell level MIB from DSL API.
154 This command uses structure "atm_cell_ifEntry_t" as parameter for output of MIB counters.
156 #define PPE_ATM_MIB_CELL _IOW(PPE_ATM_IOC_MAGIC, 0, atm_cell_ifEntry_t)
158 \brief ATM IOCTL Command - Get AAL5 Level MIB Counters
160 Get AAL5 packet counters.
161 This command uses structure "atm_aal5_ifEntry_t" as parameter for output of MIB counters.
163 #define PPE_ATM_MIB_AAL5 _IOW(PPE_ATM_IOC_MAGIC, 1, atm_aal5_ifEntry_t)
165 \brief ATM IOCTL Command - Get Per PVC MIB Counters
167 Get AAL5 packet counters for each PVC.
168 This command uses structure "atm_aal5_vcc_x_t" as parameter for input of VPI/VCI information and output of MIB counters.
170 #define PPE_ATM_MIB_VCC _IOWR(PPE_ATM_IOC_MAGIC, 2, atm_aal5_vcc_x_t)
172 \brief Total Number of ATM IOCTL Commands
174 #define PPE_ATM_IOC_MAXNR 3
181 * ####################################
183 * ####################################
187 struct port_cell_info
{
188 unsigned int port_num
;
189 unsigned int tx_link_rate
[2];