Intel IXP400 Frozen Dessert Maker User Manual


 
Intel
®
IXP400 Software
Access-Layer Components: Queue Manager (IxQMgr) API
Programmer’s Guide IXP400 Software Version 2.0 April 2005
Document Number: 252539, Revision: 007 271
5. The ISR invokes the dispatcher.
Note: In the context of an interrupt, the dispatcher can also be invoked through a timer-based mechanism.
6. The IxQMgr reads the status flag.
7. The IxQMgr access-layer component calls the registered notification.
8. The client gets the buffer pointer on the Rx queue from the access-layer through the callback.
The access-layer, in turn, accesses the Rx queue through the IxQMgr access-layer component.
The IxQMgr accesses the AQM hardware.
Following this, the Intel XScale core may allocate a free buffer from the memory pool to the
RxFree queue for the next incoming packet from the NPE.
Figure 91 shows the sequence of events that occurs when a dispatcher is ran in the context of a
polling mechanism.
At the start of the dispatcher a call is made to read the status of the status flag to check if the queue
watermark threshold has been crossed. It then immediately clears the status flag. In case of livelock
prevention feature, the status flag is not cleared immediately because of the sticky interrupt
implementation.
1. The user registers a callback function with the access-layer component (for example, EthAcc).
The dispatcher invokes callback in the access-layer component, and the access-layer
component then invokes the user callback.
Figure 90. Dispatcher in Context of an Interrupt
Low Group
High Group
0
31 32
63
AQM
Interrupt High to Intel
XScale
®
Core
Queue Status Bus
to NPEs
Interrupt Low to Intel
XScale
®
Core
NPE
2
3
ISR in OS
(or) Timer
QMgr
Component
Access-
layer
Component
4
5
6
Get Queue-Status
User
Callback
1
Status
Flags
7
Register callback
Hardware
Status
Flags
8
Get the
Queue
Intel XScale
®
Core Interrupt
Controller
B3805 01