PcapPlusPlus icon indicating copy to clipboard operation
PcapPlusPlus copied to clipboard

infiniband soft_RoCE implement

Open FlashBarryAllen opened this issue 1 year ago • 1 comments

Soft-RoCE is the software implementation of the RDMA transport. It provides a high-performance, low-latency communication mechanism for applications that require direct memory access (DMA) between nodes.

Key features and benefits of Soft-RoCE:

Kernel Integration: Since Red Hat Enterprise Linux 7.4, the Soft-RoCE driver has been merged into the kernel, making it a standard component of the operating system. User-Space Driver: The user-space driver is also integrated into the rdma-core package, providing a consistent API for applications to interact with the RDMA transport. Performance: Soft-RoCE offers high performance and low latency, making it suitable for applications that require fast, reliable communication. Flexibility: It can be used in a variety of network topologies, including Ethernet, Infiniband, and RoCE. Soft-RoCE is also known as RXE. This is an alternative name for the technology.

And the wireshark has supported rdma, I think our pcapp should syn this feature.

FlashBarryAllen avatar Oct 04 '24 07:10 FlashBarryAllen

Codecov Report

Attention: Patch coverage is 64.22764% with 88 lines in your changes missing coverage. Please review.

Project coverage is 83.03%. Comparing base (ae8652f) to head (dd63809). Report is 2 commits behind head on dev.

Files with missing lines Patch % Lines
Packet++/src/InfiniBandLayer.cpp 52.05% 69 Missing and 1 partial :warning:
Tests/Packet++Test/Tests/InfiniBandTests.cpp 78.08% 16 Missing :warning:
Packet++/header/InfiniBandLayer.h 90.90% 2 Missing :warning:
Additional details and impacted files
@@            Coverage Diff             @@
##              dev    #1603      +/-   ##
==========================================
- Coverage   83.13%   83.03%   -0.10%     
==========================================
  Files         276      279       +3     
  Lines       47315    47561     +246     
  Branches     9520     9540      +20     
==========================================
+ Hits        39337    39494     +157     
- Misses       7091     7177      +86     
- Partials      887      890       +3     
Flag Coverage Δ
fedora40 75.09% <48.29%> (-0.16%) :arrow_down:
macos-13 80.57% <58.54%> (-0.11%) :arrow_down:
macos-14 80.57% <58.54%> (-0.11%) :arrow_down:
macos-15 80.54% <58.54%> (-0.11%) :arrow_down:
mingw32 70.60% <42.85%> (-0.26%) :arrow_down:
mingw64 70.58% <42.85%> (-0.24%) :arrow_down:
npcap 84.99% <57.03%> (-0.21%) :arrow_down:
rhel94 74.94% <48.32%> (-0.13%) :arrow_down:
ubuntu2004 58.57% <40.12%> (-0.10%) :arrow_down:
ubuntu2004-zstd 58.71% <40.12%> (-0.10%) :arrow_down:
ubuntu2204 74.87% <47.97%> (-0.16%) :arrow_down:
ubuntu2204-icpx 61.40% <42.74%> (-0.08%) :arrow_down:
ubuntu2404 75.10% <48.29%> (-0.16%) :arrow_down:
unittest 83.03% <64.22%> (-0.10%) :arrow_down:
windows-2019 85.04% <57.03%> (-0.21%) :arrow_down:
windows-2022 85.06% <57.03%> (-0.21%) :arrow_down:
winpcap 85.02% <57.03%> (-0.20%) :arrow_down:
xdp 50.21% <47.97%> (-0.02%) :arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov[bot] avatar Oct 04 '24 08:10 codecov[bot]

