[ixp1200] Peculiar drops. (quiz)

Yannis Haritakis haritak at ics.forth.gr
Fri Jul 11 13:44:38 EDT 2003


Hi all,

 I ran into the following trouble recently,
and the "solution" was quite surprising!

 Let me spend a few lines to describe the environment:

 I have an ENP2506 board hosted inside a Dell server.
 One of the Gigabit ports of the ENP2506 is connected to a transmiter,
that generates large packets at a constant rate (about 600 Mbit/s).

 Now, I log into the linux running on the ENP2506.

 I use the load utility (from the ASAN drivers) to upload
some simple code to the uEngines.

 The uploaded code simply transfers incoming packets from
the gigabit port to the RFIFO and then to SDRAM.

 I use a simple utilitity to read the counters of the
gigabit port, and see how many packets were dropped and how
many packets were received correctly. This utility uses the ioctls
defined in the giga_drv module.

 One could expect that running at 600Mbit/s should be quite ok,
and never loose a single packet.

 Indeed, this is the case when I move packets from the buffer
of the port up to the RFIFO, but not into SDRAM. That is
the uploaded code has commented out the sdram2rfifo directive.

 Everything works fine, and whenever I run my utility
it reads zero drops from the counters of the port.

 Now, I modify the uploaded code so as to perform the final
move of data. So data move from the port to the RFIFO and
then to SDRAM.

In simulation the buffer of the gigabit port never
exceeds 200 bytes, using 166MHz core frequence and 66MHz IX Bus
frequency.-- well below the actual numbers of the ENP2506 --.


And here goes the problem:

 One, would expect again to have zero drops.

 However this is not the case, and whenever I ran the utility
it reports about 10 to 15 dropped packets, never more. Why ?


Hint:
 I ran the utility again, after I finished writing this
email (it took me at least 5 full minutes)
 and reported 11 drops... :-)


yannis







More information about the ixp1200 mailing list