[ovs-dev] [PATCH v2] rhel: support kmod-openvswitch build against multiple kernels, rhel6

Martin Xu martinxu9.ovs at gmail.com
Thu Jul 12 00:06:51 UTC 2018


On Wed, Jul 11, 2018 at 4:35 PM, Flavio Leitner <fbl at sysclose.org> wrote:

> On Wed, Jul 11, 2018 at 03:30:08PM -0700, Martin Xu wrote:
> > This patch only affects rhel6 spec file.
> >
> > RHEL 7.4 introduced backward incompatible changes in the kernel. As
> > a result, prebuilt PRM packages against kernels newer than 693.17.1
> > will cannot be used on systems with older kernels, vice versa.
> >
> > This patch allows multiple kernel version numbers delimited by
> > whitespace to be passed as variable "kversion". kmod-openvswitch RPM
> > packages the kernel module .ko files from all specified kernel
> > versions.
> >
> > This patch also includes a script to update the weak-update symlinks
> > if the system kernel version is upgraded or downgraded after
> > kmod-openvswitch is installed.
> >
> > Previouly the  macro is used to generate spec file
> > template to build kmod-openvswitch RPM. This macro is now removed.
> > Everything is built in the main package. To maintain consistent naming,
> > the rhel6 kmod spec file is renamed to kmod-openvswitch-rhel6.spec to
> > match the built package name kmod-openvswitch.
> >
> > This patch also removes the openvswitch-kmod package.
>
> This patch does few things at once. It renames the kmod, then do
> significant changes at the file and add a new script.
> I would suggest to have this split into at least two patches.
> The first one renames the file and fix automake/gitignore and
> related files as a preparation.
> The second one fixes the issue and adds the kmod script.
>
Thanks for reviewing it. I'll split the patch up. I was troubled by the
fact git would just consider it as a brand new file because of the
significant changes.

