IP Library Granted Patent US 10,958,579
Granted Patent B2
US 10,958,579 · App. 16/411,893 · Granted Mar 23, 2021

Congestion avoidance in a slice-based network

Inventors: Raja Kommula (Cupertino, CA); Jeremy Tidemann (Urbana, IL); Constantine Polychronopoulos (Palo Alto, CA); Marc Andre Bordeleau (Shawinigan, CA); Edward Choh (Richmond, CA); Ojas Gupta (Mountain View, CA); Robert Kidd (Champaign, IL); Georgios Oikonomou (Patras, GR)
Assignee: VMWARE, INC.
H04L47/122H04L45/22H04L45/24H04L47/2425H04L47/28H04L49/15H04L49/25H04L69/16
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 10,958,579
App. No.
16/411,893
Granted
Mar 23, 2021
Kind
B2
Abstract

A system can reduce congestion in slice-based networks, such as a virtual service network (“VSN”). The system can include a monitoring module that communicates with agents on switches, such as routers or servers. The switches report telematics data to the monitoring module, which determines slice-specific performance attributes such as slice latency and slice throughput. These slice-specific performance attributes are compared against software license agreement (“SLA”) requirements. When the SLA is not met, the monitoring module can implement a new slice path for the slice to reduce the congestion.

Claims (47)

1. A method for managing latency in a slice-based network, comprising:

setting a flag in a packet header for a packet that corresponds to a slice;

receiving slice-specific packet timing information from multiple switches in a slice-based network, the packet timing information being determined by agents executing on the switches, wherein the agents determine the slice-specific packet timing information by at least:

when the flag is recognized but the packet does not correlate to a flow already stored at the switch, storing the flow in association with a current time;

when the flow is recognized as stored at the respective switch based on address information in the packet header, deducting the stored current time from a new current time; and

removing the flow from storage at the switch;

determining a latency value based on the packet timing information from switches in a first slice path for the slice;

based on comparing the latency value to a threshold, selecting an alternate slice path for the slice, the alternate path including a third switch that is not in the first slice path; and

implementing the alternate slice path across at least the first and third switches.

2. The method of claim 1 , wherein the packet timing information is based on the agents reporting timing for hops at the switches, wherein the packet timing information is received by a monitoring module and added together as part of determining the latency value for the slice.

3. The method of claim 1 , wherein the threshold is established by a service level agreement (“SLA”) that includes a maximum latency for the slice.

4. The method of claim 1 , wherein the switches report the packet timing information based on recognizing the flag in a transmission control protocol (“TCP”) packet header.

5. The method of claim 1 , wherein receiving packet timing information includes receiving source and destination addresses from the first and second agents, wherein a monitoring module uses the source and destination addresses as part of calculating the latency value for the slice.

6. The method of claim 1 , wherein calculating the latency value includes averaging latency for the slice over a period of time.

7. The method of claim 1 , wherein implementing the alternate slice path includes instantiating a new virtual network function (“VNF”) for access by slice traffic at the third switch prior to setting the first switch to route slice traffic to the third switch.

8. A non-transitory, computer-readable medium comprising

instructions that, when executed by a processor, perform stages for managing latency in a slice-based network, the stages comprising:

setting a flag in a packet header for a packet that corresponds to a slice;

receiving slice-specific packet timing information from multiple switches in a slice-based network, the packet timing information being determined by agents executing on the switches, wherein the agents determine the slice-specific packet timing information by at least:

when the flag is recognized but the packet does not correlate to a flow already stored at the switch, storing the flow in association with a current time;

when the flow is recognized as stored at the respective switch based on address information in the packet header, deducting the stored current time from a new current time; and

removing the flow from storage at the switch;

determining a latency value based on the packet timing information from switches in a first slice path for the slice;

based on comparing the latency value to a threshold, selecting an alternate slice path for the slice, the alternate path including a third switch that is not in the first slice path; and

implementing the alternate slice path across at least the first and third switches.

9. The non-transitory, computer-readable medium of claim 8 , wherein the packet timing information is based on the agents reporting timing for hops at the switches, wherein the packet timing information is received by a monitoring module and added together as part of determining the latency value for the slice.

10. The non-transitory, computer-readable medium of claim 8 , wherein the threshold is established by a service level agreement (“SLA”) that includes a maximum latency for the slice.

11. The non-transitory, computer-readable medium of claim 8 , wherein the switches report the packet timing information based on recognizing the flag in a transmission control protocol (“TCP”) packet header.

12. The non-transitory, computer-readable medium of claim 8 , wherein receiving packet timing information includes receiving source and destination addresses from the first and second agents, wherein a monitoring module uses the source and destination addresses as part of calculating the latency value for the slice.

13. The non-transitory, computer-readable medium of claim 8 , wherein calculating the latency value includes averaging latency for the slice over a period of time.

14. The non-transitory, computer-readable medium of claim 8 , wherein implementing the alternate slice path includes instantiating a new virtual network function (“VNF”) for access by slice traffic at the third switch prior to setting the first switch to route slice traffic to the third switch.

15. A system for managing in a slice-based network, comprising:

a non-transitory, computer-readable medium containing instructions for a monitoring module; and

a processor that executes the monitoring module to perform stages comprising:

setting a flag in a packet header for a packet that corresponds to a slice;

receiving slice-specific packet timing information from multiple switches in a slice-based network, the packet timing information being determined by agents executing on the switches, wherein the agents determine the slice-specific packet timing information by at least:

when the flag is recognized but the packet does not correlate to a flow already stored at the switch, storing the flow in association with a current time;

when the flow is recognized as stored at the respective switch based on address information in the packet header, deducting the stored current time from a new current time; and

removing the flow from storage at the switch;

determining a latency value based on the packet timing information from switches in a first slice path for the slice;

based on comparing the latency value to a threshold, selecting an alternate slice path for the slice, the alternate path including a third switch that is not in the first slice path; and

implementing the alternate slice path across at least the first and third switches.

16. The system of claim 15 , wherein the packet timing information is based on the agents reporting timing for hops at the switches, wherein the packet timing information is received by a monitoring module and added together as part of determining the latency value for the slice.

17. The system of claim 15 , wherein the threshold is established by a service level agreement (“SLA”) that includes a maximum latency for the slice.

18. The system of claim 15 , wherein the switches report the packet timing information based on recognizing the flag in a transmission control protocol (“TCP”) packet header.

19. The system of claim 15 , wherein receiving packet timing information includes receiving source and destination addresses from the first and second agents, wherein a monitoring module uses the source and destination addresses as part of calculating the latency value for the slice.

20. The system of claim 15 , wherein calculating the latency value includes averaging latency for the slice over a period of time.

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 May 14, 2019
From: KOMMULA, RAJA; GUPTA, OJAS; BORDELEAU, MARC ANDRE; OIKONOMOU, GEORGIOS; CHOH, EDWARD; TIDEMANN, JEREMY; KIDD, ROBERT; POLYCHRONOPOULOS, CONSTANTINE
To: VMWARE, INC.
Reel/Frame 049175/0934 →
Continuity (1)
Related Publication 20200366612A1 · Nov 19, 2020