Thanks for a well-thought-out response, Jack. Just to add my 2c - Depending on your install, there's sometimes a firewall which blocks high-range UDP ports which we typically use by default. So if you can see packets coming in with Wireshark / tcpdump, but for some reason your Python sockets are hanging around with nothing happening, check that your firewall isn't blocking the packets.
Ubuntu *shouldn't* have this issue but I have seen it on CentOS. On Wed, Oct 9, 2019 at 1:55 AM Jack Hickish <[email protected]> wrote: > Hi Heystek, > > Gonna throw this one to the maillist because some other folk might find > the conversation useful. > > Am I right in thinking that you have a ROACH2 design which is outputting > data over the 10GbE port (similar to the transmission side of tutorial 2) > but want to know how to receive the data from a server, rather than just > the loopback test performed in the tutorial? > If so, the answer is, you'll need some code similar to > https://wiki.python.org/moin/UdpCommunication#Receiving > This will work fine for relatively low speed - for higher performance > you'll probably want to look at using the C socket library directly, or one > of the various higher-level libraries that other astronomy folk use which > include (e.g. spead2 (for reading SPEAD packets) and/od full piplineing > engines like HASHPIPE / Bifrost). Needless to say, everyone likes their > software to be slightly different to everyone else's, so there are a bunch > of libraries around. But I'd recommend starting with python to get the hang > of things. > > In the example, you instantiate a UDP/IP socket (the traffic from a CASPER > 10GbE core is always UDP), and bind it to the IP address and port you want > to receive on (i.e, this should be the same as the destination address the > ROACH is using). > Then you simply call recvfrom (or recv) against the socket and get your > data back as a raw binary string (which you'll need to decode with > struct.unpack calls (or numpy.fromstring, or similar). > > Things you might want to try when this inevitably doesn't work out the box. > 1. Verify your ROACH really is sending packets by putting some registers > which count the number of valid eof pulses going into the ethernet core. > (some of this kind of debugging is automatically built in to casperfpga -- > see tut2 for details) > 2. run tcpdump (`sudo tcpdump -i <interface name (e.g. eth1)>`) to verify > that packets are showing up at your machine. Use tcpdump's -e flag to check > that the MAC addresses / IP addresses in this packet are what you expect. > 3. Write a simple python TX script ( > https://wiki.python.org/moin/UdpCommunication#Sending) to send packets > from one server to another, to verify your receive code is working without > the bazillion unknowns a ROACH brings to the table. > 4. Be sure to check that the packets you are sending are smaller than the > MTU ( > https://www.cyberciti.biz/faq/how-can-i-setup-the-mtu-for-my-network-interface/) > that your server will accept > > > Cheers > Jack > > On Tue, 8 Oct 2019 at 03:08, Heystek Grobler <[email protected]> > wrote: > >> Hey Jack >> >> I hope that you are still doing well? >> >> I am struggling with the 10GBE SFP+ block. I have it in my design, the >> design complies and is working, but how do I actually get the data from >> the 10 GBE block? >> >> To use a python script with a BRAM block over normal ethernet is easy, but >> how do I go to work with the 10 GBE block? The tutorials do not really >> explain it or provide an example. >> >> Have a great day >> >> Heystek >> >> >> -- >> Heystek Grobler >> 0832721009 >> 012 3013202 >> [email protected] >> >> Spectroscopy Research Group >> Department of Fundamental Astronomy >> South African Radio Astronomy Observatory (SARAO) Hartebeesthoek Site >> >> >> -- > You received this message because you are subscribed to the Google Groups " > [email protected]" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAG1GKSnwU6og5vDkWJOa%2BOkpM5bN4Rr7W6NYTSLN%3DyzG6--6zw%40mail.gmail.com > <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAG1GKSnwU6og5vDkWJOa%2BOkpM5bN4Rr7W6NYTSLN%3DyzG6--6zw%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "[email protected]" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAG67D36ZkXUZVYw0rjAqw0tNMY97L-RNsiKW98RVP%3DYYvSfxwA%40mail.gmail.com.

