IP Library Granted Patent US 10,033,645
Granted Patent B2
US 10,033,645 · App. 14/869,328 · Granted Jul 24, 2018

Programmable data plane hardware load balancing system

Inventors: Sanjay Sane (Fremont, CA); Krishnamurthy Subramanian (Saratoga, CA)
Assignee: Dell Products L.P.
H04L47/125H04L69/16H04L69/324
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,033,645
App. No.
14/869,328
Filed
Sep 29, 2015
Granted
Jul 24, 2018
Kind
B2
Art Unit
2478
USPC
370/235
Abstract

A programmable data plane hardware load balancing system includes a plurality of server devices and an edge networking device that is located on an edge of a local area network. The edge networking device includes programmable data plane hardware that integrates each of at least one communications port, a server device table, and a load balancing engine. The at least one communications port is coupled to the plurality of server devices. The server device table includes health information about the plurality of server devices. The load balancing engine is configured to receive traffic directed to the plurality of server devices through the at least one communication port, and has been programmed to forward the traffic to one of the plurality of server devices in response to performing health based load balancing on the traffic using the health information about the plurality of server devices in the server device table.

Claims (52)

1. A programmable data plane hardware load balancing system, comprising:

a plurality of server devices;

a first switch device that is located on an edge of a local area network and that is configured to perform network switch functions in the local area network, wherein the first switch device includes programmable hardware primitives and utilizes a domain specific, protocol independent, target independent, and field reconfigurable programming language to provide programmable data plane hardware that integrates each of:

at least one communications port that is coupled to the plurality of server devices;

a server device table including health information about the plurality of server devices; and

a load balancing engine that is configured to:

receive data plane traffic that is directed to the plurality of server devices through the at least one communication port;

determine that a source of the data plane traffic that is directed to the plurality of server devices enables load balancing functionality and, in response, perform health based load balancing on the data plane traffic using the health information about the plurality of server devices in the server device table; and

forward, based on the health based load balancing, the data plane traffic to one of the plurality of server devices; and

a second switch device that is coupled to the first switch device, wherein the load balancing engine is further configured to:

disable load balancing functionality when the source of the data plane traffic is the second switch device; and

perform the network switch functions to forward the data plane traffic.

2. The programmable data plane hardware load balancing system of claim 1 , further comprising:

a router device coupled to the first switch device, wherein the load balancing engine receives the data plane traffic through the communication port from the router device, and wherein the router device is the source of the data plane traffic that enables load balancing functionality.

3. The programmable data plane hardware load balancing system of claim 1 , wherein the load balancing engine receives the data plane traffic through the communication port from a first server device of the plurality of server devices and the first server device is the source of the data plane traffic that enables load balancing functionality, and wherein the load balancing engine has been programmed to forward the data plane traffic to a second server device of the plurality of server devices in response to performing the health based load balancing on the data plane traffic.

4. The programmable data plane hardware load balancing system of claim 1 , further comprising:

a second switch device coupled to the first switch device, wherein the load balancing engine is configured to:

store state information related to the forwarding of the data plane traffic to the one of the plurality of server devices; and

forward the state information to the second switch device.

5. The programmable data plane hardware load balancing system of claim 1 , wherein the health information about the plurality of server devices includes Transport Control Protocol (TCP) connection information describing the number of TCP connections provided for each of the plurality of server devices.

6. An information handling system (IHS), comprising:

a chassis; a processing system housed in the chassis;

a memory system that is coupled to the processing system and that includes instructions that, when executed by the processing system, cause the processing system to provide a switch engine that is configured to perform network switch functions in a local area network; and

programmable hardware primitives utilizing a domain specific, protocol independent, target independent, and field reconfigurable programming language to provide programmable data plane hardware that is housed in the chassis and that integrates each of:

at least one communications port that is configured to couple to a plurality of server devices;

a server device table that is configured to include health information about the plurality of server devices; and

a load balancing engine that is configured to:

receive data plane traffic that is directed to the plurality of server devices through the at least one communication port;

