Replies: 2 comments
-
Hi Rick. Your understanding is correct. I can see a few approaches to consider, depending on the exact details of what you're trying to do:
|
Beta Was this translation helpful? Give feedback.
-
Hi Bruce. Thanks for the detailed response. I had tried option 2 (using Option 1 (using udpreplay) might be an alternative in the future, but the shortcomings you mention (full loading of the file, no endpoint specifications) mean we'd have to invest a bit more of time with that. There was also my implicit expectation that we could embed this into our sender program, but spawning a new process would be fine TBH. Option 4 seems like a no-go given all the issues it has, but I'll keep it in mind for the future. |
Beta Was this translation helpful? Give feedback.
-
The SKA Mid folks have produced some data dumps from their correlator prototype in the shape of packet capture files. The data dumps were done on the "any" libpcap device, which is why they ended up using the Linux SLL format (the support we added in #185). These data dumps also capture packets for heaps belonging to multiple streams, with receivers listening on multiple ports.
What we want to achieve is to "replay" these files, reading these heaps and acting as a spead sender, replicating the individual streams that were originally streamed. What I was originally planning to do was to use a receiver stream with a pcap reader to "receive"/read the heaps, then forward those with my senders to their endpoint. However, the pcap receiver currently cannot be constrained to consider only heaps belonging to a particular stream, or sent to a particular port (and there's no way to infer that information from a heap AFAIR).
Given that understanding, I was planning on adding an option to the udp_pcap reader so that it only considers UDP packets for sent to a specific port; that way I could open N receivers each with a pcap reader for each of the ports I'm interested in, then do my heap forwarding. This would be a simple change I believe, but it means I'd have to read the dump N times. An alternative implementation could feed the N receivers using a single pass over the data dump, but that would be more work to get right I believe.
So:
tcpdump
to isolate each stream into its own capture file, then setup N receivers with one of the sub-files each. This of course requires some minor pre-processing before the files we receive are usable, and means my program will have to read N files, but doesn't require changes in spead2. I might end up going this way in the short term anyway (we'd be looking at trying this out in about 2 months or so), while a more permanent solution is sought.Beta Was this translation helpful? Give feedback.
All reactions