source: trunk/package/ifxmips-dsl-api/src/ifxmips_atm.h @ 18259

Last change on this file since 18259 was 18259, checked in by blogic, 7 years ago

[ifxmips] adds dsl support, thank you infineon/lantiq

File size: 5.0 KB
Line 
1/******************************************************************************
2**
3** FILE NAME    : ifx_atm.h
4** PROJECT      : UEIP
5** MODULES      : ATM
6**
7** DATE         : 17 Jun 2009
8** AUTHOR       : Xu Liang
9** DESCRIPTION  : Global ATM driver header file
10** COPYRIGHT    :       Copyright (c) 2006
11**                      Infineon Technologies AG
12**                      Am Campeon 1-12, 85579 Neubiberg, Germany
13**
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.
18**
19** HISTORY
20** $Date        $Author         $Comment
21** 07 JUL 2009  Xu Liang        Init Version
22*******************************************************************************/
23
24#ifndef IFX_ATM_H
25#define IFX_ATM_H
26
27
28
29/*!
30  \defgroup IFX_ATM UEIP Project - ATM driver module
31  \brief UEIP Project - ATM driver module, support Danube, Amazon-SE, AR9, VR9.
32 */
33
34/*!
35  \defgroup IFX_ATM_IOCTL IOCTL Commands
36  \ingroup IFX_ATM
37  \brief IOCTL Commands used by user application.
38 */
39
40/*!
41  \defgroup IFX_ATM_STRUCT Structures
42  \ingroup IFX_ATM
43  \brief Structures used by user application.
44 */
45
46/*!
47  \file ifx_atm.h
48  \ingroup IFX_ATM
49  \brief ATM driver header file
50 */
51
52
53
54/*
55 * ####################################
56 *              Definition
57 * ####################################
58 */
59
60/*!
61  \addtogroup IFX_ATM_STRUCT
62 */
63/*@{*/
64
65/*
66 *  ATM MIB
67 */
68
69typedef struct {
70        __u32   ifHCInOctets_h;     /*!< byte counter of ingress cells (upper 32 bits, total 64 bits)   */
71        __u32   ifHCInOctets_l;     /*!< byte counter of ingress cells (lower 32 bits, total 64 bits)   */
72        __u32   ifHCOutOctets_h;    /*!< byte counter of egress cells (upper 32 bits, total 64 bits)    */
73        __u32   ifHCOutOctets_l;    /*!< byte counter of egress cells (lower 32 bits, total 64 bits)    */
74        __u32   ifInErrors;         /*!< counter of error ingress cells     */
75        __u32   ifInUnknownProtos;  /*!< counter of unknown ingress cells   */
76        __u32   ifOutErrors;        /*!< counter of error egress cells      */
77} atm_cell_ifEntry_t;
78
79typedef struct {
80        __u32   ifHCInOctets_h;     /*!< byte counter of ingress packets (upper 32 bits, total 64 bits) */
81        __u32   ifHCInOctets_l;     /*!< byte counter of ingress packets (lower 32 bits, total 64 bits) */
82        __u32   ifHCOutOctets_h;    /*!< byte counter of egress packets (upper 32 bits, total 64 bits)  */
83        __u32   ifHCOutOctets_l;    /*!< byte counter of egress packets (lower 32 bits, total 64 bits)  */
84        __u32   ifInUcastPkts;      /*!< counter of ingress packets         */
85        __u32   ifOutUcastPkts;     /*!< counter of egress packets          */
86        __u32   ifInErrors;         /*!< counter of error ingress packets   */
87        __u32   ifInDiscards;       /*!< counter of dropped ingress packets */
88        __u32   ifOutErros;         /*!< counter of error egress packets    */
89        __u32   ifOutDiscards;      /*!< counter of dropped egress packets  */
90} atm_aal5_ifEntry_t;
91
92typedef struct {
93        __u32   aal5VccCrcErrors;       /*!< counter of ingress packets with CRC error  */
94        __u32   aal5VccSarTimeOuts;     /*!< counter of ingress packets with Re-assemble timeout    */  //no timer support yet
95        __u32   aal5VccOverSizedSDUs;   /*!< counter of oversized ingress packets       */
96} atm_aal5_vcc_t;
97
98typedef struct {
99        int             vpi;        /*!< VPI of the VCC to get MIB counters */
100        int             vci;        /*!< VCI of the VCC to get MIB counters */
101        atm_aal5_vcc_t  mib_vcc;    /*!< structure to get MIB counters      */
102} atm_aal5_vcc_x_t;
103
104/*@}*/
105
106
107
108/*
109 * ####################################
110 *                IOCTL
111 * ####################################
112 */
113
114/*!
115  \addtogroup IFX_ATM_IOCTL
116 */
117/*@{*/
118
119/*
120 *  ioctl Command
121 */
122/*!
123  \brief ATM IOCTL Magic Number
124 */
125#define PPE_ATM_IOC_MAGIC       'o'
126/*!
127  \brief ATM IOCTL Command - Get Cell Level MIB Counters
128
129   This command is obsolete. User can get cell level MIB from DSL API.
130   This command uses structure "atm_cell_ifEntry_t" as parameter for output of MIB counters.
131 */
132#define PPE_ATM_MIB_CELL        _IOW(PPE_ATM_IOC_MAGIC,  0, atm_cell_ifEntry_t)
133/*!
134  \brief ATM IOCTL Command - Get AAL5 Level MIB Counters
135
136   Get AAL5 packet counters.
137   This command uses structure "atm_aal5_ifEntry_t" as parameter for output of MIB counters.
138 */
139#define PPE_ATM_MIB_AAL5        _IOW(PPE_ATM_IOC_MAGIC,  1, atm_aal5_ifEntry_t)
140/*!
141  \brief ATM IOCTL Command - Get Per PVC MIB Counters
142
143   Get AAL5 packet counters for each PVC.
144   This command uses structure "atm_aal5_vcc_x_t" as parameter for input of VPI/VCI information and output of MIB counters.
145 */
146#define PPE_ATM_MIB_VCC         _IOWR(PPE_ATM_IOC_MAGIC, 2, atm_aal5_vcc_x_t)
147/*!
148  \brief Total Number of ATM IOCTL Commands
149 */
150#define PPE_ATM_IOC_MAXNR       3
151
152/*@}*/
153
154
155
156/*
157 * ####################################
158 *                 API
159 * ####################################
160 */
161
162#ifdef __KERNEL__
163struct port_cell_info {
164    unsigned int    port_num;
165    unsigned int    tx_link_rate[2];
166};
167#endif
168
169
170
171#endif  //  IFX_ATM_H
172
Note: See TracBrowser for help on using the repository browser.