IP Library Granted Patent US 7,522,516
Granted Patent B1
US 7,522,516 · App. 10/835,252 · Granted Apr 21, 2009

Exception handling system for packet processing system

Assignee: Extreme Networks, Inc.
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 7,522,516
App. No.
10/835,252
Granted
Apr 21, 2009
Kind
B1
Abstract

An exception handling system for a packet processing system is described. In this exception handling system, there are several exception handlers. One of the exception handlers is selected based on packet processing state data relating to a packet undergoing processing by the packet processing system. The selected exception handler is configured to check for the presence of one or more potential exception conditions associated with the selected exception handler. If one or more of these potential exception conditions are determined to be present, a packet processor selectively modifies the packet processing state data relating to the packet.

Claims (104)

1. An exception handling system for a packet processing system comprising:

a plurality of exception handlers;

a register for holding a data element having a data field with a value selecting one of the plurality of exception handlers, the selected exception handler configured to check for the presence of one or more potential exception conditions associated with the selected exception handler;

logic for allowing the selected exception handler, and, therefore, the one or more potential exception conditions that are checked, to dynamically vary as packets are processed by the packet processing system;

a memory for holding packet processing state data relating to a packet undergoing processing by the packet processing system; and

a packet processor for selectively modifying the packet processing state data relating to the packet if one or more of the associated potential exception conditions is determined to be present by the selected exception handler;

wherein the one or more of the potential exception conditions that are checked are determined using a mask associated with the selected exception handler; and

wherein the mask is selected from a plurality of masks associated with the selected exception handler.

2. The exception handling system of claim 1 wherein the value of the data field selects one or more exception handlers, each configured to check for the presence of one or more associated potential exception conditions.

3. An exception handling system for a packet processing system comprising:

a plurality of exception handlers;

a register for holding a data element having a data field with a value selecting one of the plurality of exception handlers, the selected exception handler configured to check for the presence of one or more potential exception conditions associated with the selected exception handler;

a memory for holding packet processing state data relating to a packet undergoing processing by the packet processing system;

a packet processor for selectively modifying the packet processing state data relating to the packet if one or more of the associated potential exception conditions is determined to be present by the selected exception handler;

a second memory for holding a plurality of data elements, each with a data field having a value selecting one of the exception handlers; and

logic for selecting one of the data elements from the second memory responsive to the packet processing state data relating to the packet as selectively modified by the packet processor and storing the selected data element in the register;

wherein the one or more of the potential exception conditions that are checked are determined using a mask associated with the selected exception handler; and

wherein the mask is selected from a plurality of masks associated with the selected exception handler.

4. An exception handling system for a packet processing system comprising:

a plurality of exception handlers;

a register for holding a data element having a data field with a value selecting one of the plurality of exception handlers, the selected exception handler configured to check for the presence of one or more potential exception conditions associated with the selected exception handler;

a memory for holding packet processing state data relating to a packet undergoing processing by the packet processing system;

a packet processor for selectively modifying the packet processing state data relating to the packet if one or more of the associated potential exception conditions is determined to be present by the selected exception handler;

a second memory for holding a plurality of data elements, each with a data field having a value selecting one of the exception handlers; and

logic for selecting one of the data elements from the second memory responsive to the packet processing state data relating to the packet as selectively modified by the packet processor and storing the selected data element in the register;

wherein the packet processor is configured to process other packets in a packet pipeline maintained by the packet processor between the time that the packet processor selectively modifies the packet processing state data relating to the packet and the time that the logic selects one of the data elements from the second memory.

5. The exception handling system of claim 1 wherein at least one of the exception handlers is implemented in hardware.

6. The exception handling system of claim 1 wherein at least one of the exception handlers is implemented in software.

7. The exception handling system of claim 1 wherein at least one of the exception handlers is implemented through a combination of hardware and software.

8. The exception handling system of claim 1 wherein the one or more associated potential exception conditions that are checked are determined using a mask associated with the selected exception handler.

9. The exception handling system of claim 8 wherein only unmasked ones in the one or more associated potential exception conditions are checked.

10. The exception handling system of claim 8 wherein each of the one or more associated potential exception has a priority, and the selected exception handler is configured to check for the presence of one or more potential exception conditions in order of priority.

11. The exception handling system of claim 8 wherein the mask is selected from a plurality of masks associated with the selected exception handler.

12. An exception handling system for a packet processing system comprising:

a plurality of exception handlers;

a register for holding a data element having a data field with a value selecting one of the plurality of exception handlers, the selected exception handler configured to check for the presence of one or more potential exception conditions associated with the selected exception handler;

