This change was made by a bot.

** Changed in: linux (Ubuntu)
       Status: New => Confirmed

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1711124

Title:
  “IPV6 header not found” log with ICMPv6 with QinQ

Status in linux package in Ubuntu:
  Confirmed

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

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1711124/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to