1. A system comprising at least two network processors configured to process received data packets, each network processor comprising: a plurality of processing modules, wherein corresponding ones of the processing modules are selected to process a received data packet in a task pipeline based on one or more tasks associated with the received data packet, wherein tasks are transmitted to the processing modules on a task ring of the network processor; wherein, a first of the at least two network processors is configured to: receive a data packet and perform processing on the received data packet based on the one or more associated tasks; determine, whether processing of the received data packet should be completed by one or more subsequent ones of the at least two network processors; generate a partially processed data packet based on the received packet; insert a task message in the partially processed data packet; and transmit the partially processed data pocket and the task message to the corresponding one or more subsequent ones of the at least two network processors; wherein, the corresponding one or more subsequent ones of the at least two network processors are each configured to: receive the partially processed data packet and the task message; based on the task message, determine one or more tasks of the partially processed data packet, wherein the task message determines an order of processing of the partially processed data packet by the one or more subsequent ones of the at least two network processors; extract the task message from the partially processed data packet; and using, by the one or more destination network processors, the extracted task message to further process the partially processed data packet, thereby extending the task ring of the first network processor to the corresponding one or more subsequent ones of the at least two network processors.