Cooperative Flow Locks Distributed Among Multiple Components
First Claim
Patent Images
1. An apparatus, comprising:
- a plurality of components, each of the plurality of components being configured to maintain a plurality of flow locks;
wherein each particular flow lock of the plurality of flow locks is associated with a queue for maintaining an ordering of packet identifiers associated with the particular flow lock; and
wherein each particular flow lock of the plurality of flow locks is configured to perform one or more operations from a plurality of operations corresponding to a particular packet identifier corresponding to a particular packet when the particular packet identifier acquires the flow lock;
wherein the plurality of operations includes selectively converting from one particular flow lock of said flow locks on one component of the plurality of components to a second particular flow lock of said flow locks on a different component of the plurality of components;
wherein said converting from said one particular flow lock to the second particular flow lock includes adding a packet identifier corresponding to the particular packet to the second particular flow lock and releasing said one particular flow lock.
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed are, inter alia, methods, apparatus, computer-storage media, mechanisms, and means associated with cooperative flow locks distributed among multiple components, such as on different application-specific integrated circuits in a packet switching device. Flow locks are typically used for maintaining the order of packets and operations performed thereon by the coordination of a context (e.g., the processing of a packet by a packet processor) with a corresponding flow lock interface, and by the manner of communication performed among the flow lock interface and the distributed flow locks.
40 Citations
20 Claims
-
1. An apparatus, comprising:
-
a plurality of components, each of the plurality of components being configured to maintain a plurality of flow locks; wherein each particular flow lock of the plurality of flow locks is associated with a queue for maintaining an ordering of packet identifiers associated with the particular flow lock; and
wherein each particular flow lock of the plurality of flow locks is configured to perform one or more operations from a plurality of operations corresponding to a particular packet identifier corresponding to a particular packet when the particular packet identifier acquires the flow lock;
wherein the plurality of operations includes selectively converting from one particular flow lock of said flow locks on one component of the plurality of components to a second particular flow lock of said flow locks on a different component of the plurality of components;
wherein said converting from said one particular flow lock to the second particular flow lock includes adding a packet identifier corresponding to the particular packet to the second particular flow lock and releasing said one particular flow lock. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method, comprising:
-
a particular flow lock interface, on a component of a plurality of components of a packet switching device, adding a packet identifier corresponding to a particular packet to the end of queue of a flow lock on a first component of the plurality of components; in response to the packet identifier associated with a convert operation request acquiring the flow lock, performing the convert operation to a second flow lock on a second component, which is not the first component, of the plurality of components; and in response to said performance of the convert operation, the second component communicating an acknowledgement message indentifying to the particular flow lock interface that the current location of a flow lock associated with the particular packet is the second flow lock. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. An apparatus, comprising:
-
a first component of a plurality of components in a packet switching device including means for adding a packet identifier corresponding to a particular packet to the end of queue of a flow lock; means for performing the convert operation to a second flow lock on a second component, which is not the first component, of the plurality of components in response to the packet identifier associated with a convert operation request acquiring the flow lock; and the second component including means for communicating an acknowledgement message indentifying to the particular flow lock interface that the current location of a flow lock associated with the particular packet is the second flow lock in response to said performance of the convert operation. - View Dependent Claims (18, 19, 20)
-
Specification