I'm trying to write code that passes packets between microengines hopefully using ucode macros provided by the SDK. Right now, I have the Ingress ace running on ME's 0 and 1 (1 Gigabit port), Intermediate processing code on ME's 2, 3, 4, and the Egress ace running on ME 5. I need to pass packets from ME's 0,1 to ME's 2,3,4 (The egress side isn't to important right now). The DL_MESink macro seems to queue the packets up, but I'm unsure how to dequeue the packets at the other end. Can the ME-ME rings provided by the SDK be used for this, and, if so, how are packets dequeued? Thanks, Chris
Chris, Can you get the archives of this list? Some part of this was discussed earlier on this list. SDK 2.0 defines rings for each of the output ports and also for communicating between the MEs and SA. If you want to pass packets between your processing MEs, you can create additional rings in the Core component of your MicroAce and then patch them in your processing microcode. You can adapt the Enqueue/Dequeue macros of SDK 2.0 in your microcode. Some places to look at: * Archives of this list. * Understand how output port rings work (Look at where these rings are created in the core, how they are patched, and used. Then adapt it for your application rings.) * Look at FifoSource[] macro in egress for example of how dequeue works. -- abhijeet On Tue, 21 Oct 2003, Christopher S Hall wrote:
I'm trying to write code that passes packets between microengines hopefully using ucode macros provided by the SDK. Right now, I have the Ingress ace running on ME's 0 and 1 (1 Gigabit port), Intermediate processing code on ME's 2, 3, 4, and the Egress ace running on ME 5. I need to pass packets from ME's 0,1 to ME's 2,3,4 (The egress side isn't to important right now). The DL_MESink macro seems to queue the packets up, but I'm unsure how to dequeue the packets at the other end. Can the ME-ME rings provided by the SDK be used for this, and, if so, how are packets dequeued?
Thanks, Chris
participants (2)
-
Abhijeet Joglekar
-
Christopher S Hall