Method and apparatus for a shared I/O network interface controller
First Claim
1. A shared network interface controller (NIC) within the memory maps of a plurality of operating system domains (OSDs), for interfacing the plurality of operating system domains to a network, the controller comprising:
- a bus interface, for interfacing the controller to the plurality of operating system domains via a load store-bus, such that the shared network interface controller is within the memory maps of the plurality of operating system domains;
transceiver logic, for interfacing the controller to the network;
a processor configured to control transfer of data packets between the bus interface and the transceiver logic;
packet replication logic, coupled to said bus interface, for detecting whether packets received via the bus interface from a first one of the plurality of operating system domains is destined for a second one of the plurality of operating system domains, and if said packets are destined for said second one of the plurality of operating system domains, said logic causing said packets to be transferred to said second one of the plurality of operating system domains; and
control status registers, wherein each control status register is within a memory map of one or more of the operating system domains interfaced to the bus interface, wherein the shared network interface controller includes the control status registers for each of the plurality of operating system domains, andwherein the load store-bus comprises a PCI-Express bus.
4 Assignments
0 Petitions
Accused Products
Abstract
A shared network interface controller (NIC) interfaces a plurality of operating system domains as part of the load-store architecture of the operating system domains. A bus interface couples the NIC to a load-store domain bus (such as PCI-Express), using header information to associate data on the bus with an originating operating system domain. Transmit/receive logic connects the NIC to the network. Association logic allows the NIC to designate, and later lookup which destination MAC address (on the Ethernet side) is associated with which operating system domain. Descriptor register files and Control Status Registers (CSR'"'"'s) specific to an operating system domain are duplicated and made available for each domain. Several direct memory access (DMA) engines are provided to improve throughput. Packet replication logic, filters (perfect and hash) and VLAN tables are used for looping back packets originating from one operating system domain to another and other operations.
-
Citations
12 Claims
-
1. A shared network interface controller (NIC) within the memory maps of a plurality of operating system domains (OSDs), for interfacing the plurality of operating system domains to a network, the controller comprising:
-
a bus interface, for interfacing the controller to the plurality of operating system domains via a load store-bus, such that the shared network interface controller is within the memory maps of the plurality of operating system domains; transceiver logic, for interfacing the controller to the network; a processor configured to control transfer of data packets between the bus interface and the transceiver logic; packet replication logic, coupled to said bus interface, for detecting whether packets received via the bus interface from a first one of the plurality of operating system domains is destined for a second one of the plurality of operating system domains, and if said packets are destined for said second one of the plurality of operating system domains, said logic causing said packets to be transferred to said second one of the plurality of operating system domains; and control status registers, wherein each control status register is within a memory map of one or more of the operating system domains interfaced to the bus interface, wherein the shared network interface controller includes the control status registers for each of the plurality of operating system domains, and wherein the load store-bus comprises a PCI-Express bus. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for determining a loopback condition within a shared network interface controller (NIC) that is coupled to first and second operating system domains within memory maps of the operating system domains, the method comprising:
-
determining by the shared network interface controller whether a packet received from the first operating system domain (OSD) via a load store-bus, from within a memory map of the first OSD is destined for the second operating system domain, the first and second operating system domains interfaced to each other, and to a network, through the shared network interface controller; if the packet is destined for the second operating system domain, forwarding the packet to the second operating system domain, and not forwarding the packet to the network; and if the packet is not destined for the second operating system domain, forwarding the packet to the network, wherein the memory maps comprise control status registers, wherein each control status register is within a memory map of one or more of the operating system domains interfaced to the bus interface, and wherein the shared network interface controller includes control status registers for each of the plurality of operating system domains, and wherein the load store-bus comprises a PCI-Express bus. - View Dependent Claims (9, 10, 11, 12)
-
Specification