I am testing RHEL 6.4 VMs (ixgbevf 2.6.0-k driver) on RHEL 6.5 Hypervisor (KVM with the ixgbe3.15.1-k driver) using SR-IOV . I have a high-rate multicast application and it appears that every VM is receiving the packets for every multicast packet going into the PF, whether the VM associated with the VF registered for that multicast address or not. Does anyone know if we have something misconfigured? Is there anyway to configure the PF to only forward the multicast packets to VFs that registered for particular multicast addresses?
Thax for posting your question to our blog site.
Intel's SR-IOV solution does provide multcast support for VF's. It is done via a hash on the least significant bits of the multicast address by default. This is something you can change and recompile the driver, however there is no user tool available to do this dynamically.
Can you do a register dump using ethregs (http://sourceforge.net/projects/e1000/files/Ethregs%20-%20Register%20Dump%20Tool/ Intel Ethernet Drivers and Utilities - Browse /Ethregs - Register Dump Tool at SourceForge.net) and provide it to me - we will take a look at how things are configured.
Thanks for your help. I will run the tool and get you the diagnostic information (the client I am supporting requires a lot of paperwork to get new software introduced, so it will be a couple of days). Given your previous message, I am surprised to see the ifconfig rx packet counter incrementing and interrupts firing on VMs that have plumbed the VF but aren't subscribed to any multicasts. This also shows up as high CPU utilization on the host CPU cores associated with those VMs..
I am still working to get you the diagnostic information, but I have another quick question. The multicasts that I am dealing with are 802.1Q tagged. Is it possible that the PF filtering isn't working because it doesn't deal with 802.1Q tagged data coming into a VF?
Each VF receives 802.1Q tagged packets (it is not associated with just one VLAN). I understand that the typical use case would be to pass untagged packets from a particular vlan to a VF, but that is not the case with this application.