My question is... 1)Is there any major modification to be done in the code to run a project written for a 64 bit bidirectional IXbus mode to make it run on 32 bit unidirectional IXBus mode??
From a software perspective, no. That is, you don't need to change the receive or transmit microcode. The hardware must agree upon the format (i.e., the MAC and IXP1200 must both be using the same mode)
2)what exactly is the communicaton mechanism between the microengines and the core?What I have understood is that the receive thread creates a descriptor which contains info about which port to send the packet to,and then the transmit thread reads this descriptor and transmits the packet to the specified port.But in this case the port number is 18,then how does trasmit thread make use of this port 18.Please correct me if I am wrong.
In the reference designs, port 18 is not handled by the transmit microengines. Rather, when the ingress code enqueues a descriptor on port 18, the PETH driver (or any other software you want) running in the core dequeues the descriptor and hands it (usually) to the IP stack of the OS. When the core needs to transmit a packet, it directly enqueues on the transmit queue for the outgoing port. Note that a similar model is taken by the microblocks/microACE model in IXA SDK 2.0, but the actual implementation is a bit different. In this model there are also queues between the microengines and core, but these queues avoid core/microengine locks and there are APIs for demultiplexing the packets on either side of the queues to the appropriate piece of core or microengine code.
Thanks and regards Ravi Modgekar
__________________________________________________ Do You Yahoo!? Yahoo! Sports - live college hoops coverage http://sports.yahoo.com/
participants (1)
-
Johnson, Erik J