infiniband soft_RoCE implement
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.
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.
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.
@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?
@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 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
@FlashBarryAllen there are a few more open comments, can you please take of them before I continue to review the PR?
@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.
here's the pcap of rocev2@seladb
@FlashBarryAllen are you planning to continue working on this PR?
If not, should we close it?
@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.