US 12,328,222 B2
Reverse virtual ethernet port aggregator bridging for single root I/O virtualization
Michael Tsirkin, Westford, MA (US); and Amnon Ilan, Katzir (IL)
Assigned to Red Hat, Inc., Raleigh, NC (US)
Filed by Red Hat, Inc., Raleigh, NC (US)
Filed on Mar. 25, 2022, as Appl. No. 17/704,807.
Prior Publication US 2023/0308345 A1, Sep. 28, 2023
Int. Cl. H04L 41/08 (2022.01)
CPC H04L 41/08 (2013.01) 17 Claims
OG exemplary drawing
 
1. A system comprising:
a physical network-interface controller (pNIC) that includes a physical function and a virtual function, the pNIC being configured to send and receive data packets via a physical link, wherein the physical function includes a virtual channel and a physical channel;
a virtual machine including a virtual network-interface controller (vNIC) that represents the pNIC in a virtual environment of the virtual machine;
a hypervisor managing the virtual machine, the hypervisor being configured to execute a physical function driver that provides a virtual bridge device and a virtual uplink device for the vNIC, the virtual uplink device being different from the physical link associated with the pNIC, wherein the virtual bridge device is configured to connect to the pNIC through the virtual channel of the physical function, and wherein the virtual uplink device is configured to connect to the pNIC through the physical channel of the physical function;
wherein the hypervisor is configured to:
receive first data from the physical function via the virtual bridge device, wherein the first data originates at the virtual machine;
filter the first data;
transmit the filtered first data to the virtual uplink device for forwarding to the physical function, the physical function being configured to forward the filtered first data to the physical link for transmission to an external destination;
receive second data from the physical function via the virtual uplink device, wherein the second data originates from a source other than the virtual machine and is received at the pNIC via the physical link;
filter the second data; and
transmit the filtered second data to the virtual bridge device for forwarding to the physical function, the physical function being configured to forward the filtered second data to the virtual machine.