“IPV6 header not found” log with ICMPv6 with QinQ
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
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, 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 ICMPv6 (but the packets seem to progress right).
I checked the code writing that log, and I think it seems to be in 'kernel/
if (*offset) {
struct ipv6hdr _ip6, *ip6;
ip6 = skb_header_
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:
`....`:
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:
I also debugged a bit with systempad:
probe kernel.
}
And the problem seems to be in the version field?
IP6->{.priority=8, .version=4, .flow_lbl=
Regards,
Andrés
ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: linux-image-
ProcVersionSign
Uname: Linux 4.4.0-62-generic x86_64
AlsaDevices:
total 0
crw-rw---- 1 root audio 116, 1 Jul 21 12:50 seq
crw-rw---- 1 root audio 116, 33 Jul 21 12:50 timer
AplayDevices: Error: [Errno 2] No such file or directory: 'aplay'
ApportVersion: 2.20.1-0ubuntu2.9
Architecture: amd64
ArecordDevices: Error: [Errno 2] No such file or directory: 'arecord'
AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', '/dev/snd/timer'] failed with exit code 1:
Date: Wed Aug 16 14:45:55 2017
HibernationDevice: RESUME=
InstallationDate: Installed on 2017-07-13 (34 days ago)
InstallationMedia: Ubuntu-Server 16.04.2 LTS "Xenial Xerus" - Release amd64 (20170215.8)
IwConfig: Error: [Errno 2] No such file or directory: 'iwconfig'
JournalErrors:
Error: command ['journalctl', '-b', '--priority=
Users in the 'systemd-journal' group can see all messages. Pass -q to
turn off this notice.
No journal files were opened due to insufficient permissions.
MachineType: FOXCONN CL7100
PciMultimedia:
ProcEnviron:
TERM=xterm-
PATH=(custom, no user)
XDG_RUNTIME_
LANG=es_ES.UTF-8
SHELL=/bin/bash
ProcFB: 0 astdrmfb
ProcKernelCmdLine: BOOT_IMAGE=
RelatedPackageV
linux-
linux-
linux-firmware 1.157.11
RfKill: Error: [Errno 2] No such file or directory: 'rfkill'
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
WifiSyslog:
dmi.bios.date: 07/18/2016
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: HGP0104F
dmi.board.
dmi.board.name: CL670R G3 6S
dmi.board.vendor: FOXCONN
dmi.board.version: 1A4258V00-600-G
dmi.chassis.
dmi.chassis.type: 23
dmi.chassis.vendor: FOXCONN
dmi.chassis.
dmi.modalias: dmi:bvnAmerican
dmi.product.name: CL7100
dmi.product.
dmi.sys.vendor: FOXCONN
This change was made by a bot.