Help performing PDP with DPDK #5160
Replies: 3 comments 5 replies
-
If you want to test latency and throughput, you don't have to use DPDK. You can use the code in the Fast-DDS/test folder. In addition, PDP service discovery is participant-level service discovery, which generally uses a multicast mechanism and has built-in endpoint listening packet discovery. Please confirm whether the multicast address is correct. |
Beta Was this translation helpful? Give feedback.
-
Hi @mechaniputer, Thanks for being interested in Fast DDS and thanks also to @paxifaer for taking part in. Completing a successful simple discovery phase exchanging raw datagrams is perhaps a harsh way of measuring the intended performance. Instead, it would be easier to create a complementary publication/subscription applications in server and client to measure the round-trip time. Anyways, I will give you a couple of hints for the discovery phase:
As you can see, many details should be taken into consideration. You may reach our team for further support if required at [email protected] or by phone at +34 91 804 34 48. |
Beta Was this translation helpful? Give feedback.
-
I think I still need help with this. I am generating all of the handshake packets correctly as far as I can tell, and FastDDS is receiving them and responds, but never actually sends the DATA(w) or DATA(r). In my traces of a normal round trip FastDDS application between my two machines, the client side only has to send the announcement packet and 3 heartbeat packets (for builtin pub, sub, and participant) before the server responds with DATA(r) and DATA(w). I modified my DPDK client to only send those aforementioned packets in a loop and collected a Wireshark trace, which is attached (I had to put it into a ZIP archive due to upload file type restrictions). I have studied the fields in my generated messages in great detail and cannot find a problem. Perhaps someone else can. I would be eternally grateful. In the Wireshark trace, 10.0.0.2 is the DPDK client, and 10.0.0.1 is the FastDDS server. My question is, why doesn't the server send the builtin reader and writer packets with DATA(r) and DATA(w) submessages? Also, why is the FastDDS server sending preemptive ACKNACKs? In my successful non-DPDK trace, FastDDS did not do this. |
Beta Was this translation helpful? Give feedback.
-
Hello. I am trying to write a DPDK-based tool to test the performance of a single FastDDS host. That is, the DPDK-based tool will run on a second machine and pretend to be another instance of FastDDS, and gauge the latency and throughput of the single actual FastDDS application over the network.
I am having trouble getting the initial handshake to succeed. I am sending a packet from the DPDK side which contains participant information from a wireshark trace that I collected earlier from the round-trip FastDDS setup that I am trying to emulate. This is the first step of the PDP described in [1]. Both machines are set up with a static IP and are directly physically connected. This is the same configuration from which I collected a wireshark trace of a successful PDP to work from.
Wireshark shows that my DPDK-generated packets parse correctly on the FastDDS machine as RTPS and contain the same information (aside from updated timestamps) as the ones from my earlier trace. However the FastDDS host is not replying like it did in my original wireshark trace. In my understanding it is supposed to reply with an updated unicast version of the participant advertisement packet once it receives the participant advertisement packet from the DPDK side. However all I see coming from the FastDDS app is the repeated (10 Hz) initial packet, with similar content to the one from the DPDK side that FastDDS is not responding to.
Could anyone shed any more light on the connection process and what my packets should look like in order to get FastDDS to complete the participant discovery phase? What are the critical parameters to at least get through the PDP and start exchanging traffic for a performance test? (especially, which parameters other than the timestamp fields need to be updated and thus cannot simply be replayed from a trace of a successful PDP?).
Thank you!
[1] https://fast-dds.docs.eprosima.com/en/latest/fastdds/discovery/discovery.html#discovery-phases
Beta Was this translation helpful? Give feedback.
All reactions