Quantcast
Channel: Intel Communities : Discussion List - Wired Ethernet
Viewing all articles
Browse latest Browse all 4405

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

$
0
0

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


Viewing all articles
Browse latest Browse all 4405

Trending Articles