Method and apparatus for efficiently reassembling fragments received at an intermediate station in a computer network
AssigneeCisco Technology, Inc.
InventorsDante Malagrino, Thomas J. Edsall, Silvano Gai
Life of this patent
Estimating the term…
Abstract
An IP packet reassembly engine provides high-speed and efficient reassembly of IP fragments received at an intermediate station in a computer network. The IP packet reassembly engine comprises a main controller logic circuit configured to “speed-up” re-assembly of original packets from IP fragments stored in a frame buffer at multi-gigabit per second rates. To that end, the reassembly engine further includes a content addressable memory having a plurality of entries for maintaining status information for each received fragment and for each original packet being reassembled from the fragments.
Claims42
Apparatus for providing high-speed and efficient reassembly of fragments received at an intermediate station in a computer network, the apparatus comprising:
- a frame buffer organized into a plurality of queues for storing the fragments;
- a main controller coupled to the frame buffer and configured to reassemble an original packet from the fragments at multi-gigabit per second rates;
- and
- a content addressable memory (CAM) subsystem coupled to the main controller, the CAM subsystem having a plurality of entries, each entry maintaining status information for each fragment received at the intermediate station.
A method for high-speed reassembly of fragments received at an intermediate station in a computer network, the method comprising the steps of
- performing a first lookup operation into a content addressable memory (CAM) subsystem having a plurality of entries to locate a first offset zero fragment entry associated with a packet;
- retrieving contents of a pointer field, a total length field and a 4-tuple field of the located entry;
- using the content of the pointer field to obtain the first offset zero fragment from a queue of the frame buffer;
- performing subsequent lookup operations into the CAM subsystem for subsequent fragments of the packet stored in the frame buffer using the contents of the 4-tuple field to obtain pointers to respective queues in the buffer;
- obtaining the subsequent fragments from the queues using the pointers;
- and
- reassembling the fragments into proper order within an original packet by placing a data portion of each fragment in a relative position indicated by a fragment offset value of each fragment.
A router, comprising:
- a frame buffer organized into a plurality of queues for storing a plurality of fragments of a frame received at said router;
- a controller coupled to the frame buffer to reassemble an original packet from the fragments;
- and
- a content addressable memory (CAM) subsystem coupled to the controller, the CAM subsystem having a plurality of entries, each entry maintaining status information for each fragment of a frame received at the router.
A method for operating a router, comprising:
- storing a plurality of fragments of a frame received at said router;
- maintaining status information for each fragment of the frame in content addressable memory (CAM);
- reassembling an original packet from the fragments in response to the status information.
A router, comprising:
- a frame buffer to store a plurality of fragments of a frame received at said router;
- content addressable memory (CAM) to maintain status information for each fragment of the frame;
- a controller to reassemble an original packet from the fragments in response to the status information.
A router, comprising:
- means for storing a plurality of fragments of a frame received at said router;
- means for maintaining status information for each fragment of the frame in content addressable memory (CAM);
- means for reassembling an original packet from the fragments in response to the status information.
Dependencies are inferred from the claim text.