[ixp1200] Reg receive scheduler.

Jagannathan Iyer Venkatesan vjagan at cs.arizona.edu
Thu May 22 12:53:57 EDT 2003


Hi,

I am trying to develop write a packet receive code for IXP1200. I am using
a scheduler-worker paradigm to do the receive. i.e, my scheduler is in
microengine 0 and one of its thread (thread 0) checks for availability of
packet in any of the ports. I have 2 microengines doing the packet receive
and so there are 8 threads for 8 ports, one thread per port. Two other
microengines do the transmit (and one ue is free)


Actually the code works for packets of length = 64 bytes. (i.e length of
one chunk). But when the size of the packet increases, the data read from
the FIFO is corrupt. I can give more details on this if anyone is
interested.

/* some of the details that could be of interest at this time:
1) I am not using autopush. My scheduler reads the rcv_rdy_lo register.
2) The scheduler constructs the rcv_req with the thread id responsible for
that port.
3) The reading of rcv_cntl is done by the worker after it gets the
start_receive signal
4) The worker read the packet and processes it.
5) The packet that gets corrupt is usually the first workd of the IP
packet (version, etc)
*/

Thanks a lot.
Jagan.





More information about the ixp1200 mailing list