⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ixatmcodelet_p.h

📁 intel IXP400系列cpu(2.3版)的库文件
💻 H
📖 第 1 页 / 共 3 页
字号:
 *		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 + -