A method and apparatus for switching a data packet between a source and destination
in a network. The data packet includes a header portion and a data portion. The
header portion includes routing information for the data packet. The method includes
defining a data path in the router comprising a path through the router along which
the data portion of the data packet travels and defining a control path comprising
a path through the router along which routing information from the header portion
travels. The method includes separating the data path and control path in the router
such that the routing information can be separated from the data portion allowing
for the separate processing of each in the router. The data portion can be stored
in a global memory while routing decisions are made on the routing information
in the control path.