logic for allowing the selected exception handler, and, therefore, the one or more potential exception conditions that are checked, to dynamically vary as packets are processed by the packet processing system;

a memory for holding packet processing state data relating to a packet undergoing processing by the packet processing system; and

a packet processor for selectively modifying the packet processing state data relating to the packet if one or more of the associated potential exception conditions is determined to be present by the selected exception handler;

wherein the one or more associated potential exception conditions that are checked are determined using a mask associated with the selected exception handler;

wherein the mask is selected from a plurality of masks associated with the selected exception handler; and

wherein the mask is selected using a value of a second data field in the data element stored in the register.

13. The exception handling system of claim 1 wherein each of the one or more potential exception conditions that are checked has an associated state value and priority, and, if one of the potential exception conditions is determined to be present, the packet processor is configured to selectively modify the packet processing state data relating to the packet responsive to the state value and priority associated with the potential exception condition that is present.

14. The system of claim 13 wherein the packet processing state data relating to the packet has a current state value and priority, and the packet processor is configured to replace the current state value with the associated state value if the priority of the associated state value is greater than the priority of the current state value.

15. An exception handling system for a packet processing system comprising:

a plurality of exception handlers, one or more of which are each associated with one or more maskable potential exception conditions;

a register for holding a data element having a data field with a value selecting one of the exception handlers, the selected exception handler configured to check for the presence of one or more unmasked potential exception conditions in the associated one or more potential exception conditions;

logic for allowing the selected exception handler, and, therefore, the one or more unmasked potential exception conditions that are checked, to dynamically vary as packets are processed by the packet processing system;

a memory for holding packet processing state data relating to a packet undergoing processing by the packet processing system; and

a packet processor for selectively modifying the packet processing state data relating to a packet if at least one of the associated one or more potential exception conditions is determined by the selected exception handler to be present;

wherein the one or more of the potential exception conditions that are checked are determined using a mask associated with the selected exception handler; and

wherein the mask is selected from a plurality of masks associated with the selected exception handler.

16. An exception handling system for a packet processing system comprising:

a plurality of exception handlers, one or more of which are each associated with one or more maskable potential exception conditions;

a register for holding a data element having a data field with a value selecting one of the exception handlers, the selected exception handler configured to check for the presence of one or more unmasked potential exception conditions in the associated one or more potential exception conditions;

logic for allowing the selected exception handler, and, therefore, the one or more unmasked potential exception conditions that are checked, to dynamically vary as packets are processed by the packet processing system;

a memory for holding packet processing state data relating to a packet undergoing processing by the packet processing system; and

a packet processor for selectively modifying the packet processing state data relating to a packet if at least one of the associated one or more potential exception conditions is determined by the selected exception handler to be present;

wherein the one or more of the potential exception conditions that are checked are determined using a mask associated with the selected exception handler;

wherein the mask is selected from a plurality of masks associated with the selected exception handler; and

wherein the mask is selected using the value of a second data field in the data element stored in the register.

17. A method of handling exceptions in a packet processing system comprising:

selecting an exception handler from a plurality of exception handlers responsive to packet processing state data relating to a packet undergoing processing by the packet processing system;

in the selected exception handler, checking for the presence of one or more potential exception conditions associated with the selected exception handler;

if one or more of the associated potential exception conditions is present, selectively updating the packet processing state data relating to the packet; and

allowing the selected exception handler, and, therefore, the one or more potential exception conditions that are checked, to dynamically vary as packets are processed by the packet processing system;

wherein the one or more associated exception conditions are maskable; and

wherein the checking step comprises selecting a mask from a plurality of masks associated with the selected exception handler, using the mask to determine one or more unmasked ones of the associated potential exception conditions, and checking for the presence of one or more of the unmasked potential exception conditions.

18. A method of handling exceptions in a packet processing system comprising:

selecting an exception handler from a plurality of exception handlers responsive to packet processing state data relating to a packet undergoing processing by the packet processing system;

in the selected exception handler, checking for the presence of one or more potential exception conditions associated with the selected exception handler;

if one or more of the associated potential exception conditions is present, selectively updating the packet processing state data relating to the packet; and

allowing the selected exception handler, and, therefore, the one or more potential exception conditions that are checked, to dynamically vary as packets are processed by the packet processing system;

wherein the one or more associated exception conditions are maskable;

wherein the checking step comprises selecting a mask from a plurality of masks associated with the selected exception handler, using the mask to determine one or more unmasked ones of the associated potential exception conditions, and checking for the presence of one or more of the unmasked potential exception conditions; and

