“IPV6 header not found” log with ICMPv6 with QinQ

Bug #1711124 reported by Andres Pozo
6
This bug affects 1 person
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/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 also debugged a bit with systempad:

   probe kernel.statement("*@net/ipv6/exthdrs_core.c:200") {
        printf("Function call %s -> %s\n", thread_indent(1), ppfunc());
       printf("%s\n", $$parms$);
        printf("%s\n",$$locals$$);
        printf("\nIP6->%s\n",$_ip6$$)
    }

And the problem seems to be in the version field?

IP6->{.priority=8, .version=4, .flow_lbl="9�?���F�r����� ", .payload_len=34832, .nexthdr='\377', .hop_limit='\377', .saddr={.in6_u={.u6_addr8="F�r����� ", .u6_addr16=[60998, ...], .u6_addr32=[2171792966, ...]}}, .daddr={.in6_u={.u6_addr8="#�q�����", .u6_addr16=[35619, ...], .u6_addr32=[2171702051, ...]}}}

Regards,
Andrés

ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: linux-image-4.4.0-62-generic 4.4.0-62.83
ProcVersionSignature: Ubuntu 4.4.0-62.83-generic 4.4.40
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=UUID=bc05b7d7-5163-44ea-8c18-89f5d02f272c
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=warning', '--lines=1000'] failed with exit code 1: Hint: You are currently not seeing messages from other users and the system.
       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-256color
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=es_ES.UTF-8
 SHELL=/bin/bash
ProcFB: 0 astdrmfb
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-4.4.0-62-generic root=UUID=545e3d8c-c105-4403-b599-c069ff58c690 ro
RelatedPackageVersions:
 linux-restricted-modules-4.4.0-62-generic N/A
 linux-backports-modules-4.4.0-62-generic N/A
 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.asset.tag: NULL
dmi.board.name: CL670R G3 6S
dmi.board.vendor: FOXCONN
dmi.board.version: 1A4258V00-600-G
dmi.chassis.asset.tag: NULL
dmi.chassis.type: 23
dmi.chassis.vendor: FOXCONN
dmi.chassis.version: 1A42AV600-600-G
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvrHGP0104F:bd07/18/2016:svnFOXCONN:pnCL7100:pvrPVT1-X05:rvnFOXCONN:rnCL670RG36S:rvr1A4258V00-600-G:cvnFOXCONN:ct23:cvr1A42AV600-600-G:
dmi.product.name: CL7100
dmi.product.version: PVT1-X05
dmi.sys.vendor: FOXCONN

Revision history for this message
Andres Pozo (apoz) wrote :
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote : Status changed to Confirmed

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
Andres Pozo (apoz) wrote :

I have reproduced the scenario also with bridges and vlan veths.

I am wondering if the problem is related to the fact I'm using 802.1q vlan types in both tags.

Is this supported in 4.4.0 kernel?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.