Patent ID: 7720112

Claim:
A stream routing unit to route each of a plurality of input packet streams to any of a plurality of destinations, the stream routing unit comprising: a plurality of input ports to receive for receiving respective input streams; a plurality of output ports associated with respective destinations to which the input packet streams can be routed; a store to hold packets of the input packet streams at addressable locations each identifiable by an address, said store being shared by all of said input ports and said output ports; an assignment data structure to identify for each source of the input packet stream at least one destination to which each input packet stream is to be routed; a packet allocation table comprising an array including a plurality of slots to hold for each new incoming packet a source identifier that identifies the source of the incoming packet and the address in the store where the incoming packet is held, the packet allocation table further including a plurality of destination pointers, each destination pointer associated with one of the output ports, each destination pointer being assignable to any slot so as to identify the output ports associated with the intended destinations of a held packet, the assigning of each destination pointer to a slot being derived using the assignment data structure; and a processor to control the removal of packets from the store and the sending of the removed packets out through the plurality of output ports using the assigned destination pointers, wherein an order of packet removal from the store for sending out through the output ports depends on whether the output ports through which the removed packets are to be sent based on the assigned destination pointers are free to send out packets.