[PATCH v5] ethdev: add flow item for RoCE infiniband BTH
Ferruh Yigit
ferruh.yigit at amd.com
Wed May 31 10:47:22 CEST 2023
On 5/31/2023 4:26 AM, Dong Zhou wrote:
> IB(InfiniBand) is one type of networking used in high-performance
> computing with high throughput and low latency. Like Ethernet,
> IB defines a layered protocol (Physical, Link, Network, Transport
> Layers). IB provides native support for RDMA(Remote DMA), an
> extension of the DMA that allows direct access to remote host
> memory without CPU intervention. IB network requires NICs and
> switches to support the IB protocol.
>
> RoCE(RDMA over Converged Ethernet) is a network protocol that
> allows RDMA to run on Ethernet. RoCE encapsulates IB packets on
> Ethernet and has two versions, RoCEv1 and RoCEv2. RoCEv1 is an
> Ethernet link layer protocol, IB packets are encapsulated in the
> Ethernet layer and use Ethernet type 0x8915. RoCEv2 is an internet
> layer protocol, IB packets are encapsulated in UDP payload and
> use a destination port 4791, The format of the RoCEv2 packet is
> as follows:
> ETH + IP + UDP(dport 4791) + IB(BTH + ExtHDR + PAYLOAD + CRC)
>
> BTH(Base Transport Header) is the IB transport layer header, RoCEv1
> and RoCEv2 both contain this header. This patch introduces a new
> RTE item to match the IB BTH in RoCE packets. One use of this match
> is that the user can monitor RoCEv2's CNP(Congestion Notification
> Packet) by matching BTH opcode 0x81.
>
> This patch also adds the testpmd command line to match the RoCEv2
> BTH. Usage example:
>
> testpmd> flow create 0 group 1 ingress pattern
> eth / ipv4 / udp dst is 4791 / ib_bth opcode is 0x81
> dst_qp is 0xd3 / end actions queue index 0 / end
>
> Signed-off-by: Dong Zhou <dongzhou at nvidia.com>
> Acked-by: Ori Kam <orika at nvidia.com>
> Acked-by: Andrew Rybchenko <andrew.rybchenko at oktetlabs.ru>
>
> v2:
> - Change "ethernet" name to "Ethernet" in the commit log.
> - Add "RoCE" and "IB" 2 words to words-case.txt.
> - Add "rte_byteorder.h" header file in "rte_ib.h" to fix compile errors.
> - Add "Acked-by" labels in the first ethdev patch.
>
> v3:
> - Do rebase to fix the patch apply failure.
> - Add "Acked-by" label in the second net/mlx5 patch.
>
> v4:
> - Split this series of patches, only keep the first ethdev patch.
>
> v5:
> - Update the release notes.
> - Update the doxy-api-index.md file.
>
Applied to dpdk-next-net/main, thanks.
(release notes warning fixed while merging.)
More information about the dev
mailing list