Intel IXP400 Frozen Dessert Maker User Manual


 
Intel
®
IXP400 Software
Access-Layer Components: ATM Transmit Scheduler (IxAtmSch) API
Programmer’s Guide IXP400 Software Version 2.0 April 2005
Document Number: 252539, Revision: 007 83
The schedule table is composed of an array of table entries, each of which specifies a VC ID and a
number of cells to transmit from that VC. The scheduler explicitly inserts idle cells into the table,
where necessary, to fulfill the traffic contract of the VCs registered in the system. Idle cells are
inserted in the table with the VC identifier set to 0.
The exact format of the schedule table is defined in IxAtmTypes.h.
Figure 26 shows how this table is translated into an ordered sequence of cells transmitted to the
ATM port.
6.5.1.1 Minimum Cells Value (minCellsToSchedule)
When a port model is created the minimum number of cells (minCellstoSchedule) that the
scheduler should schedule per table is specified. Therefore, as long as there is at least one cell
available to schedule the scheduler will guarantee to generate a table containing a minimum
totalCellSlots value of minCellsToSchedule. If the number of outstanding cells available for
scheduling is less than minCellsToSchedule, idle cells are scheduled to make up the difference.
This value is setup once per port and cannot be modified.
Note: The minCellstoSchedule facility is provided to simplify the transmission control code in the case
where queue threshold values are used to drive scheduling. The threshold value in cells can be
matched to the minCellsToSchedule so that scheduler is always guaranteed to schedule enough
cells to fill the Tx Q above its threshold value.
6.5.1.2 Maximum Cells Value (maxCells)
The maximum number of cells that the scheduler produces in a table can be limited by the
maxCells parameter. This can controllable on a table by table basis. The actual number of cells
scheduled will be the lesser of maxCells and minCellsToSchedule.
6.5.2 Schedule Service Model
IxAtmSch provides schedule service through two functional interfaces: “VC queue update” and
“Schedule table update.”
Figure 26. Translation of IxAtmScheduleTable Structure to ATM Tx Cell Ordering
IxAtmScheduleTableEntry[]
vcUserConnId: 0
numberOfCells: 1
2
vcUserConnId: 2
numberOfCells: 2
4
vcUserConnId: 1
numberOfCells: 1
3
vcUserConnId: 2
numberOfCells: 3
1
vcUserConnId: 1
numberOfCells: 2
0
tableSize: 5
totalCellSlots: 9
IxAtmScheduleTable
table:
*ptr
Cells transmitted on the ATM line
in the order specified, numbered
by vcUserConnId. (0 indicates
idle cell)
112220122
ATM Tx
B2301-01