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 59
this VC. In making this callback, ixAtmdAcc is also providing the AtmScheduler VC
identifier that should be used when calling IxAtmdAcc for this VC.
4. The shaping entity acknowledges the validity of the VC, stores the IxAtmdAcc connection ID
and issues a VcId to IxAtmdAcc.
5. IxAtmdAcc accepts the connection request from the data client and returns a connection ID to
be used by the client in further IxAtmdAcc API calls for that VC.
6. Sometime later, the data client has a fully formed AAL-5/AAL-0-48/AAL-0-52/OAM PDU in
an IXP_BUFs ready for transmission. The client calls ixAtmdAccTxPduSubmit() passing the
IXP_BUF and numbers of cells contained in the chained IXP_BUF as parameters.
Note:
In the case of AAL5, the CRC in the AAL-5 trailer does not have to be pre-calculated.
In the case of OAM, the CRC 10 does not have to be pre-calculated.
7. IxAtmdAcc ensures the connection is valid and submits new demand in cells to the shaping
entity by calling ixDemandUpdateCallback() callback. The shaping entity accepts the demand
and IxAtmdAcc internally enqueues the IXP_BUFs for later transmission.
8. The traffic-shaping entity decides at certain time — by its own timer mechanism or by using
the “Tx Low Notification” service provided by IxAtmdAcc component for this port — that
cells should be transmitted on the port based on the demand it has previously obtained from
AtmdAcc. It creates a transmit schedule table and passes it to the IxAtmdAcc by calling
ixAtmdAccTxProcess().
9. IxAtmdAcc takes the schedule, interprets it, and sends scheduled cells to the hardware. In the
case of hardware queue being full (only possible if the “Tx Low Notification” service is not
used), the ixAtmdAccTxProcess call returns an overloaded status so that the traffic shaping
entity can retry this again later.
4.5.1.1 Schedule Table Description
IxAtmdAcc uses a schedule table when transmitting cell information to the hardware. This
schedule table drives the traffic on one port.
The schedule table is composed of an array of table entries, each of which specifies a
ConnectionID and a number of cells (up to 16) to transmit from that VC. Idle cells are inserted in
the table with the ConnectionID identifier set to IX_ATMDACC_IDLE_CELLS.
Figure 15 shows how this table is translated into an ordered sequence of cells transmitted to one
ATM port.