[PATCH v4] ethdev: add flow item for RoCE infiniband BTH
Dong Zhou
dongzhou at nvidia.com
Wed May 31 05:22:34 CEST 2023
> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit at amd.com>
> Sent: Wednesday, May 31, 2023 1:46 AM
> To: Dong Zhou <dongzhou at nvidia.com>; Ori Kam <orika at nvidia.com>; NBU-
> Contact-Thomas Monjalon (EXTERNAL) <thomas at monjalon.net>; Aman Singh
> <aman.deep.singh at intel.com>; Yuying Zhang <yuying.zhang at intel.com>;
> Andrew Rybchenko <andrew.rybchenko at oktetlabs.ru>; Olivier Matz
> <olivier.matz at 6wind.com>
> Cc: dev at dpdk.org
> Subject: Re: [PATCH v4] ethdev: add flow item for RoCE infiniband BTH
>
> On 5/30/2023 4:06 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.
> >
>
> Patch looks good, can you please add a release notes update too?
Sure, will send the v5 patch to update it.
More information about the dev
mailing list