IP Library › Granted Patent US 11,323,340
Granted Patent B2
US 11,323,340 · App. 16/240,792 · Granted May 3, 2022

Packet flow monitoring in software-defined networking (SDN) environments

Inventor: Mukesh Hira (Palo Alto, CA)
Assignee: VMWARE, INC.
H04L43/026H04L43/065H04L2212/00
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,323,340
App. No.
16/240,792
Granted
May 3, 2022
Kind
B2
Abstract

Example methods are provided a first host to perform packet flow monitoring in a software-defined networking (SDN) environment. One example may comprise the first host receiving a request to monitor a packet flow and triggering a telemetry process based on a predetermined event associated with the packet flow. The method may also comprise: in response to the triggered telemetry process and detecting an egress packet associated with the packet flow, generating an encapsulated packet by encapsulating the egress packet with an outer header; configuring a telemetry instruction in the outer header; and sending the encapsulated packet with the telemetry instruction to the second host via one or more intermediate network devices. The telemetry instruction may be configured to cause the one or more intermediate network devices to add, to the encapsulated packet, metadata associated with a network state experienced by the encapsulated packet.

Claims (77)

1. A method for a first host to perform packet flow monitoring in a software-defined networking (SDN) environment that includes the first host, a second host and one or more intermediate network devices connecting the first host and the second host, wherein the method comprises:

receiving, by the first host, a request to monitor a packet flow including data packets between a first virtualized computing instance supported by the first host and a second virtualized computing instance supported by the second host;

triggering, by the first host, a data-plane telemetry process based on a predetermined event associated with the packet flow, comprising:

monitoring the packet flow by comparing a performance metric associated with the packet flow with a performance threshold specified by the request; and

detecting the predetermined event in response to determination that the performance metric does not satisfy the performance threshold, wherein the data-plane telemetry process collects information associated with the packet flow; and

in response to the triggered telemetry process and detecting an egress packet associated with the packet flow,

generating, by the first host, an encapsulated packet by encapsulating the egress packet with an outer header that is addressed from the first host to the second host;

configuring, by the first host, a telemetry instruction in the outer header to cause the one or more intermediate network devices to add, to the encapsulated packet, metadata associated with a network state experienced by the encapsulated packet; and

sending, by the first host, the encapsulated packet with the telemetry instruction to the second host via the one or more intermediate network devices.

2. The method of claim 1 , wherein the method further comprises:

receiving, from the second host, the metadata added to the encapsulated packet by the one or more intermediate network devices; and

storing the metadata in a local storage accessible by the first host.

3. The method of claim 2 , wherein the method further comprises:

retrieving, from the local storage, the metadata; and

generating and sending, to a user device, a response that includes the metadata to facilitate a troubleshooting operation associated with the packet flow.

4. The method of claim 2 , wherein configuring the telemetry instruction comprises:

configuring the telemetry instruction to cause the second host to send, to the first host, the metadata added to the encapsulated packet by the one or more intermediate network devices.

5. The method of claim 1 , wherein receiving the request comprises:

receiving, from a user device, the request in the form of a command that specifies five-tuple information associated with the packet flow and the performance threshold.

6. The method of claim 1 , wherein configuring the telemetry instruction comprises:

configuring the telemetry instruction to cause the one or more intermediate network devices to add one or more of the following metadata:

device-level information that includes a switch identifier (ID) to identify a particular intermediate network device;

ingress port information associated with the particular intermediate network device that includes one or more of the following: an ingress port ID, ingress timestamp, ingress port receive (RX) packet count, ingress port RX byte count, ingress port drop count, and ingress port RX utilization;

egress port information associated with the particular intermediate network device that includes one or more of the following: egress port ID, egress timestamp, hop latency, egress port transmit (TX) packet count, egress port TX byte count, egress port drop count, egress port TX link utilization; and

buffer information associated with the particular intermediate network device that includes one or more of the following: a queue ID, queue occupancy information, queue congestion status and queue drop count.

7. A non-transitory computer-readable storage medium that includes a set of instructions which, in response to execution by a processor of a first host, cause the processor to perform packet flow monitoring in a software-defined networking (SDN) environment that includes the first host, a second host and one or more intermediate network devices connecting the first host and the second host, wherein the method comprises:

receiving, by the first host, a request to monitor a packet flow including data packets between a first virtualized computing instance supported by the first host and a second virtualized computing instance supported by the second host;

triggering, by the first host, a data-plane telemetry process based on a predetermined event associated with the packet flow, comprising:

monitoring the packet flow by comparing a performance metric associated with the packet flow with a performance threshold specified by the request; and

detecting the predetermined event in response to determination that the performance metric does not satisfy the performance threshold, wherein the data-plane telemetry process collects information associated with the packet flow; and

in response to the triggered telemetry process and detecting an egress packet associated with the packet flow,

generating, by the first host, an encapsulated packet by encapsulating the egress packet with an outer header that is addressed from the first host to the second host;

configuring, by the first host, a telemetry instruction in the outer header to cause the one or more intermediate network devices to add, to the encapsulated packet, metadata associated with a network state experienced by the encapsulated packet; and

