Intel® IXP400 Software

Access-Layer Components: ATM Driver Access (IxAtmdAcc) API

Received — Based on a Polling Mechanism

A polling mechanism can also be used to collect received buffers as shown in Figure 20.

Figure 20. RX Using a Polling Mechanism

Data Client

Rx Ctrl

Client

5:rxCallBack(userId, IX_VALID_PDU, mbuf)

AtmdAcc

1:hwReceive()

6: mbufProcessed

3: mbufLevel

 

 

 

 

 

 

2:ixAtmdAccRxLevelQuery(stream)

4:ixAtmdAccRxDispatch(stream, numMbuf)

B2290-01

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.3Receive Disconnect

Before a client disconnects from a VC, all resources must have been recycled as shown in Figure 21.

April 2005

IXP400 Software Version 2.0

Programmer’s Guide

66

Document Number: 252539, Revision: 007

 

Page 66
Image 66
Intel IXP400 manual Receive Disconnect, RX Using a Polling Mechanism