IP Library › Granted Patent US 10,432,532
Granted Patent B2
US 10,432,532 · App. 15/208,133 · Granted Oct 1, 2019

Dynamically pinning micro-service to uplink port

Inventors: Sourabh Patwardhan (San Jose, CA); Rajasekhar Manam (San Jose, CA)
Assignee: CISCO TECHNOLOGY, INC.
H04L47/125H04L12/4645H04L45/50H04L47/2475H04L47/803H04L2012/4629
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,432,532
App. No.
15/208,133
Granted
Oct 1, 2019
Kind
B2
Abstract

A virtual networking switch on a host computing device can receive a first data packet of a micro-service data flow from a virtual machine running on the host computing device. The first data packet can include micro-service flow data identifying a first container instance that transmitted the first data packet. The virtual networking switch can provide a subset of the micro-service flow data to a container orchestrator, that utilizes the first subset of the micro-service flow data to assign a label to the first micro-service data flow. The virtual networking switch can pin the first micro-service data flow to a first uplink port of the host computing device based on the label assigned to the first micro-service data flow, causing data packets received from the virtual machine as part of the first micro-service data flow to be forwarded to their intended recipient via the first uplink port.

Claims (58)

1. A method comprising:

receiving, at a virtual networking switch of a host computing device, a first data packet of a micro-service data flow from a virtual machine running on the host computing device, the virtual machine hosting a set of one or more container instances providing micro-services, the first data packet including micro-service flow data identifying a first container instance from the set of one or more container instances that transmitted the first data packet;

providing at least a first subset of the micro-service flow data to a container orchestrator, the container orchestrator utilizing the first subset of the micro-service flow data to assign a label to the micro-service data flow;

pinning the micro-service data flow to a first uplink port of the host computing device based on the label to cause data packets received from the virtual machine as part of the micro-service data flow to be forwarded to their intended recipient via the first uplink port;

determining an event has occurred, the event being an operational related event or configuration related event; and

determining whether the first uplink port can provide a desired bandwidth for a micro-service provided by the first container instance.

2. The method of claim 1 , wherein the first subset of the micro-service flow data includes at least one of an IP address, a source port number, Virtual Extensible Local-Area Network (VXLAN) identifier, Virtual Local-Area Network (VLAN) identifier) or network header field data.

3. The method of claim 1 , wherein pinning the micro-service data flow includes updating a pinning table to include at least a second subset of the micro-service flow data and an identifier corresponding to the first uplink port.

4. The method of claim 3 , further comprising:

after pinning the micro-service data flow to the first uplink port, receiving a second data packet of the micro-service data flow from the virtual machine;

determining, based on the pinning table, that the second data packet should be forwarded to its intended recipient via the first uplink port; and

forwarding the second data packet to its intended recipient via the first uplink port.

5. The method of claim 1 , wherein the label assigned to the micro-service data flow identifies the micro-service provided by the first container instance.

6. The method of claim 5 , wherein pinning the micro-service data flow comprises:

identifying, based on the label, a bandwidth allocation policy assigned to the micro-service provided by the first container instance, the bandwidth allocation policy identifying the desired bandwidth for the micro-service provided by the first container instance; and

determining that the first uplink port can provide the desired bandwidth for the micro-service provided by the first container instance.

7. A virtual networking switch of a host computing device, comprising:

one or more computer processors; and

a memory storing instructions that, when executed by the one or more computer processors, cause the virtual networking switch to:

receive a first data packet of a micro-service data flow from a virtual machine running on the host computing device, the virtual machine hosting a set of one or more container instances providing micro-services, the first data packet including micro-service flow data identifying a first container instance from the set of one or more container instances that transmitted the first data packet;

provide at least a first subset of the micro-service flow data to a container orchestrator, the container orchestrator utilizing the first subset of the micro-service flow data to assign a label to the micro-service data flow;

pin the micro-service data flow to a first uplink port of the host computing device based on the label to cause data packets received from the virtual machine as part of the micro-service data flow to be forwarded to their intended recipient via the first uplink port;

determine an event has occurred, the event being an operational related event or configuration related event; and

determine whether the first uplink port can provide a desired bandwidth for a micro-service provided by the first container instance.

