发明名称 Modifying data streams without reordering in a multi-thread, multi-flow network processor
摘要 Described embodiments classify packets received by a network processor. A processing module of the network processor generates tasks corresponding to each received packet. A scheduler generates contexts corresponding to tasks received by the packet classification processor from corresponding processing modules, each context corresponding to a given flow, and stores each context in a corresponding per-flow first-in, first-out buffer of the scheduler. A packet modifier generates a modified packet based on threads of instructions, each thread of instructions corresponding to a context received from the scheduler. The modified packet is generated before queuing the packet for transmission as an output packet of the network processor, and the packet modifier processes instructions for generating the modified packet in the order in which the contexts were generated for each flow, without head-of-line blocking between flows. The modified packets are queued for transmission as an output packet of the network processor.
申请公布号 US9461930(B2) 申请公布日期 2016.10.04
申请号 US201213687958 申请日期 2012.11.28
申请人 Intel Corporation 发明人 Pollock Steven J.;Mital Deepak;Clee James T.
分类号 G06F7/00;G06F15/00;G06F9/455;G06F9/46;H04L12/863;H04L12/933;G06F15/167;H04L12/931;H04L12/851 主分类号 G06F7/00
代理机构 Nicholson De Vos Webster & Elliott LLP 代理人 Nicholson De Vos Webster & Elliott LLP
主权项 1. A packet classification processor for a network processor having a plurality of processing modules and at least one shared memory, wherein the network processor generates one or more tasks corresponding to each of a plurality of received packets, the packet processor comprising: a scheduler configured to generate one or more contexts corresponding to tasks received by the packet classification processor from corresponding ones of the plurality of processing modules, each context corresponding to a given flow, wherein each context is stored in a corresponding per-flow first-in, first-out buffer; a packet modifier configured to generate a modified packet based on one or more threads of instructions, each thread of instructions corresponding to a context received from the scheduler, wherein the modified packet is generated before the packet is queued for transmission as an output packet of the network processor, wherein the packet modifier is configured to process instructions for generating the modified packet in the order in which the contexts were generated for each flow, without head-of-line blocking between flows; the network processor is configured to (i) queue the modified packet in an associated output queue, (ii) schedule a queued packet for transmission as an output packet of the network processor, and (iii) transmit the scheduled packet as an output packet.
地址 Santa Clara CA US