Short story - cannot receive ipv6 packets in a KVM guest using SR-IOV interfaces (VF), but, ipv4 works fine.
Have 2 KVM VMs set up on 2 separate hosts. OS in the host and the guest is RHEL6.4. The hosts use the 82599 NICs. Have assigned a VFs to each guest (eh4/eth5) using unique mac addresses in the XML guest definition (the other interfaces in the VM are bridged interfaces). Assigned a unique VLAN to each VF per VM (eth4 is 610, eth5 is 611) using 'ip link set' commands. Using Intel provided driver ixgbe (3.15.1) on the host and ixgbevf (2.8.7) in the guest. Plumbed ipv4 and ipv6 IP in the guests for eth4 on each VM. Ping (ipv4) works fine. We can see the packet enter the NIC on the receive side host (tcpdump) and can see it in the guest too. When we repeat the process for ipv6, it fails. It leaves the guest fine, we see it hit the NIC on the received host), but it is NOT received by the guest across the VF. If we pull out the VFs and replace with bridges, ipvv6 works fine so it's not a routing/network issue.
Is there something we need to set up/configure to get ipv6 to show up in the guest?? Note we can also ping out successfully to the upstream L3 switch (subnet gateway), but not to the other VM.
The issue has been found and addresses in RHEL6.5 in the ixgbe driver.
Since I wasn't getting anywhere working with Intel, I brought it to the attention of Redhat. They
worked in conjunction with HP (it was their device) and the between the two of them,
the oncovered and solved the issue.
I cannot tell you what specifically it was, but they updated the ixgbe driver (3.15.1-k) and
rolled that out in the new RHEL6.5 kernel.
I suppose it will eventually rolled out back into the base intel driver. As I stated earlier, the
multicast register was getting cleared when setting MTU size greater than 1500
bytes && SR-IOV interfaces were used.
According to the RH kernel changelog, it states:
[netdrv] ixgbe: fix inconsistent clearing of the multicast table
When googling for that, I see:
https://kernel.googlesource.com/pub/scm/linux/kernel/git/jkirsher/net-next/+/cf78959c0d7afbde31498af... F0 https://kernel.googlesource.com/pub/scm/linux/kernel/git/jkirsher/net-next/+/cf78959c0d7afbde31498af... F0
So, can someone tell me what official intel version has this fix??
I am facing the similar issue with IPv6 where neighbor discovery is not happening once we added explicit neighbor information then only the ipv6 ping works for the VF (pci-passthrough)
Here's the system details.
NIC : FortVille Card (Ethernet Controller X710 for 10GbE SFP+)
OS : Ubuntu 16.04 LTS (kernel 4.15.0-112-generic )
Virtualization : KVM
Driver Info :
# ethtool -i ens2f1
firmware-version: 6.01 0x800036e4 1.1861.0