8. The virtual networking switch of claim 7 , wherein the first subset of the micro-service flow data includes at least one of an IP address, a source port number, Virtual Extensible Local-Area Network (VXLAN) identifier, Virtual Local-Area Network (VLAN) identifier) or network header field data.

9. The virtual networking switch of claim 7 , wherein pinning the micro-service data flow includes updating a pinning table to include at least a second subset of the micro-service flow data and an identifier corresponding to the first uplink port.

10. The virtual networking switch of claim 9 , wherein the instructions further cause the virtual networking switch to:

after pinning the micro-service data flow to the first uplink port, receive a second data packet of the micro-service data flow from the virtual machine;

determine, based on the pinning table, that the second data packet should be forwarded to its intended recipient via the first uplink port; and

forward the second data packet to its intended recipient via the first uplink port.

11. The virtual networking switch of claim 7 , wherein the label assigned to the micro-service data flow identifies the micro-service provided by the first container instance.

12. The virtual networking switch of claim 11 , wherein pinning the micro-service data flow comprises:

identifying, based on the label, a bandwidth allocation policy assigned to the micro-service provided by the first container instance, the bandwidth allocation policy identifying the desired bandwidth for the micro-service provided by the first container instance; and

determining that the first uplink port can provide the desired bandwidth for the micro-service provided by the first container instance.

13. A non-transitory computer-readable medium storing instructions that, when executed by a virtual networking switch, cause the virtual networking switch to:

receive a first data packet of a micro-service data flow from a virtual machine running on a host computing device, the virtual machine hosting a set of one or more container instances providing micro-services, the first data packet including micro-service flow data identifying a first container instance from the set of one or more container instances that transmitted the first data packet;

provide at least a first subset of the micro-service flow data to a container orchestrator, the container orchestrator utilizing the first subset of the micro-service flow data to assign a label to the micro-service data flow;

pin the micro-service data flow to a first uplink port of the host computing device based on the label to cause data packets received from the virtual machine as part of the micro-service data flow to be forwarded to their intended recipient via the first uplink port; and

determine an event has occurred, the event being an operational related event or configuration related event; and

determine whether the first uplink port can provide a desired bandwidth for a micro-service provided by the first container instance.

14. The non-transitory computer-readable medium of claim 13 , wherein the first subset of the micro-service flow data includes at least one of an IP address, a source port number, Virtual Extensible Local-Area Network (VXLAN) identifier, Virtual Local-Area Network (VLAN) identifier) or network header field data.

15. The non-transitory computer-readable medium of claim 13 , wherein pinning the micro-service data flow includes updating a pinning table to include at least a second subset of the micro-service flow data and an identifier corresponding to the first uplink port.

16. The non-transitory computer-readable medium of claim 15 , wherein the instructions further cause the virtual networking switch to:

after pinning the micro-service data flow to the first uplink port, receive a second data packet of the micro-service data flow from the virtual machine;

determine, based on the pinning table, that the second data packet should be forwarded to its intended recipient via the first uplink port; and

forward the second data packet to its intended recipient via the first uplink port.

17. The non-transitory computer-readable medium of claim 13 , wherein the label assigned to the micro-service data flow identifies the micro-service provided by the first container instance.

18. The non-transitory computer-readable medium of claim 17 , wherein pinning the micro-service data flow comprises:

identifying, based on the label, a bandwidth allocation policy assigned to the micro-service provided by the first container instance, the bandwidth allocation policy identifying the desired bandwidth for the micro-service provided by the first container instance; and

determining that the first uplink port can provide the desired bandwidth for the micro-service provided by the first container instance.

19. The method of claim 1 , further comprising:

determining the first uplink port can no longer provide the desired bandwidth for the micro-service provided by the first container instance;

determining a second uplink port can provide the desired bandwidth for the micro-service provided by the first container instance; and

pinning the micro-service data flow to the second uplink port.

20. The virtual networking switch of claim 7 , further comprising

determining the first uplink port can no longer provide the desired bandwidth for the micro-service provided by the first container instance;

determining a second uplink port can provide the desired bandwidth for the micro-service provided by the first container instance; and

pinning the micro-service data flow to the second uplink port.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2016
From: PATWARDHAN, SOURABH; MANAM, RAJASEKHAR
To: CISCO TECHNOLOGY, INC.
Reel/Frame 039136/0430 →
Continuity (1)
Related Publication 20180019948A1 · Jan 18, 2018