IP Library Granted Patent US 11,184,295
Granted Patent B2
US 11,184,295 · App. 16/236,282 · Granted Nov 23, 2021

Port mirroring based on remote direct memory access (RDMA) in software-defined networking (SDN) environments

Inventors: Feng Pan (Beijing, CN); Xu Wang (Beijing, CN); Qiong Wang (Beijing, CN); Donghai Han (Beijing, CN); Qi Wu (Beijing, CN)
Assignee: VMWARE, INC.
H04L49/208G06F15/17331
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,184,295
App. No.
16/236,282
Granted
Nov 23, 2021
Kind
B2
Abstract

Example methods are provided for port mirroring based on remote direct memory access (RDMA) in a software-defined networking (SDN) environment. One example method may comprise obtaining configuration information associated with a port mirroring session between a source logical port supported by a source host and a destination logical port supported by a destination host, and establishing an RDMA-based connection between the source and destination hosts. The method may also comprise: in response to detecting a packet passing through the source logical port, generating a mirrored packet based on the detected packet, and storing, in source memory associated with the source host, the mirrored packet in association with destination information identifying the destination logical port or destination host. The method may further comprise transferring the mirrored packet from the source memory to destination memory associated with the destination host via the RDMA-based connection.

Claims (59)

1. A method for a source host to perform port mirroring based on remote direct memory access (RDMA) in a software-defined networking (SDN) environment that includes the source host and a destination host, the method comprising:

obtaining configuration information associated with a port mirroring session between a source logical port supported by the source host and a destination logical port supported by the destination host;

based on the configuration information, establishing an RDMA-based connection between the source host and the destination host; and

in response to detecting a packet that passes through the source logical port:

generating a mirrored packet based on the detected packet;

storing, in source memory associated with the source host, the mirrored packet in association with destination information that identifies the destination logical port or destination host; and

based on the destination information, transferring the mirrored packet from the source memory to destination memory associated with the destination host via the RDMA-based connection to cause the destination host to forward the mirrored packet to the destination logical port.

2. The method of claim 1 , wherein storing the mirrored packet comprises:

invoking, by a source port mirroring module supported by the source host, a send operation to push the mirrored packet from the source memory accessible by the source port mirroring module to a memory buffer accessible by a source RDMA-capable network interface controller (NIC) of the source host.

3. The method of claim 1 , wherein establishing the RDMA-based port mirroring connection comprises:

sending, from a source port mirroring module supported by the source host, a connection request to establish the RDMA-based connection with a destination port mirroring module supported by the destination host.

4. The method of claim 1 , wherein transferring the mirrored packet comprises:

generating an encapsulated packet that includes the mirrored packet and an outer header that includes the destination information.

5. The method of claim 4 , wherein transferring the mirrored packet comprises:

transferring the encapsulated packet from a source RDMA-capable NIC at the source host to a destination RDMA-capable NIC at the destination via the RDMA-based connection.

6. The method of claim 1 , wherein the destination logical port includes a first destination logical port and the destination host includes a first destination host, and wherein obtaining the configuration information further comprises:

obtaining configuration information that specifies a second destination logical port supported by a second destination host.

7. The method of claim 6 , wherein storing the mirrored packet comprises:

storing, in the source memory, the mirrored packet in association with destination information that identifies both (a) the first destination logical port or first destination host, and (b) the second destination logical port or second destination host to facilitate transfer of the mirrored packet to both the first destination host and the second destination host.

8. A non-transitory computer-readable storage medium that includes a set of instructions which, in response to execution by a processor of a computer system, cause the processor to implement a method of port mirroring based on remote direct memory access (RDMA) in a software-defined networking (SDN) environment that includes the source host and a destination host, wherein the method comprises:

obtaining configuration information associated with a port mirroring session between a source logical port supported by the source host and a destination logical port supported by the destination host;

based on the configuration information, establishing an RDMA-based connection between the source host and the destination host; and

in response to detecting a packet that passes through the source logical port:

generating a mirrored packet based on the detected packet;

storing, in source memory associated with the source host, the mirrored packet in association with destination information that identifies the destination logical port or destination host; and

based on the destination information, transferring the mirrored packet from the source memory to destination memory associated with the destination host via the RDMA-based connection for subsequent forwarding to the destination logical port.

