IP Library Granted Patent US 9,608,937
Granted Patent B2
US 9,608,937 · App. 15/078,916 · Granted Mar 28, 2017

Methods and systems for managing distributed media access control address tables

Inventors: Sunay Tripathi (Los Altos, CA); Robert James Drost (Los Altos, CA); Chih-Kong Ken Yang (Los Altos, CA)
Assignee: Pluribus Networks, Inc.
H04L49/25H04L45/66H04L45/7457H04L69/22
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,608,937
App. No.
15/078,916
Granted
Mar 28, 2017
Kind
B2
Abstract

Methods, systems, and computer programs are presented for switching a network packet. One method includes operations for receiving a packet having a media access control (MAC) address, and for switching the packet by a first packet switching device (PSD) when the MAC address is present in a first memory. Further, the method includes operations for transferring the packet to a second PSD when the MAC address is absent from the first memory and present in a second memory associated with the second PSD, and for transferring the packet to a third PSD when the MAC address is absent from the first memory and the second memory.

Claims (56)

1. A method for processing network traffic by a network device, the method comprising:

configuring first classification rules and second classification rules in the network device, the network device including a switch fabric and a switch controller, wherein the switch fabric switches packets in hardware based on the first classification rules and the switch controller switches packets utilizing a processor based on the second classification rules;

receiving a packet at the network device;

determining by the switch fabric if the packet matches any of the first classification rules;

when the packet matches any one of the first classification rules, switching the packet by the switch fabric based on the matched one of the first classification rules; and

when the packet does not match any of the first classification rules, sending the packet from the switch fabric to the switch controller for processing of the packet by the switch controller;

wherein each first classification rule includes a classification criteria and an action, wherein the classification criteria for a rule is configurable to be based on one or more parameters selected from a group consisting of a media access control (MAC) address, an Internet Protocol (IP) address, a Transmission Control Protocol (TCP) parameter, a user datagram protocol (UDP) parameter, a TCP port, an IPSec security association, a virtual local area network (VLAN) tag, a 802.1Q VLAN tag, and a 802.1Q-in-Q VLAN tag.

2. The method as recited in claim 1 , wherein the switch fabric includes a ternary content addressable memory (TCAM), wherein the determining by the switch fabric if the packet matches any of the first classification rules if performed utilizing the TCAM.

3. The method as recited in claim 1 , wherein the action of each first classification rule defines an action to be performed when a packet satisfying the classification rule is identified, wherein the action includes one or more of forwarding the packet to the switch controller, or forwarding the packet to a network processing unit, sending the packet to a specific external port.

4. A method for processing network traffic by a network device, the method comprising:

configuring first classification rules and second classification rules in the network device, the network device including a switch fabric and a switch controller, wherein the switch fabric switches packets in hardware based on the first classification rules and the switch controller switches packets utilizing a processor based on the second classification rules;

receiving a packet at the network device;

determining by the switch fabric if the packet matches any of the first classification rules;

when the packet matches any one of the first classification rules, switching the packet by the switch fabric based on the matched one of the first classification rules; and

when the packet does not match any of the first classification rules, sending the packet from the switch fabric to the switch controller for processing of the packet by the switch controller, and

further including:

determining, by the switch controller, if the packet matches any of the second classification rules;

when the packet matches any of the second classification rules, switching the packet by the switch controller based on the matched second classification rule; and

when the packet does not match any of the second classification rules, initiate a discovery process to find a destination path for the packet.

5. The method as recited in claim 4 , further including:

when the packet does not match any of the first classification rules, adding a new first classification rule by the switch controller to enable the switch fabric to switch packets of a same flow of the received packet.

6. A method for processing network traffic by a network device, the method comprising:

configuring first classification rules and second classification rules in the network device, the network device including a switch fabric and a switch controller, wherein the switch fabric switches packets in hardware based on the first classification rules and the switch controller switches packets utilizing a processor based on the second classification rules;

receiving a packet at the network device;

determining by the switch fabric if the packet matches any of the first classification rules;

when the packet matches any one of the first classification rules, switching the packet by the switch fabric based on the matched one of the first classification rules; and

when the packet does not match any of the first classification rules, sending the packet from the switch fabric to the switch controller for processing of the packet by the switch controller, and

further including:

exchanging a switching policy regarding a switching of network packets in a plurality of network device operating system (ndOS) devices having respective ndOS programs executing therein, the switching policy including rules and configurations defined for managing resources on the network;

wherein the switching policy defines one or more of definition of how packets are switched switching in the ndOS devices, maintaining policies for media access control (MAC) address management, managing resources across a plurality of ndOS switching devices, managing flows and service levels, managing bandwidth, management of access control lists, performing analytics on packets switched, protocols for exchanging information among the ndOS devices, exchanging topology information among the ndOS devices, notification of changes, or discovery of ndOS devices;

wherein each ndOS program communicates with other ndOS programs to keep a global state of flows, services, and virtual networks.

