Method and apparatus for packet reordering and aggregation
AssigneeCadence Design Systems, Inc.
InventorsLiyan Ying, Marleson Graf, Kunal Chhabriya
Life of this patent
Estimating the term…
Abstract
The present embodiments relate generally to data communications, and more particularly to methods and apparatuses for packet reordering and aggregation. One or more embodiments relate to a solution in which transaction layer reordering is made aware of IDE aggregation requirements. For example, PCIe packets are reordered to minimize the occurrence of blocked packets due to incomplete aggregation for certain types of PCIe packets which still need to be encrypted. This leads to improved traffic variation and higher throughput, while still ensuring that IDE security requirements are upheld and maintained.
Claims17
A method for managing communications, comprising:
- maintaining received packets in a queue;
- aggregating packets from the queue in a plurality of aggregation units, wherein the aggregation units are configured for performing subsequent encryption of the aggregated packets;
- reordering the packets in the queue in accordance with a filled status of the plurality of aggregation units such that at least one of the packets corresponding to an aggregation unit closest to being full is moved to the head of the queue;
- determining when one of the aggregation units satisfies a parameter;
- encrypting the packets in the one aggregation unit when it is determined that the one aggregation unit satisfies the parameter;
- removing the packets in the one aggregation unit from a buffer when it is determined that the one aggregation unit satisfies the parameter;
- and
- sending the encrypted packets in the one aggregation unit to a next communications layer.
An apparatus for managing communications, comprising:
- a queue configured for storing packets;
- a plurality of aggregation units, wherein the aggregation units are configured for performing subsequent encryption of packets contained therein;
- and
- a reordering and aggregation block configured to:
- aggregate packets from the queue into the aggregation units;
- reorder the packets in the queue in accordance with a filled status of the plurality of aggregation units such that at least one of the packets corresponding to an aggregation unit closest to being full is moved to the head of the queue;
- determine when one of the aggregation units satisfies a parameter;
- encrypt the packets in the one aggregation unit when it is determined that the one aggregation unit satisfies the parameter;
- remove the packets in the one aggregation unit from a buffer when it is determined that the one aggregation unit satisfies the parameter;
- and
- send the encrypted packets in the one aggregation unit to a next communications layer.
A computer readable program product comprising a nontransitory storage medium having instructions stored thereon, which when executed by a processor, cause the processor to perform method for managing communications, comprising:
- maintaining received packets in a queue;
- determining a respective one of a plurality of packet types for each packet in a buffer, wherein each packet type corresponds to one of a plurality of aggregation units, wherein the aggregation units are configured for performing subsequent encryption of the aggregated packets;
- grouping together packets, from the queue, based on the determined packet types in the corresponding aggregation units;
- reordering the packets in the queue in accordance with a filled status of the plurality of aggregation units such that at least one of the packets corresponding to an aggregation unit closest to being full is moved to the head of the queue;
- determining when one of the aggregation units satisfies a parameter;
- encrypting the packets in the one aggregation unit when it is determined that the one aggregation unit satisfies the parameter;
- removing the packets in the one aggregation unit from the buffer when it is determined that the one aggregation unit satisfies the parameter;
- and
- sending the encrypted packets in the one aggregation unit to a next communications layer.
Dependencies are inferred from the claim text.