← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1319082] [NEW] openvswitch agent klm version detection fails on newer kernels

 

Public bug reported:


In neutron/agent/linux/ovs_lib.py get_installed_ovs_klm_version() uses modinfo to detect the version of Open vSwitch provided by the kernel module. The current code simply invokes 'modinfo openvswitch' and looks for the version: line. Now that Open vSwitch has been merged into the mainline kernel version it does not contain that line since the version is simply the version of the Linux kernel. Here is an example of the modprobe output:

    $ modinfo openvswitch
    filename:       /lib/modules/3.14.0-031400-generic/kernel/net/openvswitch/openvswitch.ko
    license:        GPL
    description:    Open vSwitch switching datapath
    srcversion:     B3028BC1DB4D9FCEA33EE9C
    depends:        libcrc32c,vxlan,gre
    intree:         Y
    vermagic:       3.14.0-031400-generic SMP mod_unload modversions 
    signer:         Magrathea: Glacier signing key
    sig_key:        81:29:87:03:9D:4A:1E:B1:AC:7B:5D:2B:4E:CD:B3:BA:9E:78:5C:D3
    sig_hashalgo:   sha512

For our installations I patched around this limitation by simply
returning the string 2.0 if the version line was not present:

    $ git diff
    diff --git a/neutron/agent/linux/ovs_lib.py b/neutron/agent/linux/ovs_lib.py
    index 2072183..b56fadc 100644
    --- a/neutron/agent/linux/ovs_lib.py
    +++ b/neutron/agent/linux/ovs_lib.py
    @@ -477,6 +477,7 @@ def get_installed_ovs_klm_version():
                 if 'version: ' in line and not 'srcversion' in line:
                     ver = re.findall("\d+\.\d+", line)
                     return ver[0]
    +        return '2.0'
         except Exception:
             LOG.exception(_("Unable to retrieve OVS kernel module version."))

** Affects: neutron
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1319082

Title:
  openvswitch agent klm version detection fails on newer kernels

Status in OpenStack Neutron (virtual network service):
  New

Bug description:
  
  In neutron/agent/linux/ovs_lib.py get_installed_ovs_klm_version() uses modinfo to detect the version of Open vSwitch provided by the kernel module. The current code simply invokes 'modinfo openvswitch' and looks for the version: line. Now that Open vSwitch has been merged into the mainline kernel version it does not contain that line since the version is simply the version of the Linux kernel. Here is an example of the modprobe output:

      $ modinfo openvswitch
      filename:       /lib/modules/3.14.0-031400-generic/kernel/net/openvswitch/openvswitch.ko
      license:        GPL
      description:    Open vSwitch switching datapath
      srcversion:     B3028BC1DB4D9FCEA33EE9C
      depends:        libcrc32c,vxlan,gre
      intree:         Y
      vermagic:       3.14.0-031400-generic SMP mod_unload modversions 
      signer:         Magrathea: Glacier signing key
      sig_key:        81:29:87:03:9D:4A:1E:B1:AC:7B:5D:2B:4E:CD:B3:BA:9E:78:5C:D3
      sig_hashalgo:   sha512

  For our installations I patched around this limitation by simply
  returning the string 2.0 if the version line was not present:

      $ git diff
      diff --git a/neutron/agent/linux/ovs_lib.py b/neutron/agent/linux/ovs_lib.py
      index 2072183..b56fadc 100644
      --- a/neutron/agent/linux/ovs_lib.py
      +++ b/neutron/agent/linux/ovs_lib.py
      @@ -477,6 +477,7 @@ def get_installed_ovs_klm_version():
                   if 'version: ' in line and not 'srcversion' in line:
                       ver = re.findall("\d+\.\d+", line)
                       return ver[0]
      +        return '2.0'
           except Exception:
               LOG.exception(_("Unable to retrieve OVS kernel module version."))

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1319082/+subscriptions


Follow ups

References