An apparatus and method is provided for
interfacing a number of computer servers (or
operating system domains) to a network such as
Ethernet through a shared
network interface controller (NIC) which is part of the load-store architecture of the
operating system domains. The
network interface controller includes a
bus interface to couple the controller to a load-store domain
bus (such as PCI-Express), the
bus including header information to associate data on the bus with an originating
operating system domain. The controller also includes transmit / receive logic to connect it to the network. In between the
bus interface and the transmit / receive logic is buffering to temporarily store data coming either from the operating
system domains or the network. The buffered data is tagged within an identifier to associate it with one or more of the operating
system domains. Association logic is further provided to allow the controller to designate, and later lookup which destination
MAC address (on the
Ethernet side) is associated with which operating
system domain. Control Status Registers (CSR's) specific to an operating system domain are duplicated and made available for each domain. Descriptor Register files are also duplicated for each operating system domain. A number of
direct memory access (DMA) engines are provided to improve
throughput. And, packet replication logic, along with filters (perfect and hash) and VLAN tables are used for looping back packets originating from one of the operating system domains to one or more of the other operating system domains, for
server to
server communication,
multicast and broadcast operations.