IP Library Granted Patent US 9,001,827
Granted Patent B2
US 9,001,827 · App. 12/971,924 · Granted Apr 7, 2015

Methods for configuring network switches

Inventor: Guido Appenzeller (Menlo Park, CA)
Assignee: Big Switch Networks, Inc.
H04L45/583H04L41/0823H04L41/12H04L45/54H04L45/56H04L49/254H04L49/3009H04L49/70
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 9,001,827
App. No.
12/971,924
Granted
Apr 7, 2015
Kind
B2
Abstract

Network switches may be configured using flow tables. Flow table entries may contain header fields and associated actions. When a packet is received by a network switch, the network switch can compare fields in the packet to fields in the flow table entries and can take corresponding actions when matches are detected. A controller server can determine the topology of a network and can gather information on the capacities of network switches and other network switch capabilities. Based on this information and network configuration rules, the controller server can generate flow tables for the network switches that direct the switches to forward packets along desired paths through the network. The flow table entries for switches that are nearer the network core can be provided with more wildcarding than switches nearer the network edge. Traffic can be forwarded through encapsulation and deencapsulation engines to allow tunneling between isolated network domains.

Claims (24)

1. A method of using a controller server to provide network switches in a network with flow table entries, wherein each network switch processes packets by comparing packet fields to fields in the flow table entries, the method comprising:

with the controller server, categorizing some of the network switches as being edge network switches and some of the network switches as being non-edge switches;

with the controller server, querying the network switches to identify capacities of the network switches for handling flow table entries; and

with the controller server, generating and distributing different flow table entries to the network switches that have been categorized as the edge network switches than the network switches that have been categorized as the non-edge switches based on the identified capacities of the network switches for handling flow table entries, wherein distributing the flow table entries comprises distributing a first portion of the flow table entries with only complete fields to the edge switches and a second portion of the flow table entries with at least some wildcarded fields to the non-edge switches without distributing the first portion of the flow table entries to the non-edge switches and without distributing the second portion of the flow table entries to the edge switches.

2. The method defined in claim 1 wherein distributing the flow table entries comprises distributing the flow table entries from the controller server to corresponding controller clients on the network switches over network connections.

3. The method defined in claim 2 wherein distributing the flow table entries comprises using a network protocol stack in the controller server to communicate over the network connections with corresponding network protocol stacks in the controller clients.

4. The method defined in claim 3 wherein each flow table entry comprises a source Internet Protocol (IP) address field, wherein the source IP address field in each of the flow table entries for the edge switches is free of wildcards, and wherein the source IP address field in each of the flow table entries for the non-edge switches contains at least some wildcarding.

5. The method defined in claim 1 wherein the network switches include ports and wherein the flow table entries include action fields that specify which of the ports the network switches should forward the packets to.

6. A method of operating a network having a first network domain associated with a first set of end hosts and network switches, a second network domain associated with a second set of end hosts and network switches, a controller server that supplies flow table entries for the network switches in the first network domain and the second network domain, and a local core network, wherein each network switch processes received packets by comparing packet fields to fields in the flow table entries, wherein an encapsulation engine is implemented on a first network switch in the first network domain, and wherein a deencapsulation engine is implemented on a second network switch in the second domain, the method comprising:

with the controller server, generating a plurality of flow table entries for the network switches in the first domain and the network switches in the second domain that direct the network switches in the first and second domain to forward packets from a first end host in the first network domain to the encapsulation engine, to forward encapsulated packets from the encapsulation engine through the local core network to the deencapsulation engine, and to forward packets from the deencapsulation engine to a second end host in the second domain;

with the controller server, identifying a location in the first network domain of the encapsulation engine;

with the controller server, identifying a path from the first end host to the location of the encapsulation engine;

with the controller server, identifying a location in the second network domain of the deencapsulation engine based on information retrieved from the switches; and

with the controller server, identifying a path from the location of the encapsulation engine to the location of the deencapsulation engine through the local core network.

7. The method defined in claim 6 wherein the local core network is not controlled by any flow table entries from the controller server, wherein at least a given one of the network switches in the first network domain is interposed between the first network switch on which the encapsulation engine is implemented and the local core network, and wherein generating the plurality of flow table entries comprises generating a set of flow table entries that direct the network switches to forward the encapsulated packets through the given one of the network switches.

8. The method defined in claim 7 wherein the local core contains network switches that are incapable of being loaded with any flow table entries from the controller server, the method further comprising:

providing the plurality of flow table entries from the controller server to corresponding controller clients in the network switches.

9. The method defined in claim 8 wherein providing the plurality of flow table entries comprises using network protocol stacks at the controller server and the controller clients to convey the plurality of flow table entries over network connections.

10. The method defined in claim 9 wherein using the network protocol stacks comprises using Transport Control Protocol (TCP)/Internet Protocol (IP) stacks to convey the plurality of flow table entries.

11. The method defined in claim 6 wherein the plurality of flow table entries include header fields and action fields and wherein generating the plurality of flow table entries comprises generating a set of flow table entries that direct the network switches to forward the packets twice through at least a given one of the network switches.

12. The method defined in claim 6 further comprising:

with the encapsulation engine, producing the encapsulated packets using Multiprotocol Label Switching.

13. The method defined in claim 6 further comprising:

with the encapsulation engine, producing the encapsulated packets using Generic Routing Encapsulation.

Assignments (5)
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2010
From: APPENZELLER, GUIDO
To: BIG SWITCH NETWORKS, INC.
Reel/Frame 025524/0240 →
Continuity (1)
Related Publication 20120155467A1 · Jun 21, 2012