determine that a source of the data plane traffic that is directed to the plurality of server devices enables load balancing functionality and, in response, perform health based load balancing on the data plane traffic using the health information about the plurality of server devices in the server device table;

forward, based on the health based load balancing, the data plane traffic to one of the plurality of server devices;

disable load balancing functionality when the source of the data plane traffic is a switch; and

cause the switch engine to perform the network switch functions to forward the data plane traffic.

7. The IHS of claim 6 , wherein the load balancing engine receives the data plane traffic through the communication port from a router device, and wherein the router device is the source of the data plane traffic that enables load balancing functionality.

8. The IHS of claim 6 , wherein the load balancing engine receives the data plane traffic through the communication port from a first server device of the plurality of server devices and the first server device is the source of the data plane traffic that enables load balancing functionality, and wherein the load balancing engine is programmable to forward the data plane traffic to a second server device of the plurality of server devices in response to performing the health based load balancing on the data plane traffic.

9. The IHS of claim 6 , wherein the load balancing engine is programmable to store state information related to the forwarding of the data plane traffic to the one of the plurality of server devices, and forward the state information to a switch device in the local area network.

10. The IHS of claim 6 , wherein the health information about the plurality of server devices includes Transport Control Protocol (TCP) connection information describing the number of TCP connections provided for each of the plurality of server devices.

11. The IHS of claim 6 , wherein the load balancing engine is programmable to retrieve the health information from each of the plurality of server devices.

12. A method for performing programmable data plane hardware load balancing, comprising:

performing, by a first switch device, network switch functions in a local area network;

receiving, by a load balancing engine integrated into programmable data plane hardware included in the first switch device through at least one communications port integrated into the programmable data plane hardware of the first switch device, data plane traffic that is directed to a plurality of server devices, wherein the programmable data plane hardware is provided by programmable hardware primitives utilizing a domain specific, protocol independent, target independent, and field reconfigurable programming language;

determining, by the load balancing engine, that a source of the data plane traffic that is directed to the plurality of server devices enables load balancing functionality and, in response, performing health based load balancing on the data plane traffic using health information about the plurality of server devices that is stored in a server device table integrated into the programmable data plane hardware;

forwarding, by the load balancing engine through the at least one communications port, the data plane traffic to one of the plurality of server devices in response to performing health based load balancing;

disabling, by the load balancing engine, the load balancing functionality when the source of the data plane traffic is a second switch; and

perform, by the load balancing engine, the network switch functions to forward the data plane traffic.

13. The method of claim 12 , wherein the data plane traffic is received through the communication port from a router device, and wherein the router device is the source of the data plane traffic that enables load balancing functionality.

14. The method of claim 12 , wherein the data plane traffic is received through the communication port from a first server device of the plurality of server devices that is the source of the data plane traffic that enables load balancing functionality, and wherein the data plane traffic is forwarded to a second server device of the plurality of server devices in response to performing the health based load balancing.

15. The method of claim 12 , further comprising:

storing, by the load balancing engine, state information related to the forwarding of the data plane traffic to the one of the plurality of server devices; and

forwarding, by the load balancing engine, the state information to a second switch device.

16. The method of claim 12 , wherein the health information about the plurality of server devices includes Transport Control Protocol (TCP) connection information describing the number of TCP connections provided for each of the plurality of server devices.

17. The method of claim 12 , further comprising:

retrieving, by the load balancing engine, the health information from each of the plurality of server devices.

Assignments (15)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF REEL 037160 FRAME 0142 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0812 →
RELEASE OF REEL 037160 FRAME 0239 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0115 →
RELEASE OF REEL 037160 FRAME 0171 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040017/0253 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT - NOTES Recorded Nov 25, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; BOOMI, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 037160/0142 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT - TERM LOAN Recorded Nov 25, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; BOOMI, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037160/0239 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT - ABL Recorded Nov 25, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; BOOMI, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037160/0171 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2015
From: SANE, SANJAY; SUBRAMANIAN, KRISHNAMURTHY
To: DELL PRODUCTS L.P.
Reel/Frame 036684/0374 →
Continuity (1)
Related Publication 20170093723A1 · Mar 30, 2017