spread code over multiple microengines (using the ACE model)
![](https://secure.gravatar.com/avatar/29805b1e8f8d6ec5dfa5c25963aa1d73.jpg?s=120&d=mm&r=g)
Hi all, Can anyone on this list provide me some details on how to spread code over several microengines (e.g. one ingress ACE on ME1, one L3 component on ME2, one egress component on ME3)? Until now, we have done everything on 2 microengines (when using the microACE framework, as presented in the tutorial), but distributing the load over more MEs seems more appropriate in the future. The configuration file (ixsys.config) requires one chooses between ingress or egress for each ace, but this is not suitable for the L3 component on ME2 (previous paragraph). Any ideas? Any help would be greatly appreciated! Kind regards, Tim
![](https://secure.gravatar.com/avatar/6fa2e5999426fe8ddc787363908e43b0.jpg?s=120&d=mm&r=g)
Tim, I am attaching some earlier emails on this list exchanged last year about adding new MicroACE types to SDK 2.0. There might be better/cleaner ways, but this could be a start. See if it helps. -- abhijeet *******
From abhijeet@cs.utah.edu Mon Mar 15 12:18:19 2004 Date: Tue, 13 May 2003 22:55:27 -0600 (MDT) From: Abhijeet Joglekar
Reply-To: ixp1200@CS.Princeton.EDU To: ixp1200 List Subject: Re: [ixp1200] running multiple microengines
Hi Andrew, You would have to modify the ixconfig application, to support new file types, new MicroAce types and also minor changes in the resource manager to ensure that dispatch loop vars and other ring variables are patched in the extra microengines which you enable. Files to look at * ixconfig/ixconfig.h (adding new file types etc) * ixconfig/microcode.c [SetupMicrocode() function. Check out case RM_UCODE_OTHER: You will have to add code here to call the RM to set up the new uof files which u want to download] * resource_manager/driver/dispatch.c ring.c and maybe other related files. Once you start making changes, you will be able to figure out which other places to look at. Below is some code snippet that I added in ixconfig.h/microcode.c/ ixsys.config. This should get you started. *************** ixconfig.h ---------- /*Added this for MicroAces whose MEB's do not run in ingress or egress pipelines */ #define RUNS_AS_PROCESSING_BLOCK 0x2 /*new microace type, like l2, l3 etc */ #define MICROACE_TYPE_SHAPER 8 enum fileType { ... .. . PROCESS_SHAPER_FILE, MAX_NUM_FILE_TYPES } microcode.c ------------ case RM_UCODE_OTHER: RmUengSetUofFile(meNum, filelist[PROCESS_SHAPER_FILE].pUcodeName, RM_UCODE_OTHER, filelist[PROCESS_SHAPER_FILE].pFileName); shaperMeMask |= (1 << meNum) ixsys.config ------------ /* 6 here is enum value for PROCESS_SHAPER_FILE */ file 6 ./ShaperEM.uof /* 2 is for RUNS_AS_PROCESSING_BLOCK, 8 is for MICROACE_TYPE_SHAPER */ microace Shaper ./shaper_ace none 2 8 *************** Basically, go through the source code of ixconfig app, follow each call to RM and you should be able to figure out which places to modify. -- abhijeet On Tue, 13 May 2003, Andrew Putra Jauri wrote:
Hi,
Does anyone know how to run more than 2 microengines on the IXP1200 card? I'm using the enp-2505 IXP1200 card with 4 10/100 mb ports. The count tutorial and the l3fwdr program from Intel use 2 microengines, 1 for ingress and the count/l3fwdr ACE and the other one for the egress. Perhaps someone has already tried this before, please give me some hints. Thanks in advance.
Andrew Jauri College of Engineering and Computer Science Portland State University
******* On Mon, 15 Mar 2004, Tim Stevens wrote:
Hi all,
Can anyone on this list provide me some details on how to spread code over several microengines (e.g. one ingress ACE on ME1, one L3 component on ME2, one egress component on ME3)? Until now, we have done everything on 2 microengines (when using the microACE framework, as presented in the tutorial), but distributing the load over more MEs seems more appropriate in the future. The configuration file (ixsys.config) requires one chooses between ingress or egress for each ace, but this is not suitable for the L3 component on ME2 (previous paragraph). Any ideas?
Any help would be greatly appreciated!
Kind regards,
Tim
_______________________________________________ ixp1200 mailing list ixp1200@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/ixp1200
participants (2)
-
Abhijeet Joglekar
-
Tim Stevens