📄 ixatmdtxcfginfo_p.h
字号:
/** * @file IxAtmdTxCfgInfo_p.h * * @author Intel Corporation * @date 17 March 2002 * * @brief IxAtmdAcc Tx Configuration * * This file contains the functions to initialize the internal structures * needed during the TX datapath processing. * * * @par * IXP400 SW Release version 2.1 * * -- Copyright Notice -- * * @par * Copyright (c) 2001-2005, Intel Corporation. * All rights reserved. * * @par * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the Intel Corporation nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * * @par * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * * @par * -- End of Copyright Notice -- */#ifndef IX_ATMDTXCFGINFO_P_H#define IX_ATMDTXCFGINFO_P_H#include "IxQMgr.h"#include "IxAtmdAccCtrl.h"#include "IxAtmdPortMgmt_p.h"/*** @brief Tx data initialisation*/IX_STATUSixAtmdAccTxCfgInfoInit (void);/*** @brief Tx data full configuration and stats display*/voidixAtmdAccTxCfgInfoStatsShow (void);/** * @brief display the tx configuration*/voidixAtmdAccTxCfgInfoPortShow (IxAtmLogicalPort port);/** * @brief display the tx configuration*/voidixAtmdAccTxCfgInfoChannelShow (IxAtmLogicalPort port);/*** @brief Tx data reset*/voidixAtmdAccTxCfgInfoStatsReset (void);/*** @brief Get the connection Id associated with a channel* identified by the port/vpi/vci parameters* @return @li IX_SUCCESS connection found and connection ID* is returned* @return @li IX_FAIL connection not found*/IX_STATUSixAtmdAccTxCfgConnIdFind (IxAtmLogicalPort port, unsigned int vpi, unsigned int vci, IxAtmConnId * connIdPtr);/*** @brief Check if this port/vpi/vci is already configured* @return @li TRUE connection found* @return @li FALSE connection not found*/BOOLixAtmdAccTxCfgVcConfigured (IxAtmLogicalPort port, unsigned int vpi, unsigned int vci);/*** @brief Check if there is any connection already set for this port* @return @li TRUE a connection is found* @return @li FALSE no connection found*/BOOLixAtmdAccTxCfgPortVcsExist (IxAtmLogicalPort port);/*** @brief Check if there is any connection already set in the system* @return @li TRUE a connection is found* @return @li FALSE no connection found*/BOOLixAtmdAccTxCfgVcsExist (void);/*** @brief Get a free tx channel and allocate a new connection id* @return @li IX_SUCCESS a free channel is found and allocated* @return @li IX_ATMDACC_OVERLOADED no free channel found*/IX_STATUSixAtmdAccTxCfgFreeChannelGet (IxAtmdAccAalType aalServiceType, IxAtmConnId * connIdPtr);/*** @brief initialise the channels parameters* @return @li IX_SUCCESS initialisation is succesfull* @return @li IX_FAIL initialisation failed (unable to allocate from* memory or unexpected error occured)*/IX_STATUSixAtmdAccTxCfgChannelSet (IxAtmConnId connId, IxAtmSchedulerVcId schedulerVcId, IxAtmLogicalPort port, unsigned int vpi, unsigned int vci, IxAtmdAccAalType aalServiceType, IxAtmdAccUserId userId, IxAtmdAccTxVcBufferReturnCallback txDoneCallback);/*** @brief reset the channels parameters to the default values* @return @li IX_SUCCESS reset is succesfull* @return @li IX_FAIL reset failed (unable to deallocate from* memory or unexpected error occured)*/IX_STATUS ixAtmdAccTxCfgChannelReset (unsigned int txId);/*** @brief from the connection Id, get the index in the pool of channel descriptor* @return @li IX_SUCCESS connection Id is valid* @return @li IX_FAIL connection Id is not valid (may be obsolete)*/IX_STATUSixAtmdAccTxCfgIndexGet (IxAtmConnId connId, unsigned int *txIdPtr);/*** @brief check if all resources are back to the sw queue* @return @li IX_SUCCESS all resources are back to the sw queue* @return @li IX_FAIL resources are still in the qmgr queue, or hold by NPE*/BOOLixAtmdAccTxCfgFreeResourcesCheck (unsigned int txId);/*** @brief Invalidate a connection ID such a way that further attempts* to use it will be discarded. This is use during the disconnect* process* @return @li IX_SUCCESS the connection ID is checked and is now altered.* @return @li IX_FAIL the connection ID supplied is not valid* @note - This funtion is idempotent*/voidixAtmdAccTxCfgConnIdInvalidate (unsigned int txId);/*** @brief Register a TxDone callback* @return @li IX_SUCCESS The callback is registered* @return @li IX_FAIL an unexpected arror occured during the callback* registration*/IX_STATUSixAtmdAccTxCfgTxDoneCallbackRegister (unsigned int thresholdLevel, IxAtmdAccTxDoneDispatcher callback);/*** @brief Register a TxDone callback Unregister* @return @None*/voidixAtmdAccTxCfgTxDoneCallbackUnregister (void);/*** @brief Register a TxLow callback for this port* @return @li IX_SUCCESS The callback is registered* @return @li IX_FAIL an unexpected arror occured during the callback* registration*/IX_STATUSixAtmdAccTxCfgTxCallbackRegister (IxAtmLogicalPort port, unsigned int thresholdLevel, IxAtmdAccPortTxLowCallback callback);/*** @brief Unregister a TxLow callback for this port* @return NONE*/voidixAtmdAccTxCfgTxCallbackUnregister (IxAtmLogicalPort port);/*** @brief Internal QMgr callback for TX Low event*/voidixAtmdAccTxLowCallBack (IxQMgrQId qId, IxQMgrCallbackId cbId);/*** @brief Internal QMgr callback for TX Done event*/voidixAtmdAccTxDoneCallBack (IxQMgrQId qId, IxQMgrCallbackId cbId);/*** @brief Dummy scheduler* @return @li IX_SUCCESS a vcid is provided* @return @li IX_FAIL cannot occur, this is use for compatibility* with the atm scheduler*/IX_STATUSixAtmdAccTxDummyVcIdGet (IxAtmLogicalPort port, unsigned int vpi, unsigned int vci, IxAtmConnId connId, IxAtmSchedulerVcId* schedulerVcIdPtr);/*** @brief Dummy scheduler* @return @li IX_SUCCESS a demand update is done : this triggers* the immediate transmission of the PDU submitted.* @return @li IX_FAIL an unexpected error occured*/IX_STATUSixAtmdAccTxDummyDemandUpdate (IxAtmLogicalPort port, int vcId, unsigned int numberOfCells);/*** @brief Dummy scheduler* @return none*/voidixAtmdAccTxDummyDemandClear (IxAtmLogicalPort port, IxAtmSchedulerVcId schedulerVcId);/*** @brief Register a scheduler for this port* @return @li IX_SUCCESS registration is complete* @return @li IX_FAIL registration failed*/voidixAtmdAccTxCfgSchCallbackRegister (IxAtmLogicalPort port, IxAtmdAccTxVcDemandUpdateCallback queueUpdate, IxAtmdAccTxVcDemandClearCallback vcClear, IxAtmdAccTxSchVcIdGetCallback vcIdGet);/*** @brief Unregister a scheduler for this port* @return @li IX_SUCCESS unregistration is complete* @return @li IX_FAIL unregistration failed*/voidixAtmdAccTxCfgSchCallbackUnregister (IxAtmLogicalPort port);/*** @brief Clean the TX VC queue from the entries realted to the channel* being disconnected* @return @li IX_SUCCESS cleaning is complete, or not done* @return @li IX_FAIL an unexpected error occured during processing*/IX_STATUSixAtmdAccTxCfgPortResourcesRelease (IxAtmConnId connId);/*** @brief Check if a port is enabled* @return @li TRUE enabled* @return @li FALSE not enabled*/BOOLixAtmdAccTxPortEnabledQuery(IxAtmLogicalPort port);/*** @brief Check if a port is disabled* @return @li TRUE disabled* @return @li FALSE not disabled*/BOOLixAtmdAccTxPortDisabledQuery(IxAtmLogicalPort port);/*** @brief Change the state of a port* @return @li IX_SUCCESS state change succeeded* @return @li IX_FAIL state change failed, state was not changed*/IX_STATUSixAtmdAccTxPortStateChangeHandler(IxAtmLogicalPort port, IxAtmdAccPortState requestedState);/*** @brief : Handle port setup initiated by PortMgmt* @return @li none*/voidixAtmdAccTxPortSetupNotifyHandler(unsigned int numPort);/**** @brief prototype to get a scheduler vc id** @param port (in) Specifies the ATM logical port on which the VC is* established* @param vpi (in) Specifies the ATM vpi on which the VC is established* @param vci (in) Specifies the ATM vci on which the VC is established* @param connId (in) specifies the IxAtmdAcc connection Id already* associated with this VC* @param vcId (out) pointer to a vcId** @return IX_SUCCESS returns a Scheduler vcId for this VC* @return IX_FAIL cannot process scheduling for this VC.* the contents of vcId is unspecified**/IX_STATUSixAtmdAccTxCfgSchVcIdGet (IxAtmLogicalPort port, unsigned int vpi, unsigned int vci, IxAtmConnId connId, IxAtmSchedulerVcId *schedulerVcIdPtr);/*** @brief prototype to remove all currently queued cells from a* registered VC** @param connId (in) specifies the IxAtmdAcc connection Id already* associated with this VC** @return none**/voidixAtmdAccTxCfgVcDemandClear (IxAtmConnId connId);/*** @brief prototype to tell the scheduler about a connect failure** @param connId (in) specifies the IxAtmdAcc connection Id already* associated with this VC* @param port (in) specifies the port* @param schedulerVcId (in) specifies the scheduler Vc to be used** @return none**/voidixAtmdAccTxCfgVcDemandCancel (IxAtmConnId connId, IxAtmLogicalPort port, IxAtmSchedulerVcId schedulerVcId);#endif /* IX_ATMDTXCFGINFO_P_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -