An apparatus and method for controlling data traffic flow and data
ordering of packet data between one or more peripheral devices and a
processor/memory combination by using a packet processing engine, located
within an input-output hub (IOH). The IOH may include a packet processing
engine, and a switch to route packet data between the one or more
peripheral devices and the packet processing engine. The packet
processing engine of the IOH may control data traffic flow and data
ordering of the packet data to and from the one or more peripheral
devices through the switch and also maintains flow and ordering to the
processor/memory subsystem. The packet processing engine may be operable
to perform packet processing operations, such as virtualization of a
peripheral device or Transmission Control Protocol/Internet Protocol
(TCP/IP) offload.