📄 ixatmcodelet_p.h
字号:
* This is for Utopia and Remote Loopback mode (See Figure 1) * * <pre> * ixAtmSwLbChannelsProvision() or ixAtmRxTxChannelsProvision() * | * v IxAtmSwLoopback * --------------------------------------------------------------------------- * | IxAtmUtilsAtm * v * PUBLIC ixAtmUtilsAtmVcRegisterConnect() * / \ * / \ * / \ * ------------------------------ ---------------------------------------- * | IxAtmm | IxAtmd * v v * 1. PUBLIC ixAtmmVcRegister(), 2. PUBLIC ixAtmdAccTxVcConnect() * (To setup Tx and Rx VC) (Connect Tx to the VC) * * 3. PUBLIC ixAtmdAccRxVcConnect() * (Connect Rx to the VC) * * 4. PUBLIC ixAtmdAccRxVcFreeEntriesQuery() * (Get the number of entries in rx free queue) * * 5. PUBLIC ixAtmdAccRxVcFreeLowCallbackRegister() * (Replenish Rx buffers if callback is not NULL) * * 6. PUBLIC ixAtmdAccRxVcEnable() * (Start the Rx service on a VC) * * <center><b> Figure 1 </b></center> * </pre> * * @param "UINT32 numPorts" The number of ATM ports to configure * channels on. This must be less than or equal to the number of * ports configured in the call to ixAtmCodeletInit(). * * @param "UINT32 numChannels" The number of bidirectional Atm * channels to provision. Channels are provisioned accross numPorts * in the following manner, for 2 ports, 4 VCs, * Channel 0 on port 0, channel 1 on port 1, channel 2 on port 0, * channel 3 on port 1. * Valid values range from 1 to 32. * Subsequent calls will assign channel and port numbers in ascending order. * * @param "IxAtmdAccAalType aalType" The aalType for the channels to * provision, i.e. Aal5, Aal0 48 byte mode or Aal0 52 byte cell mode. * * @return * IX_SUCCESS Indicates tha the Atm Codelet has successfully provisioned the requested * number of channels.<br> * IX_FAIL Some internal error has prevented the ATM codelet from * from provisioning the channels. */PUBLIC IX_STATUSixAtmCodeletUbrChannelsProvision (UINT32 numPorts, UINT32 numChannels, IxAtmdAccAalType aalType);/** * @brief This function is provided to remove all channels provisioned earlier * in a call to ixAtmCodeletUbrChannelsProvision(). * * It is responsible to remove all VCs registered by * ixAtmCodeletUbrChannelsProvision. * There are two functions to be called depending on the Loopback mode: * i) ixAtmSwLbChannelsRemove (in ixAtmCodeletSwLoopback.c). * This is for Software Loopback mode (See Figure 2) <br> * ii) ixAtmRxTxChannelsRemove (in ixAtmCodeletRxTx.c). * This is for Utopia and Remote Loopback mode. (See Figure 2) * * Both ChannelsRemove function calls in the following manner. * * <pre> * ixAtmRxTxChannelsRemove() or ixAtmSwLbChannelsRemove() * | * | IxAtmCodeletsRxTx * ---------------------------------------------------------- * | IxAtmUtilsAtm * v * PUBLIC ixAtmUtilsAtmAllVcsDisconnect() * | * v * PRIVATE ixAtmUtilsAtmVcUnregisterDisconnect() * | * | * ---------------------------------------------------------- * | IxAtmm * v * PUBLIC ixAtmmVcDeregister() for Tx and Rx * * <center><b> Figure 2 </b></center> * </pre> * * @param none * * @return * IX_SUCCESS Indicates that the Atm Codelet has successfully removed * all provisioned channels. <br> * IX_FAIL Some internal error has prevented the Atm Codelet * from removing provisioned channels. */PUBLIC IX_STATUSixAtmCodeletUbrChannelsRemove (void);/** * @brief This function is used to send Aal0 packets, * with the number of cells per packet specified. The packets are multiplexed * across all provisioned Aal0 48/52 channels. * This function will block until the MBUF pool is nearly depleted. * * It is responsible to transmit a number of Aal0 packets each containing * cellsPerPacket cells. * * This function will call ixAtmRxTxAal0PacketsSend (in ixAtmCodeletRxTx.c). * (See Figure 3) * * <pre> * (AAL0 Packets) (AAL5 Packets) * ixAtmRxTxAal0PacketsSend() ixAtmRxTxAal5CpcsSdusSend() * | | * v v * PRIVATE ixAtmRxTxAal0Tx() PRIVATE ixAtmRxTxAal5CpcsTx() * | | * | | * +--------->PRIVATE ixAtmRxTxWithRetiesSend()<-----------+ * | * | IxAtmCodeletRxTx * ---------------------------------------------------------------------------- * | IxAtmdAcc * v * PUBLIC ixAtmdAccTxVcPduSubmit() * * <center><b> Figure 3 </b></center> * </pre> * * * @param "UINT32 cellsPerPacket" The number of cells per packet to send. * * * @return * IX_SUCCESS Indicates tha the Atm Codelet has successfully sent * all of the packets.<br> * IX_FAIL Some internal error has prevented the Atm Codelet * from sending the packets successfully. */PUBLIC IX_STATUSixAtmCodeletAal0PacketsSend (UINT32 cellsPerPacket);/** * @brief This function is used to send the Aal5 CPCS SDUs * of specified SDU size multiplexed accross all Aal5 provisioned channels. * This function will block until the MBUF pool is nearly depleted. * * It is responsible to transmit a number of Aal5 CPCS SDUs of length sduLength. * This function will call ixAtmRxTxAal5CpcsSdusSend (in ixAtmCodeletRxTx.c). * (See Figure 3 for ixAtmRxTxAal5CpcsSdusSend) * * @param "UINT32 sduSize" The SDU size of the sdus to send in bytes. The Atm * trailer + padding will be appended to this. * * * @return * IX_SUCCESS Indicates tha the Atm Codelet has successfully sent * all of the sdus.<br> * IX_FAIL Some internal error has prevented the Atm Codelet * from sending the sdus successfully. */PUBLIC IX_STATUSixAtmCodeletAal5CpcsSdusSend (UINT32 sduSize);/** * @brief This function is called to modify the portRate on a * previously initialized port. * * @param "IxAtmLogicalPort port" Specifies the ATM port which is to be * modified. * * It is used to modify the transmit port rate. The transmit port rate is * done by calling ixAtmSchPortRateModify() function (IxAtmSch component) to * perform traffic shaping. * * @return * IX_SUCCESS The port rate has been successfully modified.<br> * IX_FAIL The port rate could not be modified, either * because the input data was invalid, or the new port rate is * insufficient to support established ATM VC contracts on this * port. */PUBLIC IX_STATUSixAtmCodeletPortRateModify (IxAtmLogicalPort port, UINT32 portRate);/** * @brief Display some statistics about each port configured * * @param none * * @return void */PUBLIC voidixAtmCodeletPortQuery (void);/** * @brief This function is used to dump VC configuration and sdu send and * receive counters. * * It displays some statistics about the transmit and receive streams * * @param none * * @return void */PUBLIC voidixAtmCodeletShow (void);/** * @brief This function initializes Atm codelet transport subcomponent */IX_STATUSixAtmRxTxInit (IxAtmCodeletStats *stats);/** * @brief This function is used to provision a number of Atm transport channels */IX_STATUSixAtmRxTxChannelsProvision (UINT32 numPorts, UINT32 numChannels, IxAtmdAccAalType aalType);/** * @brief This function is used to remove all provsioned channels */IX_STATUSixAtmRxTxChannelsRemove ( void );/** * @brief Get transport stats */voidixAtmRxTxStatsGet (IxAtmCodeletStats *stats);/** * @brief Replenish buffers to the RxFree queue. Buffers are taken from the mbuf pool */voidixAtmRxTxRxFreeLowReplenish (IxAtmdAccUserId userId);/** * @brief Send Aal5 CPCS SDUs * * @param "UINT32 sduSize" The SDU size in bytes to be transmitted */IX_STATUSixAtmRxTxAal5CpcsSdusSend (UINT32 sduSize);/** * @brief Send Aal0 packets * * @param "UINT32 cellsPerPacket" The number of cells per packet to send. */IX_STATUSixAtmRxTxAal0PacketsSend (UINT32 cellsPerPacket);/** * @brief This function initializes Atm codelet transport subcomponent */IX_STATUSixAtmSwLbInit (IxAtmCodeletStats *stats, UINT32 rxToTxRatio);/** * @briefThis function is used to provision a number of SW loopback Atm transport channels */IX_STATUSixAtmSwLbChannelsProvision (UINT32 numPorts, UINT32 numChannels, IxAtmdAccAalType aalType);/** * @brief This function is used to remove all provsioned channels */IX_STATUSixAtmSwLbChannelsRemove ( void );/* * Replenish buffers to the RxFree queue. Buffers are taken from * the software queue. */voidixAtmSwLbRxFreeLowReplenish (IxAtmdAccUserId userId);/* * @brief Get transport stats */voidixAtmSwLbStatsGet (IxAtmCodeletStats *stats);/** * @brief This function is used to configure OAM accross a number of previously configured ports. * N.B. IxQmgr, IxNpeMh, IxAtmSch, IxAtmdAcc, IxAtmm must be initialized * before calling this API, e.g. see AtmCodelet:ixAtmCodeletSystemInit() * * @param "UINT32 numPorts" The number of ATM ports to configure * on. This must be less than or equal to the number of * ports configured in e.g. the call to ixAtmCodeletInit(). * * @return * - IX_SUCCESS : Indicates that the Atm Codelet has successfully provisioned the OAM Tx * Port channels and the OAM Rx channel. * - IX_FAIL : Some internal error has prevented the ATM codelet from * from provisioning the channels. */PUBLIC IX_STATUSixOamCodeletInit (UINT32 numPorts);/** * @brief This function is used to initiate an OAM F5 ETE loopback, i.e. OAM ping, * on the specified Port, VPI and VCI for a number of cells. * ixOamCodeletInit must be called before calling this function. * * OAM F5 ETE Parent Loopback cells are sent to the F5 connection * end point (LLID = all one's). * * If an OAM F5 ETE Child Loopback cell has been received in response to a Parent * cell sent, a message will be displayed at the WindSh prompt. * * The loopback is complete and a subsequent loopback is allowed only when all * the loopback parent cells have been sent and either A) a child loopback cell has been * received in response to the last cell OR B) 5 seconds have passed since the last cell * was sent. * N.B. the function blocks until the loopback has completed. * * @param "IxAtmLogicalPort" The port to send the OAM loopback cells on. This port must have been * configured previously. * * @param "UINT32 VPI" The VPI of the channel to send the OAM loopback cells on. An Aal0/Aal5 * channel need not be configured previously on the same VPI/VCI. * * @param "UINT32 VCI" The VCI of the channel to send the OAM loopback cells on. An Aal0/Aal5 * channel need not be configured previously on the same VPI/VCI. * * @param "UINT32 numCells" The number of parent loopback cells to send. Not checked against * some max value, only limited by size of type. * * @return * - IX_SUCCESS : Indicates that the Oam Codelet has successfully performed the OAM ping. * - IX_FAIL : Some internal error has prevented the Oam Codelet performing the OAM ping. */PUBLIC IX_STATUS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -