Hello The path FGA<->PPC<->ethernet<->python hasn't been optimised for speed. So if you can get hold of a PCI(e) CX4 ethernet card for your capture machine then you will save yourself a considerable amount of effort and get way better max transfer rates
However: If this isn't an option, there are a couple of things you can attempt. The warning is that you will have to be(come) reasonably handy with C. As Jason mentioned, you could try larger read sizes and maybe have multiple concurrent reads from different connections in an effort to amortise the round trip time. If that doesn't work: tcpborphserver(2,3) has an extension mechanism... you can run callbacks which do things - and one option is to run something which sends out your data in UDP packets - that saves on encoding time (no katcp escaping) and also doesn't halve throughput on packet loss. It turns out that in tcpborphserver2 there is an optional mode which can be built which is specific for a pocket correlator - this does provide an example on how to implement udp data dumping. The downside is that the interface is not documented and there are some differences between v2 and v3 Another option is to look at the linux kernel driver for the network interface, there was some weirdness with the EMAC and also the PHY - so there may be the option of tweaking and fixing things to get better throughput regards marc

