Ethernet Products
Determine ramifications of Intel® Ethernet products and technologies
4862 Discussions

"IPV6 header not found" in syslog for QinQ ICMP6 packets

APozo
Beginner
2,121 Views

Hi all,

I am facing some -I think- strange problem with IPV6 and QinQ in a Linux host, and may be someone has faced similar problem (or could provide a hint).

I have some VMs running in a host (KVM), and every time any VM sends an ICMP6 Router Advertisement, we get the following log in syslog:

Aug 10 11:18:36 Hostname kernel: [1722430.045240] IPv6 header not found

For the traffic, I use QinQ (802.1Q in both tags), the inner tag is set with OVS in the tap(or bridge, no difference), and the outer is set with a veth of vlan type, in the following way:

+-------------------------------------------------------+

| +-----------+ HOST |

| | | Unbuntu 16.04 |

| | VM-1 | 4.4.0-62-generic

| | | |

| +----+------+ |

| | |

| |TAG=1 |

| +-----------------------+ |

| | OVS | |

| +---------+-------------+ |

| | veth1.203 |

| | |

| | |

| +veth0 |

| +---------------------+ |

| | Bridge | |

| +-------+-------------+ |

| | |

| | |

| +--+----+ |

| |ens11f1| |

+-------------------------------------------------------+

'Regular traffic' (non ICMP6) seems to work fine, the problem happens apparently only with the Router Advertisement or Neighbour Discovery.

I checked the code writing that log, and I think it's in 'kernel/net/ipv6/exthdrs_core.c'

if (*offset) {

struct ipv6hdr _ip6, *ip6;

ip6 = skb_header_pointer(skb, *offset, sizeof(_ip6), &_ip6);

if (!ip6 || (ip6->version != 6)) {

printk(KERN_ERR "IPv6 header not found\n");

return -EBADMSG;

}

start = *offset + sizeof(struct ipv6hdr);

nexthdr = ip6->nexthdr;

}

but both the protocol and protocol version seem right in tcpdump:

11:28:38.675686 02:00:40:00:21:31 > 33:33:00:00:00:01, ethertype 802.1Q (0x8100), length 158: vlan 203, p 0, ethertype 802.1Q, vlan 49, p 0, ethertype IPv6, fe80::40ff:fe00:2131 > ff02::1: ICMP6, router advertisement, length 96

`....`:...........@...!1................... @...............@.!1..........@.... ........*.. ..!1................*.. ..!1............. '.

11:28:39.300076 02:00:40:00:23:2a > 33:33:00:00:00:01, ethertype 802.1Q (0x8100), length 158: vlan 204, p 0, ethertype 802.1Q, vlan 193, p 0, ethertype IPv6, fe80::40ff:fe00:232a > ff02::1: ICMP6, router advertisement, length 96

`....`:...........@...# *...................%@...............@.# *..........@.... ........*.. ..# *................*.. ..# *.............

I already disabled (just in case) all the offloading features in the ethernet card (Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02)).

sysadmin@olnmpep02318n002:~/andres$ ethtool -k enp2s0f1

Features for enp2s0f1:

rx-checksumming: off

tx-checksumming: off

tx-checksum-ipv4: off

tx-checksum-ip-generic: off [fixed]

tx-checksum-ipv6: off

tx-checksum-fcoe-crc: off [fixed]

tx-checksum-sctp: off

scatter-gather: off

tx-scatter-gather: off

tx-scatter-gather-fraglist: off [fixed]

tcp-segmentation-offload: off

tx-tcp-segmentation: off

tx-tcp-ecn-segmentation: off

tx-tcp6-segmentation: off

udp-fragmentation-offload: off [fixed]

generic-segmentation-offload: off [requested on]

generic-receive-offload: on

large-receive-offload: off [fixed]

rx-vlan-offload: off

tx-vlan-offload: off

ntuple-filters: on

receive-hashing: on

highdma: on

rx-vlan-filter: off

vlan-challenged: off [fixed]

tx-lockless: off [fixed]

netns-local: off [fixed]

tx-gso-robust: off [fixed]

tx-fcoe-segmentation: off [fixed]

tx-gre-segmentation: on

tx-ipip-segmentation: off [fixed]

tx-sit-segmentation: off [fixed]

tx-udp_tnl-segmentation: on

fcoe-mtu: off [fixed]

tx-nocache-copy: off

loopback: off [fixed]

rx-fcs: off [fixed]

rx-all: off [fixed]

tx-vlan-stag-hw-insert: off [fixed]

rx-vlan-stag-hw-parse: off [fixed]

rx-vlan-stag-filter: off [fixed]

l2-fwd-offload: off [fixed]

busy-poll: off [fixed]

hw-tc-offload: off [fixed]

Any help/hint is trully appreciated!

Regards,

Andrés

0 Kudos
7 Replies
idata
Employee
1,163 Views

Hi Andres_Pozo,

 

 

Thank you for posting at Wired Communities. I will further investigate on this.

 

 

Thanks,

 

sharon

 

0 Kudos
APozo
Beginner
1,163 Views

Great, thanks!

If you need me to dump the NIC configuration or any data, please, let me know.

0 Kudos
idata
Employee
1,163 Views

Hi Andres_Pozo,

 

 

Thank you. Can you provide below information?

 

1) Linux Distribution

 

2) Kernel Version

 

3) Firmware version

 

 

Thanks,

 

sharon

 

0 Kudos
APozo
Beginner
1,163 Views

Hi,

this is the versions we're using:

1) Linux distribution:

Ubuntu 16.04

2) Kernel version

4.4.0-62-generic

uname -a result

Linux hostname 4.4.0-62-generic # 83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

3) firmware version

ethtool -i ens11f1

driver: i40e

version: 2.0.26

firmware-version: 5.05 0x80002924 1.1313.0

expansion-rom-version:

bus-info: 0000:01:00.1

supports-statistics: yes

supports-test: yes

supports-eeprom-access: yes

supports-register-dump: yes

supports-priv-flags: yes

Thanks!

0 Kudos
idata
Employee
1,163 Views

Hi Andres_Pozo,

 

 

Thank you for the information. We will check on this.

 

 

regards,

 

sharon

 

0 Kudos
idata
Employee
1,163 Views

Hi Andres_Pozo,

 

 

Further checking, the issue is caused by XL710 does not support QinQ configuration.

 

 

Thanks,

 

Sharon

 

0 Kudos
idata
Employee
1,163 Views

Hi Andres_Pozo,

 

 

Please let me know if further assistance needed.

 

 

Thanks,

 

Sharon

 

0 Kudos
Reply