wherein the step of selecting a mask comprises selecting a mask depending on whether unicast, multicast, or bridge conditions are present.

19. The method of claim 17 wherein a potential exception condition associated with the selected exception handler and determined to be present is associated with a state value and a priority, the packet processing state data relating to the packet state has a current state value and current priority, and the selectively updating step comprises replacing the current state value with the associated state value if the associated priority is greater than the current priority.

20. A method of handling exceptions in a packet processing system comprising:

selecting an exception handler from a plurality of exception handlers responsive to packet processing state data relating to a packet undergoing processing by the packet processing system;

in the selected exception handler, checking for the presence of one or more potential exception conditions associated with the selected exception handler;

if one or more of the associated potential exception conditions is present, selectively updating the packet processing state data relating to the packet; and

allowing the selected exception handler, and, therefore, the one or more potential exception conditions that are checked, to dynamically vary as packets are processed by the packet processing system;

wherein a potential exception condition associated with the selected exception handler and determined to be present is associated with a state value and a priority;

wherein the packet processing state data relating to the packet state has a current state value and current priority;

wherein the selectively updating step comprises replacing the current state value with the associated state value if the associated priority is greater than the current priority; and

wherein the state value is representative of an egress port for the packet.

21. The method of claim 17 wherein the checking step comprises checking the one or more associated potential exception conditions in order of priority.

22. The method of claim 17 wherein the checking step comprises ceasing checking additional potential exception conditions in the associated one or more potential exception conditions upon or after one of the associated potential exception conditions is determined to be present.

23. A method of handling exceptions in a packet processing system comprising:

selecting an exception handler from a plurality of exception handlers responsive to packet processing state data relating to a packet undergoing processing by the packet processing system;

selecting a context from a plurality of contexts responsive to packet processing state data relating to the packet undergoing processing by the packet processing system;

in the selected exception handler, checking for the presence of one or more potential exception conditions associated with the selected exception handler based on the selected context;

if one or more of the associated potential exception conditions is present, selectively updating the packet processing state data relating to the packet; and

allowing the selected exception handler, and, therefore, the one or more potential exception conditions that are checked, to dynamically vary as packets are processed by the packet processing system;

wherein the one or more associated exception conditions are maskable; and

wherein the checking step comprises selecting a mask from a plurality of masks associated with the selected exception handler, using the mask to determine one or more unmasked ones of the associated potential exception conditions, and checking for the presence of one or more of the unmasked potential exception conditions.

24. An exception handling system for a packet processing system comprising:

a plurality of exception handlers;

holding means for holding a data element having a data field with a value selecting one of the plurality of exception handers, the selected exception handlers for checking for the presence of one or more potential exception conditions associated with the selected exception handler;

logic for allowing the selected exception handler, and, therefore, the one or more potential exception conditions that are checked, to dynamically vary as packets are processed by the packet processing system;

a memory for holding packet processing state data relating to a packet; and

a packet processor for selectively modifying the packet processing state data relating to the packet if one or more of the associated potential exception conditions in the associated set is determined to be present by the selected exception handler;

wherein the one or more of the potential exception conditions that are checked are determined using a mask associated with the selected exception handler; and

wherein the mask is selected from a plurality of masks associated with the selected exception handler.

Assignments (9)
RELEASE OF PATENT AND TRADEMARK SECURITY INTEREST AT REEL/FRAME NO. 46050/0546 Recorded Jul 30, 2026
From: BANK OF MONTREAL, AS AGENT
To: EXTREME NETWORKS, INC.
Reel/Frame 076081/0088 →
AMENDED SECURITY AGREEMENT Recorded Aug 18, 2023
From: EXTREME NETWORKS, INC.; AEROHIVE NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 064782/0971 →
RELEASE OF SECURITY INTEREST Recorded May 1, 2018
From: SILICON VALLEY BANK
To: EXTREME NETWORKS, INC.
Reel/Frame 046051/0775 →
SECURITY INTEREST Recorded May 1, 2018
From: EXTREME NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 046050/0546 →
THIRD AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Oct 31, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 044639/0300 →
SECOND AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Jul 14, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 043200/0614 →
AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Oct 31, 2016
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 040521/0762 →
SECURITY AGREEMENT Recorded Jul 27, 2015
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 036189/0284 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2004
From: PARKER, DAVID K.
To: EXTREME NETWORKS, INC.
Reel/Frame 015097/0733 →
Continuity (1)
Provisional Application 6055803900 · Mar 30, 2004