← Back to team overview

group.of.nepali.translators team mailing list archive

[Bug 1794232] Re: Geneve tunnels don't work when ipv6 is disabled

 

This bug was fixed in the package linux - 4.15.0-51.55

---------------
linux (4.15.0-51.55) bionic; urgency=medium

  * linux: 4.15.0-51.55 -proposed tracker (LP: #1829219)

  * disable a.out support (LP: #1818552)
    - [Config] Disable a.out support

  * [UBUNTU] qdio: clear intparm during shutdown (LP: #1828394)
    - s390/qdio: clear intparm during shutdown

  * ftrace in ubuntu_kernel_selftests hang with Cosmic kernel (LP: #1826385)
    - kprobes/x86: Fix instruction patching corruption when copying more than one
      RIP-relative instruction

  * touchpad not working on lenovo yoga 530 (LP: #1787775)
    - Revert "UBUNTU: SAUCE: i2c:amd Depends on ACPI"
    - Revert "UBUNTU: SAUCE: i2c:amd move out pointer in union i2c_event_base"
    - Revert "UBUNTU: SAUCE: i2c:amd I2C Driver based on PCI Interface for
      upcoming platform"
    - i2c: add helpers to ease DMA handling
    - i2c: add a message flag for DMA safe buffers
    - i2c: add extra check to safe DMA buffer helper
    - i2c: Add drivers for the AMD PCIe MP2 I2C controller
    - [Config] Update config for AMD MP2 I2C driver
    - [Config] Update I2C_AMD_MP2 annotations

  * tm-unavailable in powerpc/tm failed on Bionic Power9 (LP: #1813129)
    - selftests/powerpc: Check for pthread errors in tm-unavailable
    - selftests/powerpc: Skip tm-unavailable if TM is not enabled

  * cp_abort in powerpc/context_switch from ubunut_kernel_selftests failed on
    Bionic P9 (LP: #1813134)
    - selftests/powerpc: Remove redundant cp_abort test

  * bionic/linux: completely remove snapdragon files from sources (LP: #1827880)
    - [Packaging] remove snapdragon dead files
    - [Config] update configs after snapdragon removal

  * The noise keeps occurring when Headset is plugged in on a Dell machine
    (LP: #1827972)
    - ALSA: hda/realtek - Fixed Dell AIO speaker noise

  * Geneve tunnels don't work when ipv6 is disabled (LP: #1794232)
    - geneve: correctly handle ipv6.disable module parameter

  * There are 4 HDMI/Displayport audio output listed in sound setting without
    attach any HDMI/DP monitor (LP: #1827967)
    - ALSA: hda/hdmi - Read the pin sense from register when repolling
    - ALSA: hda/hdmi - Consider eld_valid when reporting jack event

  * Headphone jack switch sense is inverted: plugging in headphones disables
    headphone output (LP: #1824259)
    - ASoC: rt5645: Headphone Jack sense inverts on the LattePanda board

  * CTAUTO:DevOps:860.50:devops4fp1:Error occurred during LINUX Dmesg error
    Checking for all LINUX clients for devops4p10 (LP: #1766201)
    - SAUCE: integrity: downgrade error to warning

  * Screen freeze after resume from S3 when HDMI monitor plugged on Dell
    Precision 7740 (LP: #1825958)
    - PCI: Restore resized BAR state on resume

  * potential memory corruption on arm64 on dev release (LP: #1827437)
    - driver core: Postpone DMA tear-down until after devres release

  * powerpc/pmu/ebb test in ubuntu_kernel_selftest failed with "error while
    loading shared libraries" on Bionic/Cosmic PowerPC (LP: #1812805)
    - selftests/powerpc/pmu: Link ebb tests with -no-pie

  * unnecessary request_queue freeze (LP: #1815733)
    - block: avoid setting nr_requests to current value
    - block: avoid setting none scheduler if it's already none

  * Kprobe event string type argument failed in ftrace from
    ubuntu_kernel_selftests on B/C i386 (LP: #1825780)
    - selftests/ftrace: Fix kprobe string testcase to not probe notrace function

  * hns: fix socket accounting (LP: #1826911)
    - net: hns: fix skb->truesize underestimation

  * False positive test result in run_netsocktests from net in
    ubuntu_kernel_selftest (LP: #1825777)
    - selftests/net: correct the return value for run_netsocktests

 -- Kleber Sacilotto de Souza <kleber.souza@xxxxxxxxxxxxx>  Wed, 15 May
2019 14:48:35 +0200

** Changed in: linux (Ubuntu Bionic)
       Status: Fix Committed => Fix Released

** Changed in: linux (Ubuntu Cosmic)
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of नेपाली
भाषा समायोजकहरुको समूह, which is subscribed to Xenial.
Matching subscriptions: Ubuntu 16.04 Bugs
https://bugs.launchpad.net/bugs/1794232

Title:
  Geneve tunnels don't work when ipv6 is disabled

Status in linux package in Ubuntu:
  Fix Released
Status in linux source package in Xenial:
  In Progress
Status in linux source package in Bionic:
  Fix Released
Status in linux source package in Cosmic:
  Fix Released
Status in linux source package in Disco:
  Fix Released

Bug description:
  SRU Justification

  Impact: Cannot create geneve tunnels if ipv6 is disabled dynamically.

  Fix:
  Fixed by upstream commit in v5.0:
  Commit: cf1c9ccba7308e48a68fa77f476287d9d614e4c7
  "geneve: correctly handle ipv6.disable module parameter"

  Hence available in Disco and later; required in X,B,C.

  Testcase:
  1. Boot with "ipv6.disable=1"
  2. Then try and create a geneve tunnel using:
     # ovs-vsctl add-br br1
     # ovs-vsctl add-port br1 geneve1 -- set interface geneve1
      type=geneve options:remote_ip=192.168.x.z // ip of the other host

  Regression Potential: Low, only geneve tunnels when ipv6 dynamically
  disabled, current status is it doesn't work at all.

  Other Info:
  * Mainline commit msg includes reference to a fix for
    non-metadata tunnels (infrastructure is not yet in
    our tree prior to Disco), hence not being included
    at this time under this case.

    At this time, all geneve tunnels created as above
    are metadata-enabled.

  ---
  [Impact]

  When attempting to create a geneve tunnel on Ubuntu 16.04 Xenial, in
  an OS environment with open vswitch, where ipv6 has been disabled,
  the create fails with the error :

  “ovs-vsctl: Error detected while setting up 'geneve0': could not
  add network device geneve0 to ofproto (Address family not supported
  by protocol)."

  [Fix]
  There is an upstream commit for this in v5.0 mainline (and in Disco and later Ubuntu kernels).

  "geneve: correctly handle ipv6.disable module parameter"
  Commit: cf1c9ccba7308e48a68fa77f476287d9d614e4c7

  This fix is needed on all our series prior to Disco
  and the v5.0 kernel: X, C, B. It is identical to the
  fix we implemented and tested internally with, but had
  not pushed upstream yet.

  [Test Case]
  (Best to do this on a kvm guest VM so as not to interfere with
   your system's networking)

  1. On any Ubuntu Xenial kernel, disable ipv6. This example
     is shown with the 4.15.0-23-generic kernel (which differs
     slightly from 4.4.x in symptoms):

  - Edit /etc/default/grub to add the line:
          GRUB_CMDLINE_LINUX="ipv6.disable=1"
  - # update-grub
  - Reboot

  2. Install OVS
  # apt install openvswitch-switch

  3. Create a Geneve tunnel
  # ovs-vsctl add-br br1
  # ovs-vsctl add-port br1 geneve1 -- set interface geneve1
  type=geneve options:remote_ip=192.168.x.z

  (where remote_ip is the IP of the other host)

  You will see the following error message:

  "ovs-vsctl: Error detected while setting up 'geneve1'.
  See ovs-vswitchd log for details."

  From /var/log/openvswitch/ovs-vswitchd.log you will see:

  "2018-07-02T16:48:13.295Z|00026|dpif|WARN|system@ovs-system:
  failed to add geneve1 as port: Address family not supported
  by protocol"

  You will notice from the "ifconfig" output that the device
  genev_sys_6081 is not created.

  If you do not disable IPv6 (remove ipv6.disable=1 from
  /etc/default/grub + update-grub + reboot), the same
  'ovs-vsctl add-port' command completes successfully.
  You can see that it is working properly by adding an
  IP to the br1 and pinging each host.

  On kernel 4.4 (4.4.0-128-generic), the error message doesn't
  happen using the 'ovs-vsctl add-port' command, no warning is
  shown in ovs-vswitchd.log, but the device genev_sys_6081 is
  also not created and ping test won't work.

  With the fixed test kernel, the interfaces and tunnel
  is created successfully.

  [Regression Potential]
  * Low -- affects the geneve driver only, and when ipv6 is
    disabled, and since it doesn't work in that case at all,
    this fix gets the tunnel up and running for the common case.

  [Other Info]

  * Analysis

  Geneve tunnels should work with either IPv4 or IPv6 environments
  as a design and support  principle.

  Currently, however, what's in the implementation requires support
  for ipv6 for metadata-based tunnels which geneve is:

  rather than:

  a) ipv4 + metadata // whether ipv6 compiled or dynamically disabled
  b) ipv4 + metadata + ipv6

  What enforces this in the current 4.4.0-x code when opening a Geneve
  tunnel is the following in geneve_open() :

          bool ipv6 = geneve->remote.sa.sa_family == AF_INET6;
          bool metadata = geneve->collect_md;
          ...

  #if IS_ENABLED(CONFIG_IPV6)
          geneve->sock6 = NULL;
          if (ipv6 || metadata)
                  ret = geneve_sock_add(geneve, true);
  #endif
          if (!ret && (!ipv6 || metadata))
                  ret = geneve_sock_add(geneve, false);

  CONFIG_IPV6 is enabled, IPv6 is disabled at boot, but
  even though ipv6 is false, metadata is always true
  for a geneve open as it is set unconditionally in
  ovs:

  In /lib/dpif_netlink_rtnl.c :

  case OVS_VPORT_TYPE_GENEVE:
  nl_msg_put_flag(&request, IFLA_GENEVE_COLLECT_METADATA);

  The second argument of geneve_sock_add is a boolean
  value indicating whether it's an ipv6 address family
  socket or not, and we thus incorrectly pass a true
  value rather than false.

  The current "|| metadata" check is unnecessary and incorrectly
  sends the tunnel creation code down the ipv6 path, which
  fails subsequently when the code expects an ipv6 family socket.

  * This issue exists in all versions of the kernel upto present
     mainline and net-next trees.

  * Testing with a trivial patch to remove that and make
    similar changes to those made for vxlan (which had the
    same issue) has been successful. Patches for various
    versions to be attached here soon.

  * Example Versions (bug exists in all versions of Ubuntu
    and mainline):

  $ uname -r
  4.4.0-135-generic

  $ lsb_release -rd
  Description:	Ubuntu 16.04.5 LTS
  Release:	16.04

  $ dpkg -l | grep openvswitch-switch
  ii  openvswitch-switch                   2.5.4-0ubuntu0.16.04.1

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