IP Library › Granted Patent US 7,152,124
Granted Patent B1
US 7,152,124 · App. 10/073,538 · Granted Dec 19, 2006

Method and system for maintaining temporal consistency of resources and data in a multiple-processor packet switch

Assignee: Extreme Networks
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,152,124
App. No.
10/073,538
Granted
Dec 19, 2006
Kind
B1
Abstract

A network switch architected using multiple processor engines includes a method and system for ensuring temporal consistency of data and resources as packet traffic flows through the switch. Upon receiving a connection request, the switch internally associates a semaphore with the connection. The semaphore is distributed and stored at the processing engines. Each of the processing engines performs specific operations relating to incoming packets associated with the connection. Internal messages are passed between the processing engines to coordinate and control these operations. Some of these messages can include a semaphore value. Upon receiving such a message, a processing engine compares the semaphore value to a stored semaphore. Packets relating to the connection identified by the message are processed if there is a match between the semaphores. Also, the semaphore value can be moved from one processing engine to another in order to control the allocation and de-allocation of resources.

Claims (50)

1. In a network switch including a plurality of processing engines, a method of coordinating the operation of the processing engines, comprising:

receiving a request for a connection at the network switch;

assigning a semaphore to the connection;

storing the semaphore at the processing engines;

at one of the processing engines, receiving an internal message including a semaphore value;

comparing the stored semaphore to the semaphore value; and

at the one of the processing engines, processing the internal message based on the comparison of the stored semaphore and the semaphore value.

2. The method of claim 1 , further comprising:

pre-loading a memory with a plurality of semaphores assignable to connections.

3. The method of claim 1 , further comprising:

in the one of the processing engines, allocating resources to the connection if the stored semaphore is equal to the semaphore value.

4. The method of claim 1 , further comprising:

in the one of the processing engines, de-allocating resources assigned to the connection if the stored semaphore is equal to the semaphore value.

5. The method of claim 1 , wherein the semaphore is a generation count.

6. The method of claim 5 , further comprising:

terminating the connection;

incrementing the generation count; and

storing the incremented generation count in a memory.

7. The method of claim 6 , further comprising:

returning the incremented generation count to a first-in-first-out (FIFO) memory so that the incremented generation count is assignable to a subsequently received connection request.

8. The method of claim 1 , further comprising:

generating an exception response based on the comparison of the stored semaphore and the semaphore value.

9. A method of processing a packet received by a switch having a plurality of processors, comprising:

at an origination processor, assigning a semaphore to an internal message associated with the packet;

passing the internal message to another of the processors;

performing processing operations relating to the packet at the another of the processors, based on the internal message; and

returning to the origination processor a response including the semaphore, for indicating that the processing operations are completed.

10. The method of claim 9 , further comprising:

upon receipt of the internal message at the another of the processors, allocating resources within the another of the processors for performing the processing operations.

11. The method of claim 10 , wherein the resources are shared.

12. A network switch, comprising:

a first processing engine for assigning a semaphore to one or more packets associated with a connection; and

a second processing engine, in communication with the first processing engine, having a memory for storing the semaphore and an interface for receiving an internal message including a semaphore value, the second processing engine processing the packets based on a comparison of the stored semaphore and the semaphore value.

13. The network switch of claim 12 , further comprising:

a first-in-first-out (FIFO) memory, operatively associated with the first processing engine, for storing a plurality of semaphores assignable to a plurality of connections.

14. The network switch of claim 13 , further comprising:

a central processing unit (CPU) configured to pre-load the FIFO memory with the semaphores.

15. The network switch of claim 12 , wherein the second processing engine further comprises:

shared resources allocated for processing the packets if the stored semaphore is equal to the semaphore value.

16. The network switch of claim 12 , wherein the semaphore is a generation count.

17. The network switch of claim 16 , further comprising:

means for terminating the connection;

means for incrementing the generation count; and

means for storing the incremented generation count in a FIFO memory.

18. The network switch of claim 16 , further comprising:

means for returning the incremented generation count to the FIFO memory so that the incremented generation count is assignable to a subsequently received connection request.

19. The network switch of claim 12 , further comprising:

means for generating an exception response based on the comparison of the stored semaphore and the semaphore value;

means for comparing the stored semaphore to the semaphore value; and

means for processing the internal message or generating an exception response.

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 May 7, 2002
From: PURI, RAHOUL; CARRIE, SUSAN; DE LA IGLESIA, ERIK
To: EXTREME NETWORKS
Reel/Frame 012885/0830 →