IP Library › Granted Patent US 10,439,961
Granted Patent B2
US 10,439,961 · App. 15/307,662 · Granted Oct 8, 2019

Network fabric control

Inventors: Michael Henkel (Ruesselsheim, TX); Burson Keith Patton (Plano, TX); Marc Cottington (Bracknell, GB)
Assignee: Hewlett Packard Enterprise Development LP
H04L49/25H04L12/4641H04L12/6418H04L41/0816H04L45/12H04L45/50
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,439,961
App. No.
15/307,662
Granted
Oct 8, 2019
Kind
B2
Abstract

Techniques for controlling a network fabric are disclosed. Labels are assigned to paths between endpoints in the network fabric. Switches in the path are configured to communicate data communication packets having the label along the path. Upon receiving a first data communication packet from a first one of the switches in the network fabric for communication to a destination endpoint over the network fabric, the label for a path from the first switch to the destination is obtained, the first packet is communicated to the destination endpoint and the first switch is caused to communicate subsequent data communication packets corresponding to the first data communication packet over the path.

Claims (43)

1. A system to control a network fabric, the system comprising:

an infrastructure analyzer including at least one processor to execute computer program code to determine paths between endpoints in the network fabric and to assign a label to each path, wherein determining the paths between the endpoints and assigning the label to the each path includes:

determining shortest paths between each pair of endpoints in the network fabric, wherein upon multiple shortest paths being determined between a pair of endpoints:

assigning a label to each of the multiple shortest paths; and

monitoring usage of the each of the multiple shortest paths;

a controller including at least one processor to execute computer program code to configure switches in the path to direct data communication packets having the label along the path; and,

a network service module including at least one processor to execute computer program code to:

receive a first packet from a first switch of the switches in the network fabric for communication to a destination over the network fabric,

query the infrastructure processor to obtain the label for a path from the first switch to the destination, wherein obtaining the label for the path comprises returning the label of the least used path of the each of the multiple shortest paths when multiple shortest paths are determined between the first switch and the destination,

direct the first packet to the destination, and

program the first switch with a rule for the first switch to apply the label to subsequent packets having attributes that match attributes of the first packet, wherein applying the label comprising applying the label of the least used path of the each of the multiple shortest paths when the multiple shortest paths are determined between the first switch and the destination.

2. The system of claim 1 , further comprising a fabric monitor to monitor for changes to the network fabric and, upon detecting a change, to cause the infrastructure analyzer to update said paths and to cause said controller to update switch configuration.

3. The system of claim 1 , further comprising a data repository to store said labels and data on the label's respective path, the at least one processor of the infrastructure analyzer further executing computer program code to return the label corresponding to a path in the data repository matching a requested source and destination in the network fabric.

4. The system of claim 1 , wherein the at least one processor of the network service module further executes computer program code to configures the first switch to apply the label to the subsequent packets that correspond to the first packet.

5. The system of claim 4 , wherein the at least one processor of the network service module further executes computer program code to configure the first switch to apply the label to a subsequent packet matching at least selected ones of the first packet of: source network address, destination network address, ingress port at the first switch and a VLAN identifier.

6. The system of claim 1 , wherein the controller includes at least one processor to execute computer program code to configure switches in the path to direct a received packet having the label to a predetermined egress port associated with the path.

7. The system of claim 1 , wherein the label comprises a Multi Protocol Label Switching, MPLS, label, a QinQ (IEEE802.1ad) or a Provider Backbone Bridging (IEEE802.1ah) label.

8. The system of claim 1 , wherein the network fabric comprises a combined physical and virtual network fabric including physical and virtual switches having paths therebetween.

9. The system of claim 1 , wherein the attributes of the first packet that are matched to the subsequent packet comprise one or more of the following: a source subnetwork, a tenant, and a destination internet protocol (IP) address.

10. The system of claim 1 , wherein the network service module directly forwards the first packet directly to a destination switch in lieu of the first switch forwarding the first packet.

11. A method for controlling a network fabric comprising:

obtaining data on paths between endpoints in a network fabric and assigning a label to each path, comprising determining shortest paths between each pair of endpoints in the network fabric, wherein upon multiple shortest paths being determined between a pair of endpoints:

assigning a label to each of the multiple shortest paths; and

monitoring usage of the each of the multiple shortest paths,

storing the assigned labels in a data repository;

receiving a request for a label for a path from a source to a destination in the network fabric;

returning a label corresponding to the path from the data repository, wherein upon multiple shortest paths between the source and the destination being determined, returning the label of the least used path of the multiple shortest paths;

receiving, from a first switch of the network fabric, a first data communication packet for communication to a destination over the network fabric;

determining the label based on the assigned labels, comprising determining a label from the assigned labels for a given path from the first switch to the destination;

programming switches in the given path to direct data communication packets having the determined label along the given path;

communicating the first packet to the destination; and

programming the first switch, wherein programming the first switch comprises programming the first switch with a rule for the first switch to apply the determined label to subsequent data communication packets having attributes that match attributes of the first data communication packet, wherein applying the determined label comprising applying the label of the least used path of the each of the multiple shortest paths.

12. The method of claim 11 , wherein the attributes of the first packet that are matched to the subsequent packet comprise one or more of the following attributes a source network address, a destination network address, an ingress port at the first switch and a VLAN identifier.

13. The method of claim 11 , wherein programming switches in the path to direct data communication packets having the label along the path includes programming switches in the path to direct a received data communication packet having the label to a predetermined egress port associated with the path.

14. A non-transitory computer-readable storage medium containing instructions to control a network fabric, the instructions when executed by a processor causing the processor to:

assign labels to paths between endpoints in the network fabric, comprising determining shortest paths between each pair of endpoints in the network fabric, wherein upon multiple shortest paths being determined between a pair of endpoints:

assigning a label to each of the multiple shortest paths; and

monitoring usage of the each of the multiple shortest paths;

configure switches in the path to communicate data communication packets having the label along the path; and,

upon receiving a first data communication packet from a first one of the switches in the network fabric for communication to a destination endpoint over the network fabric,

obtaining the label for a path from the first switch to the destination, wherein obtaining the label for the path comprises returning the label of the least used path of the each of the multiple shortest paths when multiple shortest paths are determined between the first switch and the destination,

communicating the first packet to the destination endpoint, and

programming the first switch with a rule for the first switch to apply the label to subsequent data communication packets having attributes that match attributes of the first data communication packet, wherein applying the label comprising applying the label of the least used path of the each of the multiple shortest paths when the multiple shortest paths are determined between the first switch and the destination.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2016
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 040929/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2016
From: HENKEL, MICHAEL; PATTON, BURSON KEITH; COTTINGTON, MARC
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 040511/0681 →
Continuity (1)
Related Publication 20170048168A1 · Feb 16, 2017
Cited By (1)
US 12,463,877