System and method for packet storage and retrieval
First Claim
1. A method of processing an instruction for data in a packet, the method comprising:
- editing protocol layers of the packet;
storing a plurality of encapsulation pointers, the encapsulation pointers associated with protocol layers and indicating offsets between a start point of the packet and start points of the edited version of the protocol layers of the packet;
receiving an instruction, the instruction comprising a protocol layer and an offset relative to a start point of the protocol layer;
indicating whether the instruction is directed towards the edited version of the protocol layers of the packet; and
adding the offset relative to the start point of the protocol layer of theencapsulation pointer associated with the protocol layer to determine an offset relative to the beginning of the packet.
2 Assignments
0 Petitions
Accused Products
Abstract
A network services processor receives, stores, and modifies incoming packets and transmits them to their intended destination. The network services processor stores packets as buffers in main and cache memory for manipulation and retrieval. A memory subsystem stores packets as linked lists of buffers. Each bank of memory includes a separate memory management controller for controlling accesses to the memory bank. The memory management controllers, a cache management unit, and free list manager shift the scheduling of read and write operations to maximize overall system throughput. For each packet, packet context registers are assigned, including a packet handle that points to the location in memory of the packet buffer. The contents of individual packets can be accessed through the use of encapsulation pointer registers that are directed towards particular offsets within a packet, such as the beginning of different protocol layers within the packet.
89 Citations
19 Claims
-
1. A method of processing an instruction for data in a packet, the method comprising:
-
editing protocol layers of the packet; storing a plurality of encapsulation pointers, the encapsulation pointers associated with protocol layers and indicating offsets between a start point of the packet and start points of the edited version of the protocol layers of the packet; receiving an instruction, the instruction comprising a protocol layer and an offset relative to a start point of the protocol layer; indicating whether the instruction is directed towards the edited version of the protocol layers of the packet; and adding the offset relative to the start point of the protocol layer of the encapsulation pointer associated with the protocol layer to determine an offset relative to the beginning of the packet. - View Dependent Claims (2, 3, 4, 5)
-
-
6. An apparatus for processing instructions for a packet, the apparatus comprising:
-
an editing unit to edit protocol layers of the packet; a packet context to store a plurality of encapsulation pointers, the encapsulation pointers associated with protocol layers and indicating offsets between a start point of the packet and start points of the edited version of the protocol layers of the packet; and a packet processing controller to; receive an instruction, the instruction comprising a protocol layer and an offset relative to a start point of the protocol layer, indicate whether the instruction is directed towards the edited version of the protocol layers of the packet, and add the offset relative to the start point of the protocol layer to the encapsulation pointer associated with the protocol layer to determine an offset relative to the beginning of the packet. - View Dependent Claims (7, 8, 9, 10, 11, 12)
-
-
13. An apparatus for processing packets, the apparatus comprising:
-
an editing unit to edit protocol layers of the packet; a packet context to store a plurality of encapsulation pointers, the encapsulation pointers associated with protocol layers and indicating offsets between a start point of the packet and start points of the edited version of the protocol layers of the packet; a memory storing a packet in a plurality of buffers; and a packet processing controller to; store a packet handle for the packet, the packet handle indicating a location in the memory for a first buffer of the packet; receive an instruction for the packet, the instruction comprising a protocol layer and an offset relative to the start point of the protocol layer; determine whether a location in memory corresponding to the offset relative to the start point of the protocol layer is stored in the first buffer of the packet; determine whether the instruction is directed towards the edited version of the protocol layers of the packet; and add the offset relative to the start point of the protocol layer to the value of the packet handle indicating a location in memory of the start point of the packet to determine a location in memory for the instruction, when the location in memory corresponding to the offset relative to the beginning of the packet is stored in the first buffer of the packet. - View Dependent Claims (14, 15, 16)
-
-
17. A system comprising:
-
a packet input unit to process an incoming packet; an editing unit coupled to the packet input unit, the editing unit to edit protocol layers of the packet; a packet context to store a plurality of encapsulation pointers, the encapsulation pointers associated with protocol layers and indicating offsets between a start point of the packet and start points of the edited version of the protocol layers of the packet; a packet processing controller to receive an instruction, the instruction comprising a protocol layer and an offset relative to a start point of the protocol layer, indicate whether the instruction is directed towards the edited version of the protocol layers of the packet, add the offset relative to the start point of the protocol later to the encapsulation pointer associated with the protocol layer to determine an offset relative to the beginning of the packet; and a packet output unit to output the edited version of the packet. - View Dependent Claims (18, 19)
-
Specification