×

Cooperative flow locks distributed among multiple components

  • US 8,139,488 B2
  • Filed: 05/30/2008
  • Issued: 03/20/2012
  • Est. Priority Date: 05/30/2008
  • Status: Active Grant
First Claim
Patent Images

1. An apparatus, comprising:

  • a plurality of components, each of the plurality of components being configured to maintain and process a plurality of flow locks in a distributed manner, wherein each of the plurality of components includes one or more packet processing contexts and one or more flow lock interfaces;

    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, which includes said one component communicating directly or indirectly with the different component in processing flow locks, including said one particular flow lock and the second particular flow lock, in a distributed manner;

    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;

    wherein each of said flow locks has associated with it a command queue configured to store one or more commands;

    wherein each of the plurality of components includes a flow lock interface configured for communicating commands to be stored in said command queues in each of the plurality of components;

    wherein each of the plurality of components includes one or more packet processors;

    wherein each packet processor of said packet processors is configured to communicate with the flow lock interface on said component on which the said packet processor resides for communicating said commands associated with packets being processed by said packet processor to said command queues in each of the plurality of components; and

    wherein each flow lock interface of the plurality of flow lock interfaces includes one or more data structures stored in one or more computer-readable media for maintaining information related to flow locks of packets being processed on the component on which said flow lock interface resides;

    wherein said information includes an indication of a location of the current flow lock for each packet being processed on the component.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×