[ixp1200] number of rings

Abhijeet Joglekar abhijeet at cs.utah.edu
Mon Jul 28 11:30:54 EDT 2003


On Sat, 26 Jul 2003, Najati Imam wrote:
> How does one determine the number of rings available to the system, or how
> many have been allocated; also, is there a way to determine which are in
> use? I would suspect, considering this is mostly just the Simple Count App
> that only 0-3 should be in use.
>
> Najati

Najati,

This part is probably not documented, so the best way is to go look
at the source code.

The RM creates 32 rings (compile-time constant), out of which 4 are used
for output rings (one for each port on the bridalveil), and for slowport
configuration, 2 are used to communicate between the ingress ME and Core,
and 1 is used to communicate between the egress ME and the Core. Ring
numbers starting from 0 are used for the ports, while ME<->Core rings
are allocated in the reverse direction from 31 downwards. Hence 0,1,2,3
would be the port rings and 29,30,31 would be the Me<->core rings.
The rest are unused, however they would be allocated if there were more
ports in the system or more MicroAces which would need some Me<->core
rings.

If you create your own Microaces which need a ring to communicate between
the core part and the microblock, then you can modify RM to allocate
some rings from the 32 rings above for your microace. For example, if
you run your own microAce apart from ingress and egress on a different
microengine, you could allocate ring numbers 27 and 28 for core<->me
communication. (Note how core<->me rings are allocated from 31 down,
while ports rings are allocated from 0 upwards)

If you want to create ME<->ME rings, you could create these rings in the
core component of your MicroAce,(independent of the RM rings)  and then
patch the ring's meta information base and data base in the microcode
which enqueues/dequeues packets from the ring. As reference code for how
to create your own rings, you could see how the RM does it in ring.c file.

-- abhijeet






More information about the ixp1200 mailing list