Re: [ixp1200] Inter-ME uCode communication
I wrote my own MESource macro and I assigned ME-to-ME queues separately. This has to be done carefully so as not to clash with the queues assigned by the resource manager, otherwise you will end up clobbering the queues already set up. I look at the resource manager source code will reveal the queues that are assigned, so that you can determine your own queues. As Abhijeet said, these are hard-coded. Also if you look at the MESink macro, you will realize that the queues in which the packets go depend on the output port, so if you want to put your packets in a different queue you will have to write a different sink macro, or you will have to manilpulate the output port register in the sending thread. -- Shyamal Pandya Arizona State University Addr: 920 S Terrace Rd #102 Tempe AZ 85281 Phone: 1-480-966-1982
From: Cyrus Hall
Reply-To: ixp1200@CS.Princeton.EDU To: ixp1200 List Subject: [ixp1200] Inter-ME uCode communication Date: 21 Jul 2003 17:03:09 -0600 I've finally gotten to the point in my code where I need to expand to multiple microengines. I think I've figured out what changes are needed in ixconfig, but other things are now vexing me.
In the count example, the dispatch loop either forwards a packet with DL_SASink[] or DL_MESink[]. From the documentation, it sounds like DL_MESink[] passes the current packet reference to the next control block (next microengine). Just like DL_SASink[] has a inverse (DL_SASource[]), I would expect the the ME version to have one, something like DL_MESource[], yet no such macro exists.
So what do must of you do? Have you just written a DL_MESource, or do you use one of the many other ways to syncronize between engines (SRAM CAM locks, or some other test-set mechanism)? I'm wondering which is the best way to go from here.
Thanks, Cy
_________________________________________________________________ MSN 8 helps eliminate e-mail viruses. Get 2 months FREE*. http://join.msn.com/?page=features/virus
participants (1)
-
Shyamal Pandya