sending, by the first host, the encapsulated packet with the telemetry instruction to the second host via the one or more intermediate network devices.

8. The non-transitory computer-readable storage medium of claim 7 , wherein the method further comprises:

receiving, from the second host, the metadata added to the encapsulated packet by the one or more intermediate network devices; and

storing the metadata in a local storage accessible by the first host.

9. The non-transitory computer-readable storage medium of claim 8 , wherein the method further comprises:

retrieving, from the local storage, the metadata; and

generating and sending, to a user device, a response that includes the metadata to facilitate a troubleshooting operation associated with the packet flow.

10. The non-transitory computer-readable storage medium of claim 8 , wherein configuring the telemetry instruction comprises:

configuring the telemetry instruction to cause the second host to send, to the first host, the metadata added to the encapsulated packet by the one or more intermediate network devices.

11. The non-transitory computer-readable storage medium of claim 7 , wherein receiving the request comprises:

receiving, from a user device, the request in the form of a command that specifies five-tuple information associated with the packet flow and the performance threshold.

12. The non-transitory computer-readable storage medium of claim 7 , wherein configuring the telemetry instruction comprises:

configuring the telemetry instruction to cause the one or more intermediate network devices to add one or more of the following metadata:

device-level information that includes a switch identifier (ID) to identify a particular intermediate network device;

ingress port information associated with the particular intermediate network device that includes one or more of the following: an ingress port ID, ingress timestamp, ingress port receive (RX) packet count, ingress port RX byte count, ingress port drop count, and ingress port RX utilization;

egress port information associated with the particular intermediate network device that includes one or more of the following: egress port ID, egress timestamp, hop latency, egress port transmit (TX) packet count, egress port TX byte count, egress port drop count, egress port TX link utilization; and

buffer information associated with the particular intermediate network device that includes one or more of the following: a queue ID, queue occupancy information, queue congestion status and queue drop count.

13. A first host configured to perform packet flow monitoring in a software-defined networking (SDN) environment that includes the first host, a second host and one or more intermediate network devices connecting the first host and the second host, wherein the first host comprises:

a processor; and

a non-transitory computer-readable medium having stored thereon instructions that, when executed by the processor, cause the processor to:

receive, by the first host, a request to monitor a packet flow including data packets between a first virtualized computing instance supported by the first host and a second virtualized computing instance supported by the second host;

trigger, by the first host, a data-plane telemetry process based on a predetermined event associated with the packet flow, comprising:

monitoring the packet flow by comparing a performance metric associated with the packet flow with a performance threshold specified by the request; and

detecting the predetermined event in response to determination that the performance metric does not satisfy the performance threshold, wherein the data-plane telemetry process collects information associated with the packet flow; and

in response to the triggered telemetry process and detecting an egress packet associated with the packet flow,

generate, by the first host, an encapsulated packet by encapsulating the egress packet with an outer header that is addressed from the first host to the second host;

configure, by the first host, a telemetry instruction in the outer header to cause the one or more intermediate network devices to add, to the encapsulated packet, metadata associated with a network state experienced by the encapsulated packet; and

send, by the first host, the encapsulated packet with the telemetry instruction to the second host via the one or more intermediate network devices.

14. The first host of claim 13 , wherein the instructions further cause the processor to:

receive, from the second host, the metadata added to the encapsulated packet by the one or more intermediate network devices; and

store the metadata in a local storage accessible by the first host.

15. The first host of claim 14 , wherein the instructions further cause the processor to:

retrieve, from the local storage, the metadata; and

generate and send, to a user device, a response that includes the metadata to facilitate a troubleshooting operation associated with the packet flow.

16. The first host of claim 14 , wherein the instructions for configuring the telemetry instruction cause the processor to:

configure the telemetry instruction to cause the second host to send, to the first host, the metadata added to the encapsulated packet by the one or more intermediate network devices.

17. The first host of claim 13 , wherein the instructions for receiving the request cause the processor to:

receive, from a user device, the request in the form of a command that specifies five-tuple information associated with the packet flow and the performance threshold.

18. The first host of claim 13 , wherein the instructions further cause the processor to:

configure the telemetry instruction to cause the one or more intermediate network devices to add one or more of the following metadata:

device-level information that includes a switch identifier (ID) to identify a particular intermediate network device;

ingress port information associated with the particular intermediate network device that includes one or more of the following: an ingress port ID, ingress timestamp, ingress port receive (RX) packet count, ingress port RX byte count, ingress port drop count, and ingress port RX utilization;

egress port information associated with the particular intermediate network device that includes one or more of the following: egress port ID, egress timestamp, hop latency, egress port transmit (TX) packet count, egress port TX byte count, egress port drop count, egress port TX link utilization; and

buffer information associated with the particular intermediate network device that includes one or more of the following: a queue ID, queue occupancy information, queue congestion status and queue drop count.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2019
From: HIRA, MUKESH
To: VMWARE, INC.
Reel/Frame 047911/0096 →
Continuity (1)
Related Publication 20200220793A1 · Jul 9, 2020
Cited By (1)
US 12,542,725