IP Library Granted Patent US 8,923,296
Granted Patent B2
US 8,923,296 · App. 13/403,776 · Granted Dec 30, 2014

System and methods for managing network packet forwarding with a controller

Inventors: Christopher D. Liljenstolpe (San Francisco, CA); R. Kyle Forster (San Francisco, CA); Daniel C. Hersey (Peoria, AZ); Balaji Sivasubramanian (Milpitas, CA)
Assignee: Big Switch Networks, Inc.
H04L45/745H04L29/0653H04L45/586H04L45/44H04L61/103
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 8,923,296
App. No.
13/403,776
Granted
Dec 30, 2014
Kind
B2
Abstract

A network controlled by a controller may include end hosts that are coupled to the switches. The network may be coupled to gateways that interface between the network and an external network. The network may include subnetworks formed from respective portions of the end hosts of the network. The controller may create virtual gateways that interface between each of the subnetworks and the network by providing the end hosts of each subnetwork with virtual gateway Ethernet addresses. The controller may receive a network packet having a virtual gateway Ethernet address from an end host of a given subnetwork. The network packet may be destined for an end host of an external network or subnetwork. The controller may forward the network packet to the destination end host by redirecting the network packet through a selected gateway or by controlling the switches to perform gateway functions.

Claims (40)

1. A method of using a controller to control switches in a network having end hosts that are coupled to the switches, wherein the controller is coupled to the switches via network control paths, and wherein the network is coupled to a plurality of gateways that interface between the network and an external network, the method comprising:

receiving a network packet, from a given switch based on a flow table entry, that is destined for the external network at the controller, wherein the network packet includes a reserved network address associated with a virtual gateway Internet Protocol (IP) address;

with the controller, dynamically selecting a gateway from the plurality of gateways;

the controller providing the given switch with the flow table entry that identifies a reserved hardware address; and

with the controller, directing the switches to forward the network packet to the external network through the selected gateway, wherein the flow table entry directs the given switch to modify the reserved hardware address in a destination Ethernet address field of the network packet with an Ethernet address of the selected gateway.

2. The method defined in claim 1 further comprising:

with the controller, retrieving information from the network packet, wherein selecting the gateway from the plurality of gateways comprises selecting the gateway from the plurality of gateways based on the information retrieved from the network packet.

3. The method defined in claim 2 , wherein retrieving information from the network packet comprises retrieving source address information from header fields of the network packet.

4. The method defined in claim 3 , wherein selecting the gateway from the plurality of gateways further comprises selecting the gateway from the plurality of gateways based at least partly on network topology information gathered by the controller.

5. A method of using a controller to control switches in a network having end hosts that are coupled to the switches, wherein the controller is coupled to the switches via network control paths, and wherein the network is coupled to an external network having switches and end hosts that are coupled to the switches of the external network, the method comprising:

receiving a network packet, from a given switch based on a flow table entry, at the controller, wherein the network packet includes a reserved network address associated with a virtual gateway Internet Protocol (IP) address;

with the controller, determining whether the network packet is destined for an end host of the external network or destined for an end host of the network; and

with the controller, controlling the switches to redirect the network packet to the end host of the network in response to determining that the network packet is destined for the end host of the network, wherein the flow table entry directs the given switch to rewrite a destination Ethernet address field of the network packet with an Ethernet address of the end host of the network;

wherein the network is further coupled to a plurality of gateways that interface with the external network having switches and end hosts, the method further comprising:

with the controller, selecting a gateway from the plurality of gateways in response to determining that the network packet is destined for an end host of the external network; and

with the controller, controlling the switches of the network to forward the network packet to the end host of the external network through the selected gateway, wherein the flow table entry directs the switches to rewrite a source Ethernet address field of the network packet with a hardware address of a given one of the switches that is coupled to the selected gateway in response to determining that the network packet is destined for the end host of the external network.

6. The method defined in claim 5 , wherein the network includes at least first and second subnetworks formed from respective portions of the end hosts, the method further comprising:

with the controller, creating a virtual gateway by providing a first virtual gateway Ethernet address to the first subnetwork and providing a second virtual gateway Ethernet address to the second subnetwork, wherein the virtual gateway interfaces between the first subnetwork, the second subnetwork, and the external network.

7. The method defined in claim 6 , wherein receiving the network packet comprises:

receiving the network packet from a given subnetwork of the first and second subnetworks, wherein the network packet includes the virtual gateway Ethernet address of the given subnetwork.

