IP Library Granted Patent US 9,160,668
Granted Patent B2
US 9,160,668 · App. 13/842,619 · Granted Oct 13, 2015

Servers, switches, and systems with switching module implementing a distributed network operating system

Inventors: Sunay Tripathi (Los Altos, CA); Robert James Drost (Los Altos, CA); Chih-Kong Ken Yang (Los Altos, CA)
Assignee: Pluribus Networks Inc.
H04L47/20H04L49/1507H04L49/253H04L41/0893
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,160,668
App. No.
13/842,619
Granted
Oct 13, 2015
Kind
B2
Abstract

One networking device includes a switch module, a server, and a switch controller. The switch module has ports with a communications interface of a first type (CI1) and ports with a communications interface of a second type (CI2). The server, coupled to the switch module via a first CI2 coupling, includes a virtual CI1 driver, which provides a CI1 interface in the server, defined to exchange CI1 packets with the switch module via the first CI2 coupling. The virtual CI1 driver includes a first network device operating system (ndOS) program. The switch controller, in communication with the switch module via a second CI2 coupling, includes a second ndOS program controlling, in the switch module, a packet switching policy defining the switching of packets through the switch module or switch controller. The first and second ndOS programs exchange control messages to maintain a network policy for the switch fabric.

Claims (38)

1. A networking device system comprising:

a switch module having one or more ports with a communications interface of a first type (CI1) and one or more ports with a communications interface of a second type (CI2);

a server in communication with the switch module via a first CI2 coupling, the server including a virtual CI1 driver that provides a CI1 interface to applications in the server, the virtual CI1 driver defined to exchange CI1 packets with the switch module via the first CI2 coupling, the virtual CI1 driver further including a first network device operating system (ndOS) program; and

a switch controller in communication with the switch module via a second CI2 coupling, the switch controller including a second ndOS program that, when executed by a processor, controls packet switching policy in the switch module, the packet switching policy including a definition for switching incoming packets through the switch module or through the switch controller, wherein the first ndOS program and the second ndOS program, when executed by respective processors, exchange control messages to maintain a network policy for a switch layer fabric.

2. The networking device system as recited in claim 1 , wherein the switch module further includes a classifier, the classifier implementing the packet switching policy for incoming packets, wherein the second ndOS is defined to configure the classifier to implement the packet switching policy.

3. The networking device system as recited in claim 1 , wherein the first ndOS and the second ndOS are defined to exchange control messages with other ndOS programs in the switch layer fabric to maintain the network policy for the switch layer fabric.

4. The networking device system as recited in claim 1 , wherein packets switched by the switch controller are sent from the switch module to memory in the switch controller.

5. The networking device system as recited in claim 1 , wherein the switch controller further includes a packet processor.

6. The networking device system as recited in claim 1 , wherein the switch module further includes a switch fabric defined to switch packets between ports.

7. The networking device system as recited in claim 1 , wherein the overall switching strategy further includes managing one or more of migration of virtual machines from one host to another host, access control lists (ACL) for network entities, analytics on flows passing through at least one network device, creation of virtual machines, creation of virtual machines on a host device coupled to the switch, changing configuration parameters on network devices, notification of changes in the switch layer fabric, bandwidth management, tagging, virtual networks, of quality of service implementation.

8. The networking device system as recited in claim 1 , wherein CI1 is Ethernet.

9. The networking device system as recited in claim 1 , wherein CI2 is Peripheral Component Interconnect Express (PCIe).

10. The networking device system as recited in claim 1 , wherein the switch controller further includes non-volatile read/write storage.

11. A networking device system comprising:

a switch module having one or more ports with a communications interface of a first type (CI1) and one or more ports with a communications interface of a second type (CI2);

a plurality of servers in communication with the switch module via a first CI2 couplings, the servers including a respective virtual CI1 driver that provides a CI1 interface to applications in the respective server, each virtual CI1 driver defined to exchange CI1 packets with the switch module via the first CI2 coupling, each virtual CI1 driver further including a first network device operating system (ndOS) program; and

a switch controller in communication with the switch module via a second CI2 coupling, the switch controller including a second ndOS program that, when executed by a processor, controls packet switching policy in the switch module, the packet switching policy including a definition for switching incoming packets through the switch module or through the switch controller, wherein the first ndOS programs and the second ndOS program, when executed by respective processors, exchange control messages to maintain a network policy for a switch layer fabric.

12. The networking device system as recited in claim 11 , wherein the switch module further includes a classifier, the classifier implementing the packet switching policy for incoming packets, wherein the second ndOS is defined to configure the classifier to implement the packet switching policy.

13. The networking device system as recited in claim 11 , wherein the first ndOS and the second ndOS are defined to interact with other ndOS programs in the switch layer fabric.

14. The networking device system as recited in claim 11 , wherein packets switched by the switch controller are sent from the switch module to memory in the switch controller.

15. The networking device system as recited in claim 11 , wherein the switch controller further includes a packet processor.

16. The networking device system as recited in claim 11 , wherein the switch module further includes a switch fabric defined to switch packets between ports.

17. The networking device system as recited in claim 11 , wherein the overall switching strategy further includes managing one or more of migration of virtual machines from one host to another host, access control lists (ACL) for network entities, analytics on flows passing through at least one network device, creation of virtual machines, creation of virtual machines on a host device coupled to the switch, changing configuration parameters on network devices, notification of changes in the switch layer fabric, bandwidth management, tagging, virtual networks, of quality of service implementation.

