Community
cancel
Showing results for 
Search instead for 
Did you mean: 
APozo
Beginner
1,053 Views

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

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
Community Manager
95 Views

Hi Andres_Pozo,

 

 

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

 

 

Thanks,

 

sharon

 

APozo
Beginner
95 Views

Great, thanks!

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

idata
Community Manager
95 Views

Hi Andres_Pozo,

 

 

Thank you. Can you provide below information?

 

1) Linux Distribution

 

2) Kernel Version

 

3) Firmware version

 

 

Thanks,

 

sharon

 

APozo
Beginner
95 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!

idata
Community Manager
95 Views

Hi Andres_Pozo,

 

 

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

 

 

regards,

 

sharon

 

idata
Community Manager
95 Views

Hi Andres_Pozo,

 

 

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

 

 

Thanks,

 

Sharon

 

idata
Community Manager
95 Views

Hi Andres_Pozo,

 

 

Please let me know if further assistance needed.

 

 

Thanks,

 

Sharon

 

Reply