8913615

Method and Apparatus for a Shared I/O Network Interface Controller

PublishedDecember 16, 2014
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
12 claims

Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.

Claim 1

Original Legal Text

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.

Plain English Translation

Technology Domain: Computer Networking, Virtualization Problem: Efficiently sharing a single network interface controller (NIC) among multiple isolated operating system domains (OSDs) in a virtualized environment, while ensuring proper data packet routing and control. Invention Summary: This invention describes a shared network interface controller (NIC) designed to be accessible by multiple operating system domains (OSDs) through their respective memory maps. The NIC acts as a central point for these OSDs to connect to a network. It features a bus interface that connects to a load-store bus, specifically a PCI-Express bus, allowing the NIC to reside within the memory maps of each OSD. Transceiver logic handles the physical connection to the network. A processor within the NIC manages the movement of data packets between the bus interface and the transceiver logic. Crucially, packet replication logic is included. This logic monitors packets arriving from one OSD via the bus interface. If a packet is intended for another OSD, the packet replication logic ensures it is routed to that second OSD. The NIC also incorporates control status registers. Each of these registers is mapped into the memory space of one or more OSDs, allowing each OSD to manage and monitor its interaction with the shared NIC. The NIC effectively contains the control status registers for all interfaced OSDs.

Claim 2

Original Legal Text

2. The shared network interface controller as recited in claim 1 wherein the packet replication logic is configured to detect packets received through the bus interface destined only for said second one of the plurality of operating system domains, and to prevent transmission of the detected packets to said network.

Plain English Translation

The shared network interface controller, described previously, includes packet replication logic that not only forwards packets between operating systems (OSDs) but also prevents those same packets from being sent out onto the external network. This feature is useful for isolating communication between OSDs, ensuring that internal traffic stays internal and doesn't consume external bandwidth or expose sensitive data. The packet replication logic examines destination information to identify these "loopback only" packets.

Claim 3

Original Legal Text

3. The shared network interface controller as recited in claim 1 wherein said packet replication logic comprises: filter or virtual LAN (VLAN) logic, for comparing multicast packets with filters established for each of the plurality of operating system domains to determine whether said multicast packets are destined for said second one of the plurality of operating system domains.

Plain English Translation

The shared network interface controller described earlier uses filter or virtual LAN (VLAN) logic within its packet replication component. When the NIC receives a multicast packet from one operating system domain, it compares the packet's destination against filters configured for each domain. These filters determine which domains should receive the multicast packet. This ensures that multicast traffic is only delivered to the intended recipients, optimizing network usage and security.

Claim 4

Original Legal Text

4. The shared network interface controller as recited in claim 3 wherein said filters comprise: hash filters; perfect filters; and VLAN filters.

Plain English Translation

The shared network interface controller, which uses filters for packet replication, employs various filter types. These include hash filters, which use a hashing algorithm to quickly determine if a packet matches a specific filter rule; perfect filters, which provide exact matching; and VLAN filters, which are based on VLAN tags to control traffic flow between different virtual networks. These filters are configured to determine whether a multicast packet is destined for a specific operating system domain.

Claim 5

Original Legal Text

5. The shared network interface controller as recited in claim 1 , wherein the packet replication logic is configured to perform the detection on a transmit descriptor of a packet before the packet is received through the bus interface.

Plain English Translation

In the shared network interface controller described previously, the packet replication logic checks the transmit descriptor of a packet before the packet is actually transferred across the load-store bus. This allows the NIC to make forwarding decisions early in the process, potentially saving bandwidth and processing time. By examining the descriptor, the NIC can determine whether a packet from one operating system domain needs to be looped back to another domain, even before the entire packet has been received.

Claim 6

Original Legal Text

6. The shared network interface controller as recited in claim 1 , comprising a transmit first in first out (fifo) memory for storing packets to be transmitted by the transceiver logic to the network and a receive fifo memory for storing packets received from the network, and wherein the packet replication logic is configured to transfer detected packets from the transmit fifo memory to the receive fifo memory.

Plain English Translation

