Patent ID: 7664823
Filing Date: 2010-02-16
Classification: G06F

Abstract:
1. A system for packet processing, the system comprising: a shared memory maintaining a plurality of code partitions, the code partitions together implementing a feature set for packet processing; a plurality of processors each comprising a processor core and an instruction memory loaded with at least one of the code partitions from the shared memory, the processor core operable to execute the loaded code partition to perform processing of packets and to generate migration requests for transferring packet processing operations from the loaded code partition; a context manager operable to receive a migration request from one of the loaded code partitions executing within one of the processor cores, the migration request comprising packet context information and identifying a target one of the code partitions, the context manager further operable, in response to the migration request, to identify an available one of the processors having the target code partition loaded, and to communicate the packet context to the available one of the processors; wherein the context manager maintains a plurality of queues each corresponding to one of the code partitions, the context manager further operable, in response to the migration request, to place migration data comprising the packet context information into the queue associated with the target code partition, to monitor the queue associated with the target code partition, and upon determining that one of the processors having the target code partition loaded is available for processing, to communicate the packet context information to the available one of the processors; wherein an initial one of the code partitions includes instructions for initial packet processing that identify a plurality of processing functions and, for each of the processing functions, include a migration instruction associated with the processing function that indicates another one of the code partitions; and wherein a selected one of the processors assigned the initial code partition is operable to receive packet context information associated with a received packet, the selected processor further operable, by executing the initial code partition, to identify characteristics of the received packet that correspond to one of the processing functions, to select the migration instruction associated with the identified processing function and to generate a migration request that comprises the received packet context information and targets the other one of the code partitions indicated by the selected migration instruction.