7. The method as recited in claim 6 , wherein each ndOS program is configured to provide services regarding encapsulation, tagging, tunneling, quality of service, traffic queues management, or packet redirection.

8. A network device, comprising:

a plurality of ports;

a switch fabric connected to the plurality of ports, wherein the switch fabric switches packets in hardware based on first classification rules; and

a switch controller connected to the switch fabric, the switch controller including a processor and a memory, wherein the switch controller switches packets utilizing the processor based on second classification rules;

wherein the switch fabric determines if a packet matches any one of the first classification rules, and when the packet matches any one of the first classification rules, the switch fabric switches the packet based on the matched one of the first classification rules, and when the packet does not match any of the first classification rules, the switch fabric sends the packet to the switch controller for processing of the packet by the switch controller;

wherein the switch controller determines if the packet matches any of the second classification rules, and when the packet matches any of the second classification rules, the switch controller switches the packet based on the matched second classification rule, and when the packet does not match any of the second classification rules the switch controller initiates a discovery process to find a destination path for the packet.

9. The network device as recited in claim 8 , wherein the switch fabric includes a ternary content addressable memory (TCAM), wherein the switch fabric determines if the packet matches any of the first classification rules utilizing the TCAM.

10. A network device, comprising:

a plurality of ports;

a switch fabric connected to the plurality of ports, wherein the switch fabric switches packets in hardware based on first classification rules; and

a switch controller connected to the switch fabric, the switch controller including a processor and a memory, wherein the switch controller switches packets utilizing the processor based on second classification rules;

wherein the switch fabric determines if a packet matches any one of the first classification rules, and when the packet matches any one of the first classification rules, the switch fabric switches the packet based on the matched one of the first classification rules, and when the packet does not match any of the first classification rules, the switch fabric sends the packet to the switch controller for processing of the packet by the switch controller;

wherein each first classification rule includes a classification criteria and an action, wherein the classification criteria includes one or more of a media access control (MAC) address, an Internet Protocol (IP) address, a Transmission Control Protocol (TCP) parameter, a user datagram protocol (UDP) parameter, a TCP port, an IPSec security association, a virtual local area network (VLAN) tag, a 802.1Q VLAN tag, or a 802.1Q-in-Q VLAN tag.

11. The network device as recited in claim 10 , wherein an action of each first classification rule defines an action to be performed when a packet satisfying the classification rule is identified, wherein the action includes one or more of forwarding the packet to the switch controller, or forwarding the packet to a network processing unit, sending the packet to a specific external port.

12. The network device as recited in claim 8 , wherein the network device exchanges a switching policy regarding a switching of network packets in a plurality of network device operating system (ndOS) devices having respective ndOS programs executing therein, the switching policy including rules and configurations defined for managing resources on the network.

13. A non-transitory computer-readable storage medium storing a computer program for processing network traffic by a network device, the computer-readable storage medium comprising:

program instructions for configuring first classification rules and second classification rules in the network device, the network device including a switch fabric and a switch controller, wherein the switch fabric switches packets in hardware based on the first classification rules and the switch controller switches packets utilizing a processor based on the second classification rules;

program instructions for receiving a packet at the network device;

program instructions for determining by the switch fabric if the packet matches any one of the first classification rules;

program instructions for switching the packet by the switch fabric based on the matched one of the first classification rules when the packet matches any one of the first classification rules; and

program instructions for sending the packet from the switch fabric to the switch controller for processing of the packet by the switch controller when the packet does not match any of the first classification rules;

wherein each first classification rule includes a classification criteria and an action, wherein the classification criteria for a rule is configurable to be based on one or more parameters selected from a group consisting of a media access control (MAC) address, an Internet Protocol (IP) address, a Transmission Control Protocol (TCP) parameter, a user datagram protocol (UDP) parameter, a TCP port, an IPSec security association, a virtual local area network (VLAN) tag, a 802.1Q VLAN tag, and a 802.1Q-in-Q VLAN tag.

14. The storage medium as recited in claim 13 , wherein the switch fabric includes a ternary content addressable memory (TCAM), wherein the determining by the switch fabric if the packet matches any of the first classification rules if performed utilizing the TCAM.

15. The storage medium as recited in claim 13 , wherein the action of each first classification rule defines an action to be performed when a packet satisfying the classification rule is identified, wherein the action includes one or more of forwarding the packet to the switch controller, or forwarding the packet to a network processing unit, sending the packet to a specific external port.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2024
From: PLURIBUS NETWORKS, INC.
To: ARISTA NETWORKS, INC.
Reel/Frame 066347/0867 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2022
From: TRIPATHI, SUNAY; DROST, ROBERT JAMES; YANG, CHIH-KONG KEN
To: PLURIBUS NETWORKS, INC.
Reel/Frame 060775/0273 →
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 →
Continuity (12)
Continuation 13842867 · Mar 15, 2013
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 61346147 · May 19, 2010
Provisional Application 61346411 · May 19, 2010
Related Publication 20160205044A1 · Jul 14, 2016