Intel® IXP400 Software

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

Figure 19. Rx Using a Threshold Level

Data Client

 

Rx Ctrl

 

 

Client

 

 

 

 

4:rxCallback(userId, IX_VALID_PDU,mbuf)

3:ixAtmdAccRxDispatch(stream)

AtmdAcc

1:ixAtmdAccRxCallbackRegister(stream, mbufThreshold, callback)

2:hwReceive()

B2289-01

1.A control client wants to use the threshold services to process the received PDUs. The ixAtmdAccRxThresholdSet() function is called to register a callback. IxAtmdAcc provides the ixAtmdAccRxDispatch() function to be used by this callback. This function itself can be used directly as the callback. IxAtmdAccRxThresholdSet allows the client to register its own callback.

From this callback (where an algorithm can be used to decide the number of IXP_BUFs to service, depending on system load or any user constraint), the user has to call the IxAtmdAccRxDispatch() function.

2.Cells are now received over the UTOPIA interface and there is a PDU available.

3.When a complete PDU is received, the callback is invoked and the function ixAtmdAccRxDispatch() runs. This function iterates through the received buffers and retrieve the connId associated with each buffer.

4.Based on connId, ixAtmdAccRxDispatch identified the data client to whom this buffer belongs. The corresponding data client’s RxCallback function — as registered during a RxVcConnect — is invoked with the first IXP_BUF of 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.

Programmer’s Guide

IXP400 Software Version 2.0

April 2005

 

Document Number: 252539, Revision: 007

65

Page 65
Image 65
Intel IXP400 manual Rx Using a Threshold Level