Intel® IXP400 Software
Access-Layer Components: ATM Driver Access (IxAtmdAcc) API
April 2005 IXP400 Software Version 2.0 Programmer’s Guide
62 Document Number: 252539, Revision: 007
Transmit Done — Based on Polling Mechanism
A polling mechanism can be used instead of the threshold service to trigger the recycling of the
transmitted buffers, as shown in Figure 17.
1. Sometime earlier, the data client sent data to transmit. Cells are now sent over the UTOPIA
interface and the IXP_BUFs are now available.
2, 3.A control client does not want to use the threshold services to process the transmitted buffers.
Therefore, the ixAtmdAccTxDoneQueryLevel() function can optionally be called to get the
current number of IXP_BUFs already transmitted.
4. The control client requests the ixAtmdAcc to do more processing and provides a number of
buffers to process as a parameter of the ixAtmdAccTxDoneDispatch() function. This function
gets the transmitted buffer and retrieves the connId associated with this buffer.
5. Based on connId, ixAtmdAccTxDoneDispatch identifies the data client to which this buffer
belongs. The corresponding data client’s TxDoneCallback function — as registered during a
TxVcConnect — is invoked with the IXP_BUF.
This TxDoneCallback function is likely to free or recycle the chained IXP_BUFs.
6. The client gets the number of buffer processed from the control client. This number may be
different to the number requested when multiple instances of the
ixAtmdAccTxDoneDispatch() function are used at the same time.
4.5.2.2 Transmit Disconnect
Before a client disconnects from a VC, all resources must have been recycled, as shown in
Figure 18. This is done by calling the ixAtmdAccTxVcDisconnect() function until all PDUs are
transmitted by the hardware and all buffers are sent back to the client.
Figure 17. Tx Done Recycling — Using a Polling Mechanism
AtmdAcc
Data Client Tx Ctrl
Client
2: ixAtmdAccTxDoneLevelQuery()
4: iixAtmdAccTxDoneDispatch(numMbuf)
1: hwSend()
5: ixAtmdAccBufferReturnCB(userId, mb uf )
3: mbufLevel6: mbufProcessed
B2287-01