A server on a chip, comprising: a flow pinning component configured for extracting metadata strings from packets and configured for associating the packets with result databases based on the metadata strings, and configured for extracting a first metadata string from a first packet and associating the first packet with a result database based on the first metadata string; and an Ethernet direct memory access engine configured for assigning each of the packets to a respective queue of a plurality of queues (112, 114, 116, 118; 512, 514, 516, 518) based on the associated result database and configured for sending descriptor messages for the packets, and configured for assigning the first packet to a first queue based on the associated result database and sending a first descriptor message for the first packet, wherein each of the plurality of queues is associated with a respective core of a multiprocessor and each core of said multiprocessor is assigned one of the plurality of queues, and wherein the first queue is associated with a first core of the multiprocessor, wherein each descriptor message comprises data that provides details about the presence of the respective packet and the location of the respective packet in a memory of the server on a chip, and wherein the first descriptor message comprises data that provides details about the presence of the first packet and the location of the first packet in the memory; and a queue manager configured for receiving the descriptor messages from the Ethernet direct memory access engine, enqueuing the descriptor messages in the queues, and issuing interrupts to the cores of the multiprocessor, and configured for receiving the first descriptor message from the Ethernet direct memory access engine, enqueueing the first descriptor message in the first queue, and issuing an interrupt to the first core of the multiprocessor. a flow pinning component configured for extracting metadata strings from packets and configured for associating the packets with result databases based on the metadata strings, and configured for extracting a first metadata string from a first packet and associating the first packet with a result database based on the first metadata string; and an Ethernet direct memory access engine configured for assigning each of the packets to a respective queue of a plurality of queues (112, 114, 116, 118; 512, 514, 516, 518) based on the associated result database and configured for sending descriptor messages for the packets, and configured for assigning the first packet to a first queue based on the associated result database and sending a first descriptor message for the first packet, wherein each of the plurality of queues is associated with a respective core of a multiprocessor and each core of said multiprocessor is assigned one of the plurality of queues, and wherein the first queue is associated with a first core of the multiprocessor, wherein each descriptor message comprises data that provides details about the presence of the respective packet and the location of the respective packet in a memory of the server on a chip, and wherein the first descriptor message comprises data that provides details about the presence of the first packet and the location of the first packet in the memory; and a queue manager configured for receiving the descriptor messages from the Ethernet direct memory access engine, enqueuing the descriptor messages in the queues, and issuing interrupts to the cores of the multiprocessor, and configured for receiving the first descriptor message from the Ethernet direct memory access engine, enqueueing the first descriptor message in the first queue, and issuing an interrupt to the first core of the multiprocessor. <EOS>