Bug 1843270

Summary: [RFE] [vm-fex] TrustGuestRxFilters option for network interfaces
Product: Red Hat Enterprise Virtualization Manager Reporter: Germano Veit Michel <gveitmic>
Component: ovirt-engineAssignee: Nobody <nobody>
Status: CLOSED WONTFIX QA Contact: Michael Burman <mburman>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 4.3.9CC: dholler, mavital, mperina
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-03-11 12:32:13 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Network RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Germano Veit Michel 2020-06-02 23:11:50 UTC
Currently some scenarios using Multicast does not work properly.

In a customer ticket, OSPF (the routing protocol) inside a VM is broken because the VM does not receive Multicast frames "224.0.0.5/01:00:5E:00:00:05" as they are dropped by the macvtap device (VM-FEX) on the host.

We found 2 ways to make the macvtap pass the frames to the VM:
* enable allmulticast on the macvtap
* enable TrustGuestRxFilters on the interface XML.

The first option makes all eth mac multicast addresses reach the VM, so it is not ideal. The second option, AFAICS, makes the multicast filters configured by the VM OS on the virtio-net interface propagate to the macvtap interface, so specific addresses/ranges are not dropped by it.

https://libvirt.org/formatdomain.html#elementsNICS
~~~
the interface element property trustGuestRxFilters provides the capability for the host to detect and trust reports from the guest regarding changes to the interface mac address and receive filters by setting the attribute to yes. The default setting for the attribute is no for security reasons and support depends on the guest network device model as well as the type of connection on the host - currently it is only supported for the virtio device model and for macvtap connections on the host.
~~~

I wrote a quick VDSM hook for testing, and the customer confirmed that with trustGuestRxFilters='yes' VM now receives the multicast frames, so OSPF works.
~~~
doc = hooking.read_domxml()
for interface in doc.getElementsByTagName('interface'):
    interface.setAttribute('trustGuestRxFilters', 'yes')
hooking.write_domxml(doc)
~~~

While a supported VDSM hook may be enough, I think this ideally would be set by the engine and configurable on the vNIC profile (perhaps add it when network filters are disabled?)

Comment 2 Michal Skrivanek 2020-06-23 12:33:46 UTC
This request is not currently committed to 4.4.z, moving it to 4.5

Comment 3 Martin Perina 2021-03-11 08:48:37 UTC
VMFEX feature should be replaced by SRIOV in future, so we are not going to invest any additional feature into RHV VMFEX support