Method and apparatus for using meta-packets in a packet processing system
First Claim
Patent Images
1. A packet processing system, comprising:
- a first storage buffer configured to store data packets containing headers with address or control fields used for directing transport of the data packets over a packet switched network;
a second storage buffer configured to store packet fragments, wherein two or more of the packet fragments are combinable as a reassembled data packet that is capable of being transported over the packet switched network;
a first packet queue configured to store the data packets or packet handles that identify where the data packets are located in the first storage buffer;
a second packet queue configured to store meta-packets containing embedded sequences of meta-commands that are executable independently of the address and control fields contained in the packet headers and that comprise instructions for reassembling the packet fragments;
a packet scheduler configured to output the data packets stored in the first packet queue together with the meta-packets stored in the second packet queue in a first sequential order corresponding with a same order that the data packets and the meta-packets are each separately stored in the first and second packet queues;
a queuing system configured to process the data packets or packet handles and the meta-packets in the first sequential order received from the packet scheduler, wherein the queuing system is further configured, during processing of the meta-packets, to process the packet fragments stored in the second storage buffer to create the reassembled data packet, wherein the packet fragments are reassembled in a second sequential order identified by the embedded sequences of meta-commands contained in the meta-packets, and wherein the reassembled data packet replaces the meta-packets in the first sequential order; and
an output port configured to output the data packets and the reassembled data packet in the first sequential order.
1 Assignment
0 Petitions
Accused Products
Abstract
Meta-packets are used to more efficiently reassemble packets and to more efficiently conduct other packet processing operations. The meta-packets are special types of packets which are interpreted by hardware in a queuing system. Instead of directly containing data, the meta-packet packets contain instructions for building a desired packet from various identifiable storage locations in the packet processor system. Because the reassembled packet replaces the meta-packet, packet ordering is preserved.
-
Citations
44 Claims
-
1. A packet processing system, comprising:
-
a first storage buffer configured to store data packets containing headers with address or control fields used for directing transport of the data packets over a packet switched network; a second storage buffer configured to store packet fragments, wherein two or more of the packet fragments are combinable as a reassembled data packet that is capable of being transported over the packet switched network; a first packet queue configured to store the data packets or packet handles that identify where the data packets are located in the first storage buffer; a second packet queue configured to store meta-packets containing embedded sequences of meta-commands that are executable independently of the address and control fields contained in the packet headers and that comprise instructions for reassembling the packet fragments; a packet scheduler configured to output the data packets stored in the first packet queue together with the meta-packets stored in the second packet queue in a first sequential order corresponding with a same order that the data packets and the meta-packets are each separately stored in the first and second packet queues; a queuing system configured to process the data packets or packet handles and the meta-packets in the first sequential order received from the packet scheduler, wherein the queuing system is further configured, during processing of the meta-packets, to process the packet fragments stored in the second storage buffer to create the reassembled data packet, wherein the packet fragments are reassembled in a second sequential order identified by the embedded sequences of meta-commands contained in the meta-packets, and wherein the reassembled data packet replaces the meta-packets in the first sequential order; and an output port configured to output the data packets and the reassembled data packet in the first sequential order. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method, comprising:
-
receiving a first set of data packets and a second set of data packets in one or more buffers; queuing the first set of data packets comprising data or control packets (regular packets) in a first packet queue; creating meta-packets responsive to receiving the second set of data packets, wherein the meta-packets include a packet header and meta-commands for assembling the second set of data packets; queuing the meta-packets in a second packet queue; de-queuing the first set of data packets and the meta-packets in a first sequential order corresponding with a same order that the first set of data packets and the meta-packets are each separately stored in the first and second packet queues; distinguishing the meta-packets from the first set of data packets by a bit in the packet header; executing the meta-commands in the meta-packets to retrieve the second set of data packets in a second sequential order identified by the meta-commands in the meta-packets; replacing the meta-packets with the second set of data packets in the first sequential order; and transferring the first set of data packets and the second set of data packets to an output port in the first sequential order. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A packet processing system, comprising:
-
one or more packet memory devices configured to receive incoming network packets and packet fragments from a packet switched network, wherein the network packets comprise a packet payload; one or more packet processing elements configured to generate meta-packets containing meta-instructions for reassembling the packet fragments, wherein the meta-packets do not contain packet payloads; and a queuing system configured to execute the meta-instructions in the meta-packets, wherein execution of the meta-instructions cause the packet processing system to perform operations comprising; arranging the network packets together with the meta-packets in a first sequential order; assembling the packet fragments into reassembled network packets in a second sequential order identified in the meta-instructions; and replacing the meta-packets with the reassembled network packets in the first sequential order. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37)
-
-
38. A system, comprising:
-
means for receiving data packets and packet fragments in one or more buffers; means for queuing the data packets comprising data or control packets (regular packets) in a first queue; means for generating meta-packets associated with the packet fragments, wherein the meta-packets comprise a packet header and meta-commands comprising instructions for reassembling the packet fragments into a reassembled packet; means for queuing the meta-packets in a second queue; means for de-queuing the data packets and the meta-packets in a first sequential order corresponding with a same order that the data packets and the meta-packets are each separately queued in the first and second queues; means for distinguishing the meta-packets from the data packets; means for executing the meta-commands in the meta-packets to retrieve the packet fragments in a second sequential order identified by the meta-commands in the meta-packets; means for reassembling the packet fragments in the second sequential order to create the reassembled packet; means for replacing the meta-packets with the reassembled packet in the first sequential order; and means for transferring the data packets and the reassembled packet in the first sequential order. - View Dependent Claims (39, 40)
-
-
41. A non-transitory storage media having stored thereon computer executable instructions, wherein the instructions are executable by a system that cause the system to perform operations comprising:
-
receiving a plurality of data packets and a plurality of packet fragments; storing the plurality of data packets and the plurality of packet fragments; creating meta-packets that identify a location of the stored packet fragments; queuing the plurality of data packets and the meta-packets in one or more packet queues of a packet scheduler in a first sequential order, wherein the meta-packets comprise a packet header and meta-commands for reassembling the plurality of packet fragments into a reassembled packet; de-queuing the data packets and the meta-packets in the first sequential order; transferring the de-queued data packets while executing the meta-commands in the meta-packets; retrieving the plurality of packet fragments; reassembling the plurality of packet fragments into the reassembled packet in a second sequential order according to the meta-commands; and transferring the reassembled packet and the data packets to an output port in the first sequential order. - View Dependent Claims (42, 43, 44)
-
Specification