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
64 Document Number: 252539, Revision: 007
In order to receive a PDU, the client layer must allocate IXP_BUFs and pass their ownership to the
IxAtmdAcc component. This process is known as replenishment. Such buffers are filled out with
cell payload. Complete PDUs are passed to the client. In the case of AAL 5, an indication about the
validity of the PDU — and the validity of the AAL-5 CRC — is passed to the client.
In the case of AAL 0, PDU completion occurs either when an IXP_BUF is filled, or is controlled
by a timer expiration. The client is able to determine this by the fact that the IXP_BUF will not be
completely filled, in the case that completion was due to a timer expiring.
Refer to the API for details about the AAL-0 timer.
IxAtmdAcc supports prioritization of inbound traffic queuing by providing two separate receive
streams. The algorithms and tuning required to service these streams can be different, so
management of latency and other priority constraints, on receive VCs, is allowed. As an example,
one stream can be used for critical-time traffic (such as voice) and the other stream for data traffic.
The streams can be serviced in two ways:
Setting a threshold level (when there is data available)
Polling mechanism
Both mechanisms pass buffers to the client through a callback. Once the client is finished
processing the buffer, it can either ask to replenish the channel with available buffers or free the
buffer back directly to the operating-system pool.
4.5.3.1 Receive Triggers (Rx-Free-Low Notification)
IxAtmdAcc receive service does provide a Rx-free-low notification service that can be configured
to execute a client supplied notification callback when the number of available buffers reaches a
certain low level. The service is supported on a per-VC basis and the maximum threshold level is
16 unchained IXP_BUFs.
4.5.3.2 Receive Processing
When buffers have been received on a port, they are placed in one of two Rx streams common to
the VCs sharing this resource as decided by the client when establishing a connection. IxAtmdAcc
does not autonomously process this stream, but instead the client decides when and how many
buffers will be processed.
Processing primarily involves handing back ownership of buffers to clients. The rate at which this
is done must be sufficient to ensure that client requirements in terms of latency are met. The details
of the exact rate at which this must be done is implementation-dependent and not within the scope
of this document.
Receive — Based on a Threshold Level
IxAtmdAcc provides a notification service where a client can choose to be notified when incoming
PDUs are ready in a receive stream as shown in Figure 19.