18. A method for processing packets, the method comprising:

receiving a packet at a switch module, the switch module having one or more ports with a communications interface of a first type (CI1) and one or more ports with a communications interface of a second type (CI2), wherein a server is in communication with the switch module via a first CI2 coupling, wherein a switch controller is in communication with the switch module via a second CI2 coupling, the server including a virtual CI1 driver that provides a CI1 interface to applications in the server, the virtual CI1 driver defined to exchange CI1 packets with the switch module via the first CI2 coupling, the virtual CI1 driver further including a first network device operating system (ndOS) program, the switch controller including a second ndOS program that, when executed by a processor, controls packet switching policy in the switch module, the packet switching policy including a definition for switching incoming packets through the switch module or through the switch controller, wherein the first ndOS program and the second ndOS program, when executed by respective processors, exchange control messages to maintain a network policy for a switch layer fabric;

determining by a classifier in the switch module to switch the packet through the switch module or through the switch controller based on the packet switching policy; and

switching the packet based on the determining.

19. The method as recited in claim 18 , further including:

switching a packet originating at the server and with a destination at the server at the virtual CI1 driver.

20. The method as recited in claim 18 , wherein operations of the method are performed by a computer program when executed by one or more processors, the computer program being embedded in a non-transitory computer-readable storage medium.

21. A networking device system comprising:

a switch module having one or more Ethernet ports and one or more peripheral component interconnect (PCI) ports;

a plurality of servers in communication with the switch module via the PCI ports, the servers including a respective virtual Ethernet driver that provides an Ethernet interface to applications in the respective server, each virtual Ethernet driver defined to exchange Ethernet packets with the switch module via the PCI ports, each virtual Ethernet driver further including a first network device operating system (ndOS) program; and

a switch controller in communication with the switch module via one of the PCI ports, the switch controller including a second ndOS program that, when executed by a processor, controls a packet switching policy in the switch module, the packet switching policy including a definition for switching incoming packets through either one of the switch module and the switch controller, wherein the first ndOS program and the second ndOS program, when executed by respective processors, exchange control messages to maintain a network policy for a switch layer fabric, wherein the switching policy is exchanged between the ndOS programs and other interconnected ndOS programs via multicast messages, and each ndOS program is configured for receiving instructions for propagating changes to the switching policy via messages exchanged between the ndOS programs, and wherein the switching policy is managed across multiple switching devices having a respective ndOS program as a single logical switch that spans a plurality of ndOS switching devices in the switch layer fabric, and wherein each ndOS program communicates with other ndOS programs to keep a global state of flows, services, and virtual networks in the switching layer fabric.

22. A networking device system comprising:

a switch module having one or more Ethernet ports and one or more peripheral component interconnect (PCI) ports;

a plurality of servers in communication with the switch module via the PCI ports, the servers including a respective virtual Ethernet driver that provides an Ethernet interface to applications in the respective server, each virtual Ethernet driver defined to exchange Ethernet packets with the switch module via the PCI ports; and

a switch controller in communication with the switch module via one of the PCI ports, the switch controller including an ndOS program that, when executed by a processor, controls a packet switching policy in the switch module, the packet switching policy including a definition for switching incoming packets through either one of the switch module and the switch controller, wherein the ndOS program, when executed by a processor, exchanges control messages to maintain a network policy for a switch layer fabric, wherein the switching policy is exchanged between the ndOS programs and other interconnected ndOS programs via multicast messages, and each ndOS program is configured for receiving instructions for propagating changes to the switching policy via messages exchanged between the ndOS programs, and wherein the switching policy is managed across multiple switching devices having a respective ndOS program as a single logical switch that spans a plurality of ndOS switching devices in the switch layer fabric, and wherein each ndOS program communicates with other ndOS programs to keep a global state of flows, services, and virtual networks in the switching layer fabric.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2024
From: PLURIBUS NETWORKS, INC.
To: ARISTA NETWORKS, INC.
Reel/Frame 066347/0867 →
RELEASE OF SECURITY INTEREST Recorded Jun 14, 2022
From: NH EXPANSION CREDIT FUND HOLDINGS LP
To: PLURIBUS NETWORKS, INC.
Reel/Frame 060200/0252 →
SECURITY INTEREST Recorded Sep 10, 2021
From: PLURIBUS NETWORKS, INC.
To: NH EXPANSION CREDIT FUND HOLDINGS LP
Reel/Frame 057440/0011 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2013
From: TRIPATHI, SUNAY; DROST, ROBERT JAMES; YANG, CHIH-KONG KEN
To: PLURIBUS NETWORKS INC.
Reel/Frame 030595/0782 →
Continuity (12)
Continuation In Part 13313837 · Dec 7, 2011
Continuation In Part 13478179 · May 23, 2012
Continuation In Part 13100125 · May 3, 2011
Continuation In Part 13099918 · May 3, 2011
Provisional Application 61420526 · Dec 7, 2011
Provisional Application 61489085 · May 23, 2011
Provisional Application 61330758 · May 3, 2010
Provisional Application 61346138 · May 19, 2010
Provisional Application 61330758 · May 3, 2010
Provisional Application 61364147 · Jul 14, 2010
Provisional Application 61346411 · May 16, 2010
Related Publication 20130215754A1 · Aug 22, 2013