>
> > Signed-off-by: Martin Xu <martinxu9.ovs at gmail.com>
> > Signed-off-by: Greg Rose <gvrose8192 at gmail.com>
> > CC: Ben Pfaff <blp at ovn.org>
> > CC: Flavio Leitner <fbl at redhat.com>
> > CC: Aaron Conole <aconole at redhat.com>
> > ---
> >  Documentation/intro/install/rhel.rst               |   7 +-
> >  poc/playbook-centos-builder.yml                    |   8 +-
> >  rhel/.gitignore                                    |   1 +
> >  rhel/automake.mk                                   |   8 +-
> >  rhel/kmod-openvswitch-rhel6.spec.in                | 120
> +++++++++++++++++++++
> >  rhel/openvswitch-kmod-rhel6.spec.in                | 103
> ------------------
> >  rhel/openvswitch-kmod.files                        |   3 -
> >  ...sr_share_openvswitch_scripts_ovs-kmod-manage.sh |  71 ++++++++++++
> >  8 files changed, 203 insertions(+), 118 deletions(-)
> >  create mode 100644 rhel/kmod-openvswitch-rhel6.spec.in
> >  delete mode 100644 rhel/openvswitch-kmod-rhel6.spec.in
> >  delete mode 100644 rhel/openvswitch-kmod.files
> >  create mode 100644 rhel/usr_share_openvswitch_
> scripts_ovs-kmod-manage.sh
> >
> > diff --git a/Documentation/intro/install/rhel.rst
> b/Documentation/intro/install/rhel.rst
> > index f8b26069f..6f062e894 100644
> > --- a/Documentation/intro/install/rhel.rst
> > +++ b/Documentation/intro/install/rhel.rst
> > @@ -197,17 +197,16 @@ the unit tests, run::
> >  Kernel Module
> >  ~~~~~~~~~~~~~
> >
> > -On RHEL 6, to build the Open vSwitch kernel module, copy
> > -rhel/openvswitch-kmod.files into the RPM sources directory and run::
> > +On RHEL 6, to build the Open vSwitch kernel module run::
> >
> > -    $ rpmbuild -bb rhel/openvswitch-kmod-rhel6.spec
> > +    $ rpmbuild -bb rhel/kmod-openvswitch-rhel6.spec
> >
> >  You might have to specify a kernel version and/or variants, e.g.:
> >
> >      $ rpmbuild -bb \
> >          -D "kversion 2.6.32-131.6.1.el6.x86_64" \
> >          -D "kflavors default debug kdump" \
> > -        rhel/openvswitch-kmod-rhel6.spec
> > +        rhel/kmod-openvswitch-rhel6.spec
> >
> >  This produces an "kmod-openvswitch" RPM for each kernel variant, in this
> >  example: "kmod-openvswitch", "kmod-openvswitch-debug", and
> > diff --git a/poc/playbook-centos-builder.yml
> b/poc/playbook-centos-builder.yml
> > index 71f104010..e902db75d 100644
> > --- a/poc/playbook-centos-builder.yml
> > +++ b/poc/playbook-centos-builder.yml
> > @@ -41,13 +41,13 @@
> >          chdir: /git/ovs/rhel
> >      with_items:
> >        - openvswitch.spec
> > -      - openvswitch-kmod-rhel6.spec
> > +      - kmod-openvswitch-rhel6.spec
> >
> >    - name: Install build dependencies specified from spec files
> >      shell: echo "y" | yum-builddep /tmp/{{item}}
> >      with_items:
> >        - openvswitch.spec
> > -      - openvswitch-kmod-rhel6.spec
> > +      - kmod-openvswitch-rhel6.spec
> >
> >    - name: Create rpm dev tree
> >      command: rpmdev-setuptree
> > @@ -81,7 +81,7 @@
> >        line: "Release: {{ ansible_local.builder.release }}"
> >      with_items:
> >        - openvswitch.spec
> > -      - openvswitch-kmod-rhel6.spec
> > +      - kmod-openvswitch-rhel6.spec
> >
> >    - name: Build Open vSwitch user space rpms
> >      command: rpmbuild -bb --without check rhel/openvswitch.spec
> > @@ -89,7 +89,7 @@
> >          chdir: "{{SOURCE}}/openvswitch-{{version.stdout}}"
> >
> >    - name: Build Open vSwitch kmod rpms (only for currently loaded
> kernel)
> > -    command: rpmbuild -bb  --without check rhel/openvswitch-kmod-rhel6.
> spec
> > +    command: rpmbuild -bb  --without check rhel/kmod-openvswitch-rhel6.
> spec
> >      args:
> >          chdir: "{{SOURCE}}/openvswitch-{{version.stdout}}"
> >
> > diff --git a/rhel/.gitignore b/rhel/.gitignore
> > index e584a1ed0..9b0ce1d38 100644
> > --- a/rhel/.gitignore
> > +++ b/rhel/.gitignore
> > @@ -1,6 +1,7 @@
> >  openvswitch-dkms.spec
> >  openvswitch-kmod-rhel5.spec
> >  openvswitch-kmod-rhel6.spec
> > +kmod-openvswitch-rhel6.spec
> >  openvswitch-kmod-fedora.spec
> >  openvswitch.spec
> >  openvswitch-fedora.spec
> > diff --git a/rhel/automake.mk b/rhel/automake.mk
> > index 137ff4a39..7b6c78fd7 100644
> > --- a/rhel/automake.mk
> > +++ b/rhel/automake.mk
> > @@ -15,9 +15,8 @@ EXTRA_DIST += \
> >       rhel/etc_sysconfig_network-scripts_ifup-ovs \
> >       rhel/openvswitch-dkms.spec \
> >       rhel/openvswitch-dkms.spec.in \
> > -     rhel/openvswitch-kmod-rhel6.spec \
> > -     rhel/openvswitch-kmod-rhel6.spec.in \
> > -     rhel/openvswitch-kmod.files \
> > +     rhel/kmod-openvswitch-rhel6.spec \
> > +     rhel/kmod-openvswitch-rhel6.spec.in \
> >       rhel/openvswitch-kmod-fedora.spec \
> >       rhel/openvswitch-kmod-fedora.spec.in \
> >       rhel/openvswitch.spec \
> > @@ -27,6 +26,7 @@ EXTRA_DIST += \
> >       rhel/usr_share_openvswitch_scripts_ovs-systemd-reload \
> >       rhel/usr_share_openvswitch_scripts_sysconfig.template \
> >       rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \
> > +     rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh \
> >       rhel/usr_lib_udev_rules.d_91-vfio.rules \
> >       rhel/usr_lib_systemd_system_openvswitch.service \
> >       rhel/usr_lib_systemd_system_ovsdb-server.service \
> > @@ -48,7 +48,7 @@ update_rhel_spec = \
> >  $(srcdir)/rhel/openvswitch-dkms.spec: rhel/openvswitch-dkms.spec.in
> $(top_builddir)/config.status
> >       $(update_rhel_spec)
> >
> > -$(srcdir)/rhel/openvswitch-kmod-rhel6.spec: rhel/
> openvswitch-kmod-rhel6.spec.in $(top_builddir)/config.status
> > +$(srcdir)/rhel/kmod-openvswitch-rhel6.spec: rhel/
> kmod-openvswitch-rhel6.spec.in $(top_builddir)/config.status
> >       $(update_rhel_spec)
> >
> >  $(srcdir)/rhel/openvswitch-kmod-fedora.spec: rhel/
> openvswitch-kmod-fedora.spec.in $(top_builddir)/config.status
> > diff --git a/rhel/kmod-openvswitch-rhel6.spec.in b/rhel/
> kmod-openvswitch-rhel6.spec.in
> > new file mode 100644
> > index 000000000..b0e50a4f8
> > --- /dev/null
> > +++ b/rhel/kmod-openvswitch-rhel6.spec.in
> > @@ -0,0 +1,120 @@
> > +# Spec file for Open vSwitch kernel modules on Red Hat Enterprise
> > +# Linux 6.
> > +
> > +# Copyright (C) 2011, 2012, 2018 Nicira, Inc.
> > +#
> > +# Copying and distribution of this file, with or without modification,
> > +# are permitted in any medium without royalty provided the copyright
> > +# notice and this notice are preserved.  This file is offered as-is,
> > +# without warranty of any kind.
> > +
> > +%define oname openvswitch
> > +
> > +Name:           kmod-%{oname}
> > +Version:        @VERSION@
> > +Release:        1%{?dist}
> > +Summary:        Open vSwitch kernel module
> > +
> > +Group:          System/Kernel
> > +License:        GPLv2
> > +URL:            http://openvswitch.org/
> > +Source0:        %{oname}-%{version}.tar.gz
> > +Source1:        %{oname}-kmod.files
> > +BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}
> -%{release}-XXXXXX)
> > +
> > +# Without this we get an empty openvswitch-debuginfo package (whose name
> > +# conflicts with the openvswitch-debuginfo package for OVS userspace).
> > +%undefine _enable_debug_packages
> > +
> > +%define kernel_source_extended() /usr/src/kernels/%{2}$([ %{1} =
> default ] || echo ".%{1}")
> > +
> > +# By default, build against the latest installed kernel
> > +%{!?kversion:%global kversion %(rpm -q --qf
> '%{VERSION}-%{RELEASE}.%{ARCH}' `rpm -qa | egrep
> "^kernel(-rt|-aarch64)?-devel" | /usr/lib/rpm/redhat/rpmsort -r | head -n
> 1` | head -n 1)}
>
> Well, that assumption is very often wrong because the latest kernel
> installed might not be the running kernel nor the one that will run
> in the next boot, but I see that you just want to have a default.
>
> I shall fix the comment in the next version. I meant to write "build
against the latest installed kernel-devel"
which as you mentioned is not necessarily the same version as the running
kernel.
The current spec on master uses macro kernel_module_package, and it picks
up the latest version of kernel-devel
I want to keep it the same as before. I don't know if users are aware this
is the default.
I also checked the fedora spec file. We build with "make rpm-fedora-kmod"
which passes "kversion $(shell uname -r)" by default.

