IP Library Granted Patent US 9,300,576
Granted Patent B2
US 9,300,576 · App. 13/842,806 · Granted Mar 29, 2016

Methods, systems, and fabrics 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.
H04L45/56H04L41/5019H04L45/66H04L49/65H04L49/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,300,576
App. No.
13/842,806
Granted
Mar 29, 2016
Kind
B2
Abstract

Methods, systems, and computer programs are presented for managing a switching layer fabric. A network device operating system (ndOS) program includes program instructions for exchanging switching policy regarding a switching of network packets in a plurality of ndOS switching devices having respective ndOS programs executing therein. The first ndOS program is executed in a first ndOS switching device, and the switching policy is exchanged with other ndOS programs via multicast messages. Further, the ndOS program includes program instructions for exchanging resource control messages with the other ndOS switching devices to implement service level agreements in the switching layer fabric, where the ndOS switching devices cooperate to enforce the service level agreements. Further yet, the ndOS program includes program instructions for receiving changes to the switching policy, and program instructions for propagating the received changes to the switching policy via message exchange between the ndOS programs. The ndOS switching devices are managed as a single logical switch that spans the plurality of ndOS switching devices.

Claims (44)

1. A network device operating system (ndOS) program embedded in a non-transitory computer-readable storage medium, when executed by one or more processors, for managing a switching layer fabric, the ndOS program comprising:

program instructions for exchanging switching policy regarding a switching of network packets in a plurality of ndOS switching devices having respective ndOS programs executing therein, wherein the first ndOS program is executed in a first ndOS switching device, wherein the switching policy is exchanged with other ndOS programs via multicast messages;

program instructions for exchanging resource control messages with the other ndOS switching devices to implement service level agreements in the switching layer fabric, wherein the ndOS switching devices cooperate to enforce the service level agreements;

program instructions for receiving changes to the switching policy; and

program instructions for propagating the received changes to the switching policy via message exchange between the ndOS programs, wherein the ndOS switching devices are managed as a single logical switch that spans the plurality of ndOS switching devices.

2. The ndOS program as recited in claim 1 , wherein interconnected ndOS switching devices provide what appears to be a single logical switch that spans a plurality of switches, wherein switching devices provide the ndOS dynamic and flexible partition of network resources with full isolation.

3. The ndOS program as recited in claim 2 , wherein the ndOS switches further provide instantiation of virtual appliances and virtual machines in virtual networks created in the switching layer fabric.

4. The ndOS program as recited in claim 1 , wherein the plurality of ndOS switches devices isolate traffic for virtual LANs defined in the ndOS.

5. The ndOS program as recited in claim 1 , further including:

program instructions for exchanging discovery messages between the ndOS switching devices to obtain information regarding network elements connected to the ndOS switching devices.

6. The ndOS program as recited in claim 1 , wherein the ndOS programs send periodic multicast messages on a well-known address, the multicast messages including an IP address of the sender and a unique switch identifier (ID).

7. The ndOS program as recited in claim 6 , wherein the multicast messages on the well-known address are utilized as a keep-alive message.

8. The ndOS program as recited in claim 1 , further including:

program instructions for receiving changes to the switching policy from an administrator; and

program instructions for propagating the received changes to the switching policy via message exchange between the ndOS programs.

9. The ndOS program as recited in claim 1 , 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.

10. The ndOS program as recited in claim 1 ,

creating application flows and virtual networks on the switching layer fabric by the ndOS programs, wherein each application flow and virtual network includes service level agreements (SLAs) that are enforced by the ndOS switching devices.

11. The ndOS program as recited in claim 10 , wherein an application flow further includes:

reserving resources in one or more of the ndOS switch and devices; and

omitting the resources after all the resources have been reserved in the ndOS switching devices.

12. The ndOS program as recited in claim 1 , further including:

detecting a change in a local configuration of the ndOS switching device; and

communicating to other ndOS programs the detected changes in the local configuration.

13. The ndOS program as recited in claim 1 , further including:

program instructions for receiving a request for the ndOS program, the request selected from a group consisting of a request to migrate a virtual machine (VM) from one host to another host, a request to change an access control list (ACL) for a network entity, a request to perform analytics on a flow that is passing through at least one ndOS switching device, a request to create a VM on a particular ndOS switching device, a request to create a VM on a host connected to an ndOS switching device, a request to change a configuration parameter on a ndOS switching device, a request to change a configuration parameter on two or more ndOS switching devices, or a request to create a notification when there is a change in the switching layer fabric.

14. A method for managing a switching layer fabric, the method comprising:

exchanging, by a first ndOS program executing in a first ndOS switching device, a switching policy regarding a switching of network packets in a plurality of ndOS switching devices, each ndOS switching device having a respective ndOS program executing therein, wherein the switching policy is exchanged with other ndOS programs via multicast messages;

exchanging resource control messages with the other ndOS switching devices to implement service level agreements in the switching layer fabric, wherein the ndOS switching devices cooperate to enforce the service level agreements;

receiving changes to the switching policy; and

propagating the received changes to the switching policy via message exchange between the ndOS programs, wherein the ndOS switching devices are managed as a single logical switch that spans the plurality of ndOS switching devices.

15. The method as recited in claim 14 , wherein interconnected ndOS switching devices provide what appears to be a single logical switch that spans a plurality of switches, wherein switching devices provide the ndOS dynamic and flexible partition of network resources with full isolation.

16. The method as recited in claim 15 , wherein the ndOS switches further provide instantiation of virtual appliances and virtual machines in virtual networks created in the switching layer fabric.

17. The method as recited in claim 14 , wherein the plurality of ndOS switches devices isolate traffic for virtual LANs defined in the ndOS.

18. A network device operating system (ndOS) switching device comprising:

a processor;

a switch fabric connected to the processor; and

a memory having a first ndOS program that, when executed by the processor, performs a method, the method comprising:

exchanging a switching policy regarding a switching of network packets in a plurality of ndOS switching devices, each ndOS switching device having a respective ndOS program executing therein, wherein the switching policy is exchanged with other ndOS programs via multicast messages;

exchanging resource control messages with the other ndOS programs to implement service level agreements in the switching layer fabric, wherein the ndOS switching devices cooperate to enforce the service level agreements;

receiving changes to the switching policy; and

propagating the received changes to the switching policy via message exchange between the ndOS programs, wherein the ndOS switching devices are managed as a single logical switch that spans the plurality of ndOS switching devices.

19. The ndOS switching device as recited in claim 18 , wherein the ndOS programs exchange discovery messages to obtain information regarding network elements connected to the ndOS switching devices.

20. The ndOS switching device as recited in claim 18 , wherein the ndOS programs send periodic multicast messages on a well-known address, the multicast messages including an IP address of the sender and a unique switch identifier (ID).

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 030599/0173 →
Continuity (11)
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, 2010
Provisional Application 61489085 · May 23, 2011
Provisional Application 61330758 · May 3, 2010
Provisional Application 61346138 · May 19, 2010
Provisional Application 61364147 · Jul 14, 2010
Provisional Application 61346411 · May 19, 2010
Related Publication 20130235870A1 · Sep 12, 2013