The shared network interface controller, which handles packet replication, includes transmit and receive FIFO (first-in, first-out) memories. The transmit FIFO stores packets waiting to be sent to the network, while the receive FIFO holds packets coming from the network. The packet replication logic moves packets detected as destined for another operating system domain from the transmit FIFO to the receive FIFO. This allows the receiving domain to process the packet as if it had arrived from the network, simplifying the inter-domain communication process.

Claim 7

Original Legal Text

7. The shared network interface controller as recited in claim 1 , wherein the bus interface comprises a direct memory access (DMA) engine configured to copy communications from the operating system domains to the shared network interface.

Plain English Translation

The shared network interface controller described previously uses a direct memory access (DMA) engine as part of its bus interface. This DMA engine is responsible for efficiently copying data between the memory space of the operating system domains and the NIC. By using DMA, the NIC can transfer large amounts of data without requiring the CPU to be directly involved in the transfer, which reduces CPU load and improves overall system performance.

Claim 8

Original Legal Text

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.

Plain English Translation

A method is used within a shared network interface controller (NIC) to determine if a packet should be looped back between two operating systems (OSDs) without going to the external network. The NIC checks if a packet received from the first OSD via a load-store bus (like PCI-Express) is intended for the second OSD. If it is, the packet is forwarded to the second OSD, but not sent to the network. Otherwise, the packet is sent to the network. Each OSD has separate control status registers (CSRs) for configuration and monitoring, all accessible through memory maps.

Claim 9

Original Legal Text

9. The method for determining a loopback condition, as recited in claim 8 wherein said step of determining comprises: examining a destination MAC address of the packet; and determining whether the destination MAC address is associated with the second operating system domain.

Plain English Translation

The method for loopback determination within a shared network interface controller, as described previously, determines whether to loopback a packet by examining the destination MAC address of the packet. The NIC checks if the destination MAC address is associated with the second operating system domain. This association indicates that the packet should be looped back internally, rather than being sent out onto the network.

Claim 10

Original Legal Text

10. The method for determining a loopback condition, as recited in claim 8 wherein said step of determining comprises: determining whether the packet is a multicast packet, and if so: examining filter logic to establish whether the second operating system domain should receive the multicast packet.

Plain English Translation

The method for determining a loopback condition in a shared network interface controller (as described before) includes checking if a packet is a multicast packet. If it is, the NIC examines filter logic to determine whether the second operating system domain should receive the multicast packet. The filter logic is specific to each domain and determines which multicast groups each domain is subscribed to. This prevents unwanted multicast traffic from being delivered to domains that are not interested in it.

Claim 11

Original Legal Text

11. The method for determining a loopback condition as recited in claim 10 wherein the filter logic comprises: filter tables for the second operating system domain.

Plain English Translation

The loopback determination method, which involves checking filter logic for multicast packets, uses filter tables that are specific to each operating system domain. These filter tables contain information about which multicast groups each domain is subscribed to. By consulting these tables, the NIC can determine whether a particular multicast packet should be forwarded to a specific domain.

Claim 12

Original Legal Text

12. The method for determining a loopback condition as recited in claim 8 wherein said step of determining comprises: determining whether the packet is a broadcast packet, and if so: examining filter logic to establish whether the second operating system domain should receive the broadcast packet.

Plain English Translation

The loopback determination method in a shared network interface controller includes checking if a packet is a broadcast packet. If it is, the NIC examines filter logic to determine whether the second operating system domain should receive the broadcast packet. This filter logic helps control which domains receive broadcast traffic, which can be important for security and performance reasons.

Patent Metadata

Filing Date

Unknown

Publication Date

December 16, 2014

Inventors

Christopher J. Pettey

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, FAQs, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “METHOD AND APPARATUS FOR A SHARED I/O NETWORK INTERFACE CONTROLLER” (8913615). https://patentable.app/patents/8913615

© 2026 Nomic Interactive Technology LLC. Machine-readable context available at /api/llm-context/8913615. See llms.txt for full attribution policy.

METHOD AND APPARATUS FOR A SHARED I/O NETWORK INTERFACE CONTROLLER