@FlashBarryAllen in order to review this PR I'd like to know the protocol better. I did some reading and here is what I found. Can you please confirm these are good sources to understand the protocol?

  • What is RoCE? https://en.wikipedia.org/wiki/RDMA_over_Converged_Ethernet - my understanding is that you're implementing RoCE v2, is that correct?
  • How is InfiniBand related to RoCE? https://www.hpcwire.com/2010/04/22/roce_an_ethernet-infiniband_love_story/
  • RoCE v2 InfiniBand packet format: https://enterprise-support.nvidia.com/s/article/rocev2-cnp-packet-format-example
  • A few pcap examples: https://www.zhaocs.info/soft-roce%E5%88%9D%E4%BD%93%E9%AA%8C.html Do you think you can provide more examples?

seladb avatar Oct 17 '24 08:10 seladb

@FlashBarryAllen in order to review this PR I'd like to know the protocol better. I did some reading and here is what I found. Can you please confirm these are good sources to understand the protocol?

  • What is RoCE? https://en.wikipedia.org/wiki/RDMA_over_Converged_Ethernet - my understanding is that you're implementing RoCE v2, is that correct?
  • How is InfiniBand related to RoCE? https://www.hpcwire.com/2010/04/22/roce_an_ethernet-infiniband_love_story/
  • RoCE v2 InfiniBand packet format: https://enterprise-support.nvidia.com/s/article/rocev2-cnp-packet-format-example
  • A few pcap examples: https://www.zhaocs.info/soft-roce%E5%88%9D%E4%BD%93%E9%AA%8C.html Do you think you can provide more examples?

@seladb

  • Yes, you are right. I just implementing RoCE v2. And we can found RDMA including RoCE v1 and RoCE v2. BTW, RDMA is consist of InfiniBand, RoCE v1, RoCE v2 and iWARP.

  • And I implement RoCE v2 by referring to linux. https://github.com/torvalds/linux/tree/master/drivers/infiniband

FlashBarryAllen avatar Oct 19 '24 02:10 FlashBarryAllen

@FlashBarryAllen in order to review this PR I'd like to know the protocol better. I did some reading and here is what I found. Can you please confirm these are good sources to understand the protocol?

  • What is RoCE? https://en.wikipedia.org/wiki/RDMA_over_Converged_Ethernet - my understanding is that you're implementing RoCE v2, is that correct?
  • How is InfiniBand related to RoCE? https://www.hpcwire.com/2010/04/22/roce_an_ethernet-infiniband_love_story/
  • RoCE v2 InfiniBand packet format: https://enterprise-support.nvidia.com/s/article/rocev2-cnp-packet-format-example
  • A few pcap examples: https://www.zhaocs.info/soft-roce%E5%88%9D%E4%BD%93%E9%AA%8C.html Do you think you can provide more examples?

@seladb

  • Yes, you are right. I just implementing RoCE v2. And we can found RDMA including RoCE v1 and RoCE v2. BTW, RDMA is consist of InfiniBand, RoCE v1, RoCE v2 and iWARP.
  • And I implement RoCE v2 by referring to linux. https://github.com/torvalds/linux/tree/master/drivers/infiniband

Thank you @FlashBarryAllen ! Please see the PR comments above

seladb avatar Oct 19 '24 07:10 seladb

@FlashBarryAllen there are a few more open comments, can you please take of them before I continue to review the PR?

seladb avatar Oct 23 '24 05:10 seladb

@FlashBarryAllen there are a few more open comments, can you please take of them before I continue to review the PR? @seladb ok, I'll finish the comments above.

FlashBarryAllen avatar Oct 26 '24 12:10 FlashBarryAllen

here's the pcap of rocev2@seladb image

FlashBarryAllen avatar Nov 03 '24 14:11 FlashBarryAllen

@FlashBarryAllen are you planning to continue working on this PR?

If not, should we close it?

seladb avatar Mar 19 '25 05:03 seladb

@FlashBarryAllen are you planning to continue working on this PR?

If not, should we close it?

@seladb Sorry, I'm not free to this PR. You can close it.

FlashBarryAllen avatar Mar 19 '25 10:03 FlashBarryAllen