Described is a protocol controller that supports calls to a packet
subroutine which includes a packet processing engine programmed to
retrieve packets from a packet memory and to interpret the packets, a
working chain pointer module of the packet processing engine programmed
to generate a packet memory address for each packet and a return address
register of the working chain pointer module, adapted to store a return
packet address. Upon processing a call packet, the packet processor
engine instructs the working chain pointer module to save a next packet
address of a normal packet flow in the return address register, and
instructs the working chain pointer module to generate the packet address
to execute the packet routine.