发明名称 Scheduling hierarchy in a traffic manager of a network processor
摘要 Described embodiments provide for dynamically constructing a scheduling hierarchy of a network processor. A traffic manager generates a tree scheduling hierarchy having a root scheduler and N scheduler levels. The network processor generates tasks corresponding to received packets. The traffic manager queues the received task in the associated queue, the queue having a corresponding parent scheduler at each of one or more next levels of the scheduling hierarchy up to the root scheduler. A parent scheduler selects, starting at the root scheduler and iteratively repeating at each of the corresponding N scheduling levels until a queue is selected, a child node to transmit at least one task. The traffic manager forms output packets for transmission based on the at least one task from the selected queue.
申请公布号 US8848723(B2) 申请公布日期 2014.09.30
申请号 US201113250910 申请日期 2011.09.30
申请人 LSI Corporation 发明人 Sundararaman Balakrishnan;Nemawarkar Shashank;Sonnier David;Aulakh Shailendra
分类号 H04L12/28;H04L12/937;H04L12/863;H04L12/931;H04L12/933;H04L12/861;G06F12/08 主分类号 H04L12/28
代理机构 代理人
主权项 1. A method of dynamically constructing a scheduling hierarchy of a network processor having a plurality of processing modules and at least one shared memory with packet data, the method comprising: generating, by the network processor, one or more tasks corresponding to each of a plurality of received packets associated with one or more data flows; receiving, by a traffic manager of the network processor, a particular task of the one or more tasks as a received task corresponding to a data flow, the received task provided by one of the plurality of processing modules of the network processor; generating, by the traffic manager, a scheduling hierarchy comprising a tree structure of a root scheduler and N scheduling levels, wherein a scheduler is a branch node and a corresponding queue is a leaf node of the scheduling hierarchy, where N is a positive integer; determining, by the traffic manager, an associated queue of the scheduling hierarchy associated with the received task; queuing, by the traffic manager, the received task in the associated queue, the associated queue having a corresponding parent scheduler at each of one or more next levels of the scheduling hierarchy up to the root scheduler, wherein the queue and the corresponding parent scheduler at each level of the scheduling hierarchy form a branch of the scheduling hierarchy; selecting, by a parent scheduler, starting at the root scheduler and iteratively repeating at each of the corresponding N scheduling levels until a queue is selected, a child node to transmit at least one task from the traffic manager; forming, by the traffic manager, one or more output packets for transmission from the network processor based on the at least one task from the selected queue, wherein the step of determining, by the traffic manager, a queue of the scheduling hierarchy associated with the received task further comprises: determining a flow ID corresponding to the received task, wherein the flow ID corresponds to the queue of the scheduling hierarchy associated with the task; comparing the determined flow ID to one or more configurable mapping tables of the traffic manager, wherein the one or more configurable mapping tables map a flow ID value to one or more queues of the scheduling hierarchy; generating the one or more mapping tables at startup of the network processor with predetermined values from a control processor of the network processor, wherein the default values provide an initial structure of the scheduling hierarchy; and updating the one or more mapping tables during operation of the network processor based on one or more operating conditions of the network processor, wherein updating the one or more mapping tables dynamically restructures the scheduling hierarchy from the initial structure, wherein the one or more operating conditions of the network processor comprise at least one of: a number of tasks received by the traffic manager, a number of tasks enqueued by the traffic manager, a number of tasks transmitted by the traffic manager, one or more priorities of tasks of the network processor, and one or more types of data traffic of the network processor.
地址 San Jose CA US