📄 ixatmcodelet.h
字号:
* <b>Buffer management</b> * In this mode a more complex buffering mechanism is used; mbufs are * allocated from the vxWorks pool and stored in a software queue. These * mbufs are fetched from this software queue as needed for RxFree * replenishing/Tx and are returned to the software queue for * TxDone/Rx.<br> * <br> * <b>Interrupt/Task based processing</b> * In this mode of operation the IxQMgrDispatcher is called form a task * every 1 msec. This means that TxDone/RxLo/IxAtmdAcc Tx processing/RxHi * and RxFree will be processed from a task level.<br> * <br> * <b>Sending PDUs/Packets</b> * This mode of operation does not provide an interface for sending Aal5 * PDUs/Aal0 Packets. <br> * * <b>IxAtmCodelet sub-components</b> * <pre> * +--------------------+ * | AtmCodelet | * +--------------------+ * | | * ,-----' `-----, * | | * V V * +------------+ +------------+ * | RxTx | | SwLoopback | * +------------+ +------------+ * * </pre> * * <b>AtmCodelet</b> * This implements the API functions. * * <b>RxTx</b> * This sub-component implements the IX_ATMCODELET_UTOPIA_LOOPBACK and * IX_ATMCODELET_REMOTE_LOOPBACK modes of operation. * * <b>SwLoopback</b> * This sub-component implements the IX_ATMCODELET_SOFTWARE_LOOPBACK mode * operation. * * <b>BufMan</b> * This sub-component implements the intefaces used internally for getting and * returning vxWorks mbufs. * * <b>UTOPIA Recieve and Transmit PHY addresses</b> * In this codelet UTOPIA Phy Addresses are assigned numbers starting at * UTOPIA_PHY_ADDR and are incremented for each port used. These addresses * _WILL_ need to be changed depending on the hardware setup. * * <b>OAM Features</b> * @li An interface is provided to configure the access layer to enable OAM * traffic. * * @li OAM Loopback responses are sent automatically on receipt of OAM F4 and * F5 parent Segment and ETE loopback cells, i.e. externally initiated OAM * Loopbacks. * * @li Interfaces are provided to initiate an OAM F4/F5 Segment or ETE * Loopback, see ITU-610. One loopback can be initiated at a time, this is * to keep the codelet simple, this is independant of sending responses to * parent loopback cells received. * * @li An interface is provided to query OAM traffic statistics. * * <b>OAM uses the following IXP400 ATM Components </b> * @li IxAtmdAcc. This component is the low level interface by which OAM cells * get transmitted to, and received from the UTOPIA bus. * * @li IxAtmm. This component provides ATM port and VC management facilities. * This component also contains the configuration of the UTOPIA * co-processor. * * @li AtmUtils. This codelet provides VC setup facilities using IxAtmdAcc. * * <B>IMPORTANT!!! </B><br> * If validation board is used (instead of using IXDP400 development board), * then uncomment VALIDATION_PLATFORM_USED flag in component.mk * * @{ *//* * User defined include files. */#include "IxOsal.h"#include "IxAtmCodelet_p.h"/* * Defines and macros *//** * @ingroup IxAtmCodelet * * @def IX_ATM_CODELET_SWLOOPBACK_PORT_RATE * * @brief Port rate for Software Loopback * * By default the port rate for software loopback is set at * PCR = 1962 cells/sec (832kbps) * */#define IX_ATM_CODELET_SWLOOPBACK_PORT_RATE 1962/** * @ingroup IxAtmCodelet * * @def IX_ATM_CODELET_REMOTELOOPBACK_PORT_RATE * * @brief Port rate for Remote Looopback * * By default the port rate for remote loopback is set at * PCR = 1962 cells/sec (832kbps) * */#define IX_ATM_CODELET_REMOTELOOPBACK_PORT_RATE 1962/** * @ingroup IxAtmCodelet * * @def IX_ATMCODELET_START_VPI * * @brief The first VPI value. * * By default the VPI is set to 1 */#define IX_ATMCODELET_START_VPI (1) /** * @ingroup IxAtmCodelet * * @def IX_ATMCODELET_START_VCI * * @brief The first VCI value. * * By default the VCI is set to 2 */#define IX_ATMCODELET_START_VCI (32)/** * @ingroup IxAtmCodelet * * @def IX_ATMCODELET_NUM_AAL5_CHANNELS * * @brief 32 Channels for AAL5 */#define IX_ATMCODELET_NUM_AAL5_CHANNELS 32/** * @ingroup IxAtmCodelet * * @def IX_ATMCODELET_NUM_AAL0_48_CHANNELS * * @brief 32 Channels for AAL0 48-bytes */#define IX_ATMCODELET_NUM_AAL0_48_CHANNELS 32 /** * @ingroup IxAtmCodelet * * @def IX_ATMCODELET_NUM_AAL0_52_CHANNELS * * @brief 32 Channels for AAL0 52-bytes */#define IX_ATMCODELET_NUM_AAL0_52_CHANNELS 32/** * @ingroup IxAtmCodelet * * @def IX_ATMCODELET_QMGR_DISPATCHER_PRIORITY * * @brief Recommended priority of queue manager dispatch loop * */#define IX_ATMCODELET_QMGR_DISPATCHER_PRIORITY 240 /** * @ingroup IxAtmCodelet * * @def IX_ATMCODELET_QMGR_DISPATCHER_THREAD_STACK_SIZE * * @brief Recommended stack size for queue manager dispatcher thread * */#define IX_ATMCODELET_QMGR_DISPATCHER_THREAD_STACK_SIZE 10240/* * Variable declarations global to this file. Externs are followed by * statics. *//* * Function definitions *//** * @ingroup IxAtmCodelet * * @fn ixAtmCodeletMain(IxAtmCodeletMode modeType, IxAtmCodeletAalType aalType) * * @brief This function is used as a single point of execution for ATM codelet * * @param "IxAtmCodeletMode modeType" The type of mode use, either Utopia, * Software or Remote loopback mode. It also consists of OAM Ping in * Utopia or Software loopback mode. * @param "IxAtmCodeletAalType aalType" The type of AAL: AAL5 or AAL0 with 48- * or 52-bytes cell * * @return * IX_SUCCESS Mode and AAL type successfully setup * IX_FAIL Invalid AAL or mode type, or error in setting up the modes */PUBLIC IX_STATUSixAtmCodeletMain(IxAtmCodeletMode modeType, IxAtmCodeletAalType aalType);#endif /*IX_ATMCODELET_H*//** @} defgroup IxAtmCodelet*//** @} defgroup Codelets*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -