Intel IXP400 Frozen Dessert Maker User Manual


 
Intel
®
IXP400 Software
Access-Layer Components: ATM Driver Access (IxAtmdAcc) API
Programmer’s Guide IXP400 Software Version 2.0 April 2005
Document Number: 252539, Revision: 007 65
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.
Figure 19. Rx Using a Threshold Level
AtmdAcc
Data Client
Rx Ctrl
Client
1: ixAtmdAccRxCallbackRegister(stream, mbufThreshold, callback)
2: hwReceive()
4: rxCallback(userId, IX_VALID_PDU,mbuf)
3: ixAtmdAccRxDispatch(stream)
B2289-01