Intel IXP400 Frozen Dessert Maker User Manual


 
Intel
®
IXP400 Software
Access-Layer Components: ATM Driver Access (IxAtmdAcc) API
April 2005 IXP400 Software Version 2.0 Programmer’s Guide
66 Document Number: 252539, Revision: 007
Received — Based on a Polling Mechanism
A polling mechanism can also be used to collect received buffers as shown in Figure 20.
1. Cells are now received over the UTOPIA interface and a complete PDU is now available.
2,3. The control client does not want to use the threshold services. Therefore, the client can
optionally query the current number of PDUs already received in one of the receive streams,
using the ixAtmdAccRxLevelQuery() function.
4. The control client asks IxAtmdAcc to process an amount of PDUs from one of the streams
using the function ixAtmdAccTxDoneDispatch().
5. IxAtmdAcc gets the requested number of PDUs from the underlying hardware. Based on
connId, ixAtmdAccRxDispatch() identifies the data clients to which the buffers belong. The
corresponding data client’s RxCallback functions — as registered during a
ixAtmdAccRxVcConnect — is invoked with the first IXP_BUF a PDU.
This RxCallback function is likely to push the received information to the protocol stack, and
then to free or recycle the IXP_BUFs. The RxCallback will be invoked once per PDU. If there
are many PDUs related to the same VC, the RxCallback will be called many times.
6. IxAtmdAcc returns the number of PDUs processed.
4.5.3.3 Receive Disconnect
Before a client disconnects from a VC, all resources must have been recycled as shown in
Figure 21.
Figure 20. RX Using a Polling Mechanism
AtmdAcc
Data Client
Rx Ctrl
Client
2: ixAtmdAccRxLevelQuery(stream)
4: ixAtmdAccRxDispatch(stream, numMbuf)
1: hwReceive()
5: rxCallBack(userId, IX_VALID_PDU, mbuf)
3: mbufLevel
6: mbufProcessed
B2290-01