9. The non-transitory computer-readable storage medium of claim 8 , wherein storing the mirrored packet comprises:

invoking, by a source port mirroring module supported by the source host, a send operation to push the mirrored packet from the source memory accessible by the source port mirroring module to a memory buffer accessible by a source RDMA-capable network interface controller (NIC) of the source host.

10. The non-transitory computer-readable storage medium of claim 8 , wherein establishing the RDMA-based port mirroring connection comprises:

sending, from a source port mirroring module supported by the source host, a connection request to establish the RDMA-based connection with a destination port mirroring module supported by the destination host.

11. The non-transitory computer-readable storage medium of claim 8 , wherein transferring the mirrored packet comprises:

generating an encapsulated packet that includes the mirrored packet and an outer header that includes the destination information.

12. The non-transitory computer-readable storage medium of claim 11 , wherein transferring the mirrored packet comprises:

transferring the encapsulated packet from a source RDMA-capable NIC at the source host to a destination RDMA-capable NIC at the destination via the RDMA-based connection.

13. The non-transitory computer-readable storage medium of claim 8 , wherein the destination logical port includes a first destination logical port and the destination host includes a first destination host, and wherein the method further comprises:

obtaining configuration information that specifies a second destination logical port supported by a second destination host.

14. The non-transitory computer-readable storage medium of claim 13 , wherein storing the mirrored packet comprises:

storing, in the source memory, the mirrored packet in association with destination information that identifies both (a) the first destination logical port or first destination host, and (b) the second destination logical port or second destination host to facilitate transfer of the mirrored packet to both the first destination host and the second destination host.

15. A computer system capable to act as a source host to perform port mirroring based on remote direct memory access (RDMA) in a software-defined networking (SDN) environment that includes the source host and a destination host, the computer system comprising:

a processor; and

a non-transitory computer-readable medium having stored thereon instructions that, in response to execution by the processor, cause the processor to:

obtain configuration information associated with a port mirroring session between a source logical port supported by the source host and a destination logical port supported by the destination host;

based on the configuration information, establish an RDMA-based connection between the source host and the destination host; and

in response to detecting a packet that passes through the source logical port:

generate a mirrored packet based on the detected packet;

store, in source memory associated with the source host, the mirrored packet in association with destination information that identifies the destination logical port or destination host; and

based on the destination information, transfer the mirrored packet from the source memory to destination memory associated with the destination host via the RDMA-based connection for subsequent forwarding to the destination logical port.

16. The computer system of claim 15 , wherein the instructions that cause the processor to store the mirrored packet cause the processor to:

invoke, using a source port mirroring module supported by the source host, a send operation to push the mirrored packet from the source memory accessible by the source port mirroring module to a memory buffer accessible by a source RDMA-capable network interface controller (NIC) of the source host.

17. The computer system of claim 15 , wherein the instructions that cause the processor to establish the RDMA-based port mirroring connection cause the processor to:

send, from a source port mirroring module supported by the source host, a connection request to establish the RDMA-based connection with a destination port mirroring module supported by the destination host.

18. The computer system of claim 15 , wherein the instructions that cause the processor to transfer the mirrored packet cause the processor to:

generate an encapsulated packet that includes the mirrored packet and an outer header that includes the destination information.

19. The computer system of claim 18 , wherein the instructions that cause the processor to transfer the mirrored packet cause the processor to:

transfer the encapsulated packet from a source RDMA-capable NIC at the source host to a destination RDMA-capable NIC at the destination via the RDMA-based connection.

20. The computer system of claim 15 , wherein the destination logical port includes a first destination logical port and the destination host includes a first destination host, and wherein the instructions that cause the processor to obtain the configuration information cause the processor to:

obtain configuration information that specifies a second destination logical port supported by a second destination host.

21. The computer system of claim 20 , wherein the instructions that cause the processor to store the mirrored packet cause the processor to:

store, in the source memory, the mirrored packet in association with destination information that identifies both (a) the first destination logical port or first destination host, and (b) the second destination logical port or second destination host to facilitate transfer of the mirrored packet to both the first destination host and the second destination host.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2018
From: PAN, FENG; WANG, XU; WANG, QIONG; HAN, DONGHAI; WU, QI
To: VMWARE, INC.
Reel/Frame 047873/0500 →