8. The method defined in claim 7 further comprising:

with the controller, directing the switches to rewrite a source Ethernet address field of the network packet with the virtual gateway Ethernet address that is associated the given subnetwork in response to determining that the network packet is destined for the end host of the network.

9. The method defined in claim 5 further comprising:

with the controller, directing the switches to decrement a time-to-live header field of the network packet.

10. The method defined in claim 9 , wherein controlling the switches to decrement the time-to-live header field of the network packet comprises:

providing a given one of the switches with a flow table entry that directs the given one of the switches to decrement the time-to-live header field of the network packet.

11. A method of using a controller to control switches in a network having end hosts that are coupled to the switches, wherein the controller is coupled to the switches via network control paths, the method comprising:

identifying whether a network packet sent from an end host is requesting a hardware address that corresponds to a reserved network address;

receiving the identified network packet, from a given switch based on a flow table entry, at the controller, wherein the network packet includes the reserved network address that is associated with a virtual gateway Internet Protocol (IP) address; and

the controller providing the end host with a reserved hardware address in response to determining that the network packet is requesting the hardware address that is associated with the reserved network address;

wherein the network is further coupled to a plurality of gateways that interface between the network and an external network, the method further comprising:

with the controller, controlling the switches of the network to forward the network packet to the end host of the external network through the selected gateway, wherein the flow table entry directs the given switch to modify the reserved hardware address in a destination Ethernet address field of the network packet with an Ethernet address of the selected gateway.

12. The method defined in claim 11 , wherein the network includes at least first and second subnetworks formed from respective portions of the end hosts, wherein the end host is associated with the first subnetwork, the method further comprising:

with the controller, creating a virtual gateway associated with the reserved hardware address and the reserved network address, wherein the virtual gateway interfaces between the first and second subnetworks.

13. The method defined in claim 12 wherein creating the virtual gateway comprises:

controlling the switches to decrement time-to-live header fields of network packets that include the reserved network address.

14. The method defined in claim 12 , further comprising:

with the controller, receiving a second network packet having the reserved hardware address from a given end host of the first subnetwork;

with the controller, selecting a second gateway from the plurality of gateways, wherein the selected second gateway includes a first interface for network traffic from the network to the selected second gateway and a second interface for network traffic from the selected gateway to the network; and

with the controller, directing the switches to forward the network packet through the first interface of the selected second gateway.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2022
From: BIG SWITCH NETWORKS LLC
To: ARISTA NETWORKS, INC.
Reel/Frame 058793/0454 →
CHANGE OF NAME Recorded May 7, 2020
From: BIG SWITCH NETWORKS, INC.
To: BIG SWITCH NETWORKS LLC
Reel/Frame 052600/0719 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 027754 FRAME 0463. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 5, 2020
From: LILJENSTOLPE, CHRISTOPHER D.; FORSTER, R. KYLE; HERSEY, DANIEL C.; SIVASUBRAMANIAN, BALAJI
To: BIG SWITCH NETWORKS, INC.
Reel/Frame 052580/0945 →
RELEASE OF SECURITY INTEREST Recorded Mar 24, 2020
From: SILVER LAKE WATERMAN FUND II, L.P.
To: BIG SWITCH NETWORKS, INC.; BIG SWITCH NETWORKS GC, INC.
Reel/Frame 052218/0557 →
SECURITY INTEREST Recorded Dec 20, 2018
From: BIG SWITCH NETWORKS, INC.; BIG SWITCH NETWORKS GC, INC.
To: SILVER LAKE WATERMAN FUND II, L.P., AS AGENT
Reel/Frame 049146/0615 →
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY PREVIOUSLY RECORDED AT REEL: 027754 FRAME: 0463. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 22, 2015
From: LILJENSTOLPE, CHRISTOPHER D.; FORSTER, KYLE R.; HERSEY, DANIEL C.; SIVASUBRAMANIAN, BALAJI
To: BIG SWITCH NETWORKS, INC
Reel/Frame 035479/0482 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2012
From: LILJENSTOLPE, CHRISTOPHER D.; FORSTER, R. KYLE; HERSEY, DANIEL C.; SIVASUBRAMANIAN, BALAJI
To: BIG SWITCH CORPORATION
Reel/Frame 027754/0463 →
Continuity (1)
Related Publication 20130223444A1 · Aug 29, 2013