IP Library Granted Patent US 10,412,157
Granted Patent B2
US 10,412,157 · App. 15/095,037 · Granted Sep 10, 2019

Adaptive load balancing

Inventors: Rajendra Kumar Thirumurthi (Milpitas, CA); Sachin Vijay Vishwarupe (Santa Clara, CA); Samar Sharma (San Jose, CA); Mouli Vytla (San Jose, CA)
Assignee: Cisco Technology, Inc.
H04L67/1031H04L41/12H04L49/35H04L67/1008H04L47/125H04L49/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 10,412,157
App. No.
15/095,037
Granted
Sep 10, 2019
Kind
B2
Abstract

In an example, there is provided a network apparatus for providing native load balancing within a switch, including a first network interface operable to communicatively couple to a first network; a plurality of second network interfaces operable to communicatively couple to a second network, the second network comprising a service pool of service nodes; one or more logic elements providing a switching engine operable for providing network switching; and one or more logic elements comprising a load balancing engine operable for: load balancing incoming network traffic to the service pool via native hardware according to a load balancing configuration; detecting a new service node added to the service pool; and adjusting the load balancing configuration to account for the new service node; wherein the switching engine and load balancing engine are configured to be provided on the same hardware as each other and as the first network interface and plurality of second network interfaces.

Claims (51)

1. A network switch for providing native load balancing, the network switch comprising:

a first network interface operable to communicatively couple to a first network;

a plurality of second network interfaces operable to communicatively couple to a second network associated with a layer 2 segment identifier, the second network comprising a service pool of service nodes;

a switching engine comprising programmable hardware operable for providing network switching; and

a load balancing engine comprising programmable hardware operable for:

load balancing incoming network traffic to the service pool via native hardware according to a load balancing configuration, wherein the native hardware enables the load balancing engine to load balance packets in the network traffic without passing the packets to a higher level of a network stack by rewriting a layer 2 header of the packets;

detecting a new service node on the second network;

querying a network manager with the layer 2 segment identifier associated with the second network;

receiving a response from the network manager, the response including network configuration data for the new service node;

determining that the new service node is in the service pool based on the network configuration data; and

adjusting the load balancing configuration to account for the new service node;

wherein the switching engine and load balancing engine are provided on the same programmable hardware with the first network interface and plurality of second network interfaces.

2. The network switch of claim 1 , wherein the network switch is a leaf switch in a spine-leaf architecture.

3. The network switch of claim 1 , wherein adjusting the load balancing configuration comprises determining that configuration data are not cached, and querying a network manager apparatus for configuration data.

4. The network switch of claim 3 , wherein adjusting the load balancing configuration further comprises caching the configuration data.

5. The network switch of claim 1 , wherein adjusting the load balancing configuration comprises determining that configuration data are cached, and using the cached configuration data.

6. The network switch of claim 1 , wherein the native hardware comprises a ternary content addressable memory (TCAM).

7. The network switch of claim 1 , wherein the programmable hardware comprises one or more Application Specific Integrated Circuits (ASICs) configured to run the switching engine and the load balancing engine.

8. A method of providing native load balancing within a switch, comprising:

communicatively coupling to a first network via a first network interface;

communicatively coupling to a second network via a plurality of second network interfaces, the second network comprising a service pool of service nodes;

providing network switching; and

providing load balancing, comprising:

load balancing incoming network traffic to the service pool via native hardware according to a load balancing configuration, wherein the native hardware enables load balancing packets in the incoming network traffic without passing the packets to a higher level of a network stack by rewriting a layer 2 header of the packets;

detecting a new service node on the second network;

querying a network manager with a layer 2 segment identifier associated with the second network;

receiving a response from the network manager, the response including network configuration data for the new service node;

determining that the new service node is in the service pool based on the network configuration data; and

adjusting the load balancing configuration to account for the new service node.

9. The method of claim 8 , wherein providing network switching comprises providing leaf switch functionality in a spine-leaf architecture.

10. The method of claim 8 , wherein adjusting the load balancing configuration comprises determining that configuration data are not cached, and querying a network manager apparatus for configuration data.

11. The method of claim 10 , wherein adjusting the load balancing configuration further comprises caching the configuration data.

12. The method of claim 8 , wherein adjusting the load balancing configuration comprises determining that configuration data are cached, and using the cached configuration data.

13. The method of claim 8 , wherein load balancing incoming network traffic comprises querying an on-device ternary content addressable memory (TCAM).

14. One or more tangible, non-transitory computer-readable storage mediums having stored thereon executable instructions for instructing a processor for:

communicatively coupling to a first network via a first network interface;

communicatively coupling to a second network via a plurality of second network interfaces, the second network comprising a service pool of service nodes;

providing network switching; and

providing load balancing, comprising:

load balancing incoming network traffic to the service pool via native hardware according to a load balancing configuration, wherein the native hardware enables load balancing packets in the incoming network traffic without passing the packets to a higher level of a network stack by rewriting a layer 2 header of the packets;

detecting a new service node on the second network;

querying a network manager with a layer 2 segment identifier associated with the second network;

receiving a response from the network manager, the response including network configuration data for the new service node;

determining that the new service node is in the service pool based on the network configuration data; and

adjusting the load balancing configuration to account for the new service node.

15. The one or more tangible, non-transitory computer-readable mediums of claim 14 , wherein providing network switching comprises providing leaf switch functionality in a spine-leaf architecture.

16. The one or more tangible, non-transitory computer-readable mediums of claim 14 , wherein adjusting the load balancing configuration comprises determining that configuration data are not cached, and querying a network manager apparatus for configuration data.

17. The one or more tangible, non-transitory computer-readable mediums of claim 16 , wherein adjusting the load balancing configuration further comprises caching the configuration data.

18. The one or more tangible, non-transitory computer-readable mediums of claim 14 , wherein adjusting the load balancing configuration comprises determining that configuration data are cached, and using the cached configuration data.

19. The one or more tangible, non-transitory computer-readable mediums of claim 14 , wherein load balancing incoming network traffic comprises querying an on-device ternary content addressable memory (TCAM).

20. The one or more tangible, non-transitory computer-readable mediums of claim 14 , wherein the medium comprises a native medium of a network switch.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2016
From: THIRUMURTHI, RAJENDRA KUMAR; VISHWARUPE, SACHIN VIJAY; SHARMA, SAMAR; VYTLA, MOULI
To: CISCO TECHNOLOGY, INC.
Reel/Frame 038238/0019 →
Continuity (2)
Provisional Application 62152022 · Apr 23, 2015
Related Publication 20160315814A1 · Oct 27, 2016
Cited By (3)
US 12,267,381 US 12,381,825 US 12,450,537