>
> > +# Use -D 'kversion 2.6.32-131.6.1.el6.x86_64' to build package
> > +# for specified kernel version.
> > +
> > +# Use -D 'kflavors default debug kdump' to build packages for
> > +# specified kernel variants.
> > +%{!?kflavors:%global kflavors default}
> > +
> > +%description
> > +Open vSwitch Linux kernel module.
> > +
> > +%prep
> > +
> > +%setup -n %{oname}-%{version}
> > +
> > +%build
> > +
> > +for kv in %{kversion}; do
>
> Isn't that a single version only?
>
Sorry, didn't get what you meant.
The multiple kernel versions come from what's defined as kversion
If kversion is "2.6.32-131.6.1.el6.x86_64 2.6.32-131.6.2.el6.x86_64
2.6.32-131.6.3.el6.x86_64", it'll build for all of them, and put them in
one RPM.
Is that what you were asking?

> I didn't spot anything else in this light review :-)
> fbl
>
>
> > +    for flavor in %{kflavors}; do
> > +        mkdir -p _$flavor/_$kv
> > +        (cd _$flavor/_$kv && ../../configure
> --with-linux="%{kernel_source_extended $flavor $kv}")
> > +        %{__make} -C _$flavor/_$kv/datapath/linux %{?_smp_mflags}
> > +        done
> > +done
> > +
> > +%install
> > +export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
> > +export INSTALL_MOD_DIR=extra/%{oname}
> > +for kv in %{kversion}; do
> > +    for flavor in %{kflavors} ; do
> > +        make -C %{kernel_source_extended $flavor $kv} modules_install \
> > +                M="`pwd`"/_$flavor/_$kv/datapath/linux
> > +        # Cleanup unnecessary kernel-generated module dependency files.
> > +        find $INSTALL_MOD_PATH/lib/modules -iname 'modules.*' -exec rm
> {} \;
> > +    done
> > +done
> > +install -d %{buildroot}%{_sysconfdir}/depmod.d/
> > +for kv in %{kversion}; do
> > +    for module in %{buildroot}/lib/modules/$kv/$INSTALL_MOD_DIR/*.ko;
> > +    do
> > +        modname="$(basename ${module})"
> > +        grep -qsPo "^\s*override ${modname%.ko} \* extra\/%{oname}"
> %{oname}.conf || \
> > +            echo "override ${modname%.ko} * extra/%{oname}" >>
> %{oname}.conf
> > +        grep -qsPo "^\s*override ${modname%.ko} \*
> weak-updates\/%{oname}" %{oname}.conf || \
> > +            echo "override ${modname%.ko} * weak-updates/%{oname}" >>
> %{oname}.conf
> > +    done
> > +done
> > +install -m 644 %{oname}.conf %{buildroot}%{_sysconfdir}/depmod.d/
> > +install -d -m 0755 $RPM_BUILD_ROOT/usr/share/%{oname}/scripts
> > +install -p -m 0755 rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh
> \
> > +    $RPM_BUILD_ROOT/usr/share/%{oname}/scripts/ovs-kmod-manage.sh
> > +
> > +%post
> > +current_kernel=$(uname -r)
> > +IFS=. read installed_major installed_minor installed_micro
> installed_arch \
> > +    installed_build <<<"${current_kernel##*-}"
> > +if [ "$installed_major" = "693" ]; then
> > +    # Workaround for RHEL 7.4
> > +    if [ -x "/usr/share/%{oname}/scripts/ovs-kmod-manage.sh" ]; then
> > +        /usr/share/%{oname}/scripts/ovs-kmod-manage.sh
> > +    fi
> > +else
> > +    # Ensure that modprobe will find our modules.
> > +    for k in $(cd /lib/modules && /bin/ls); do
> > +        [ -d "/lib/modules/$k/kernel/" ] && depmod -a "$k"
> > +    done
> > +    if [ -x "/sbin/weak-modules" ]; then
> > +        for m in openvswitch vport-gre vport-stt vport-geneve \
> > +                 vport-lisp vport-vxlan; do
> > +            echo "/lib/modules/%{kversion}/extra/%{oname}/$m.ko"
> > +        done | /sbin/weak-modules --add-modules
> > +    fi
> > +fi
> > +
> > +%postun
> > +for kname in `ls -d /lib/modules/*`
> > +do
> > +    rm -rf $kname/weak-updates/openvswitch
> > +done
> > +/sbin/depmod -a
> > +
> > +%files
> > +%defattr(644,root,root,755)
> > +/etc/depmod.d/%{oname}.conf
> > +/lib/modules/
> > +%attr(755,root,root) /usr/share/%{oname}/scripts/ovs-kmod-manage.sh
> > +
> > +%clean
> > +rm -rf $RPM_BUILD_ROOT
> > diff --git a/rhel/openvswitch-kmod-rhel6.spec.in b/rhel/
> openvswitch-kmod-rhel6.spec.in
> > deleted file mode 100644
> > index daa3dade1..000000000
> > --- a/rhel/openvswitch-kmod-rhel6.spec.in
> > +++ /dev/null
> > @@ -1,103 +0,0 @@
> > -# Spec file for Open vSwitch kernel modules on Red Hat Enterprise
> > -# Linux 6.
> > -
> > -# Copyright (C) 2011, 2012 Nicira, Inc.
> > -#
> > -# Copying and distribution of this file, with or without modification,
> > -# are permitted in any medium without royalty provided the copyright
> > -# notice and this notice are preserved.  This file is offered as-is,
> > -# without warranty of any kind.
> > -
> > -%define oname openvswitch
> > -
> > -Name:           %{oname}-kmod
> > -Version:        @VERSION@
> > -Release:        1%{?dist}
> > -Summary:        Open vSwitch kernel module
> > -
> > -Group:          System/Kernel
> > -License:        GPLv2
> > -URL:            http://openvswitch.org/
> > -Source0:        %{oname}-%{version}.tar.gz
> > -Source1:        %{oname}-kmod.files
> > -BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}
> -%{release}-XXXXXX)
> > -BuildRequires:  %kernel_module_package_buildreqs
> > -
> > -# Without this we get an empty openvswitch-debuginfo package (whose name
> > -# conflicts with the openvswitch-debuginfo package for OVS userspace).
> > -%undefine _enable_debug_packages
> > -
> > -# Use -D 'kversion 2.6.32-131.6.1.el6.x86_64' to build package
> > -# for specified kernel version.
> > -%{?kversion:%define kernel_version %kversion}
> > -
> > -# Use -D 'kflavors default debug kdump' to build packages for
> > -# specified kernel variants.
> > -%{!?kflavors:%define kflavors default}
> > -
> > -%kernel_module_package -n %{oname} -f %{SOURCE1} %kflavors
> > -
> > -%description
> > -Open vSwitch Linux kernel module.
> > -
> > -%prep
> > -
> > -%setup -n %{oname}-%{version}
> > -
> > -%build
> > -for flavor in %flavors_to_build; do
> > -        mkdir _$flavor
> > -        (cd _$flavor && ../configure --with-linux="%{kernel_source
> $flavor}")
> > -        %{__make} -C _$flavor/datapath/linux %{?_smp_mflags}
> > -done
> > -
> > -%install
> > -export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
> > -export INSTALL_MOD_DIR=extra/%{oname}
> > -for flavor in %flavors_to_build ; do
> > -         make -C %{kernel_source $flavor} modules_install \
> > -                 M="`pwd`"/_$flavor/datapath/linux
> > -
> > -         # Cleanup unnecessary kernel-generated module dependency files.
> > -         find $INSTALL_MOD_PATH/lib/modules -iname 'modules.*' -exec rm
> {} \;
> > -done
> > -install -d %{buildroot}%{_sysconfdir}/depmod.d/
> > -for module in %{buildroot}/lib/modules/%{kernel_version}/$INSTALL_MOD_
> DIR/*.ko;
> > -do
> > -    modname="$(basename ${module})"
> > -    echo "override ${modname%.ko} * extra/%{oname}" >> %{oname}.conf
> > -    echo "override ${modname%.ko} * weak-updates/%{oname}" >>
> %{oname}.conf
> > -done
> > -install -m 644 %{oname}.conf %{buildroot}%{_sysconfdir}/depmod.d/
> > -
> > -%post
> > -# Ensure that modprobe will find our modules.
> > -for k in $(cd /lib/modules && /bin/ls); do
> > -    [ -d "/lib/modules/$k/kernel/" ] && depmod -a "$k"
> > -done
> > -if [ -x "/sbin/weak-modules" ]; then
> > -    for m in openvswitch vport-gre vport-stt vport-geneve \
> > -             vport-lisp vport-vxlan; do
> > -        echo "/lib/modules/%{kernel}/extra/$m.ko"
> > -    done | /sbin/weak-modules --add-modules
> > -fi
> > -
> > -%postun
> > -for k in $(cd /lib/modules && /bin/ls); do
> > -    [ -d "/lib/modules/$k/kernel/" ] && depmod -a "$k"
> > -done
> > -if [ "$1" = 0 ]; then  # Erase, not upgrade
> > -    if [ -x "/sbin/weak-modules" ]; then
> > -        for m in openvswitch vport-gre vport-stt vport-geneve \
> > -                 vport-lisp vport-vxlan; do
> > -        echo "/lib/modules/%{kernel}/extra/$m.ko"
> > -    done | /sbin/weak-modules --remove-modules
> > -    fi
> > -fi
> > -
> > -%files
> > -%defattr(644,root,root)
> > -/etc/depmod.d/%{oname}.conf
> > -
> > -%clean
> > -rm -rf $RPM_BUILD_ROOT
> > diff --git a/rhel/openvswitch-kmod.files b/rhel/openvswitch-kmod.files
> > deleted file mode 100644
> > index 357c2e8b7..000000000
> > --- a/rhel/openvswitch-kmod.files
> > +++ /dev/null
> > @@ -1,3 +0,0 @@
> > -%defattr(644,root,root,755)
> > -/lib/modules/%2-%1
> > -/etc/depmod.d/openvswitch.conf
> > diff --git a/rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh
> b/rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh
> > new file mode 100644
> > index 000000000..e89ad86dd
> > --- /dev/null
> > +++ b/rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh
> > @@ -0,0 +1,71 @@
> > +#!/bin/sh
> > +
> > +# Copyright (c) 2018 Nicira/VMware, Inc.
> > +#
> > +# Licensed under the Apache License, Version 2.0 (the "License");
> > +# you may not use this file except in compliance with the License.
> > +# You may obtain a copy of the License at:
> > +#
> > +#     http://www.apache.org/licenses/LICENSE-2.0
> > +#
> > +# Unless required by applicable law or agreed to in writing, software
> > +# distributed under the License is distributed on an "AS IS" BASIS,
> > +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> > +# See the License for the specific language governing permissions and
> > +# limitations under the License.
> > +
> > +script_name=$(basename -- "$0")
> > +current_kernel=$(uname -r)
> > +echo current kernel is $current_kernel
> > +
> > +IFS=. read installed_major installed_minor installed_micro
> installed_arch installed_build <<<"${current_kernel##*-}"
> > +# echo installed_major=$installed_major installed_minor=$installed_minor
> installed_micro=$installed_micro installed_arch=$installed_arch
> installed_build=$installed_build
> > +
> > +expected_base_minor="el7"
> > +expected_minor=11
> > +
> > +found_match=false
> > +for kname in `ls -d /lib/modules/*`
> > +do
> > +    IFS=. read major minor micro arch build <<<"${kname##*-}"
> > +#   echo major=$major minor=$minor micro=$micro arch=$arch build=$build
> > +    if [ "$installed_minor" = "$expected_base_minor" ] ||
> > +       [ "$installed_minor" -le "$expected_minor" ]; then
> > +        if [ "$minor" = "1" ]; then
> > +            requested_kernel=$kname
> > +            found_match="true"
> > +            echo "Installing Openvswitch KMOD from kernel $kname"
> > +            break
> > +        fi
> > +    else
> > +        if [ "$minor" = "17" ]; then
> > +            requested_kernel=$kname
> > +            found_match="true"
> > +            echo "Installing Openvswitch KMOD from kernel $kname"
> > +            break
> > +        fi
> > +    fi
> > +done
> > +
> > +if [ "$found_match" = "false" ]; then
> > +    echo $script_name: Failed
> > +    exit 1
> > +fi
> > +
> > +if [ "$requested_kernel" != "/lib/modules/$current_kernel" ]; then
> > +    if [ -x "/sbin/weak-modules" ]; then
> > +        if [ ! -d /lib/modules/$current_kernel/weak-updates/openvswitch
> ]; then
> > +            mkdir -p /lib/modules/$current_kernel/weak-updates
> > +            mkdir -p /lib/modules/$current_kernel/
> weak-updates/openvswitch
> > +        fi
> > +        for m in openvswitch vport-gre vport-stt vport-geneve \
> > +            vport-lisp vport-vxlan; do
> > +            ln -f -s $requested_kernel/extra/openvswitch/$m.ko \
> > +                /lib/modules/$current_kernel/
> weak-updates/openvswitch/$m.ko
> > +        done
> > +    fi
> > +else
> > +    echo Proper OVS kernel modules already configured
> > +fi
> > +# Always run depmod
> > +/sbin/depmod -a
> > --
> > 2.15.2 (Apple Git-101.1)
> >
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
> --
> Flavio
>
>


More information about the dev mailing list