diff options
Diffstat (limited to 'rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh')
-rw-r--r-- | rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh | 237 |
1 files changed, 0 insertions, 237 deletions
diff --git a/rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh b/rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh deleted file mode 100644 index 2dda3865a..000000000 --- a/rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh +++ /dev/null @@ -1,237 +0,0 @@ -#!/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. - -# This script is intended to be used on the following kernels. -# - 3.10.0 major revision 327 (RHEL 7.2) -# - 3.10.0 major revision 693 (RHEL 7.4) -# - 3.10.0 major revision 957 (RHEL 7.6) -# - 3.10.0 major revision 1062 (RHEL 7.7) -# - 3.10.0 major revision 1101 (RHEL 7.8 Beta) -# - 3.10.0 major revision 1127 (RHEL 7.8 GA) -# - 3.10.0 major revision 1160 (RHEL 7.9) -# - 4.4.x, x >= 73 (SLES 12 SP3) -# - 4.12.x, x >= 14 (SLES 12 SP4). -# - 4.18.x major revision 305 (RHEL 8.4) -# It is packaged in the openvswitch kmod RPM and run in the post-install -# scripts. -# -# For kernel 3.10.0-957, -# due to some backward incompatible changes introduced in minor revision 12.1, -# kernel modules built against kernels newer than 12.1 cannot be loaded on -# system running kernels older than 12.1, vice versa. -# -# For kernel 3.10.0-693, -# due to some backward incompatible changes introduced in minor revision 17.1, -# kernel modules built against kernels newer than 17.1 cannot be loaded on -# system running kernels older than 17.1, vice versa. -# -# For kernel 3.10.0-327, -# due to some backward incompatible changes introduced in minor revision 41.3, -# kernel modules built against kernels newer than 41.3 cannot be loaded on -# system running kernels older than 41.3, vice versa. -# -# For kernel >= 4.4.73, -# kernel modules built with 4.4.73 can run on systems with kernel versions from -# 4.4.73 to 4.4.114; modules built against 4.4.120 can run on systems from -# 4.4.120 onwards. -# -# For kernel 4.12.x, x>=14, -# kernel modules built with the oldest compatible kernel 4.12.14-94.41.1 can -# run on all versions onwards. -# -# This script checks the current running kernel version, and update symlinks -# for the openvswitch kernel modules in the appropriate kernel directory, -# provided the kmod RPM has installed kernel modules files built from both -# minor revisions. -# -# In case of a kernel minor revision change after the openvswitch kmod package -# is installed, this script shall be run manually after system reboots and -# switches to a different kernel -if [ -n "$(rpm -qa kmod-openvswitch)" ]; then - rpmname="kmod-openvswitch" -elif [ -n "$(rpm -qa openvswitch-kmod)" ]; then - rpmname="openvswitch-kmod" -else - echo "openvswitch kmod package not installed, existing" - exit 1 -fi -#echo $rpmname -script_name=$(basename -- "$0") -current_kernel=$(uname -r) -echo current kernel is $current_kernel - -IFS='.\|-' read mainline_major mainline_minor mainline_patch major_rev \ - minor_rev _extra <<<"${current_kernel}" -# echo mainline_major=$mainline_major mainline_minor=$mainline_minor \ -# mainline_patch=$mainline_patch major_rev=$major_rev minor_rev=$minor_rev - -expected_rhel_base_minor="el7" -if [ "$mainline_major" = "3" ] && [ "$mainline_minor" = "10" ]; then - if [ "$major_rev" = "327" ]; then -# echo "rhel72" - comp_ver=36 - ver_offset=4 - installed_ver="$minor_rev" - elif [ "$major_rev" = "514" ]; then -# echo "rhel73" - comp_ver=26 - ver_offset=4 - installed_ver="$minor_rev" - elif [ "$major_rev" = "693" ]; then -# echo "rhel74" - comp_ver=11 - ver_offset=4 - installed_ver="$minor_rev" - elif [ "$major_rev" = "862" ]; then -# echo "rhel75" - comp_ver=20 - ver_offset=4 - installed_ver="$minor_rev" - elif [ "$major_rev" = "957" ]; then -# echo "rhel76" - comp_ver=10 - ver_offset=4 - installed_ver="$minor_rev" - elif [ "$major_rev" = "1062" ]; then -# echo "rhel77" - comp_ver=10 - ver_offset=4 - installed_ver="$minor_rev" - elif [ "$major_rev" = "1101" ]; then -# echo "rhel78" - comp_ver=10 - ver_offset=4 - installed_ver="$minor_rev" - elif [ "$major_rev" = "1127" ]; then -# echo "rhel78" - comp_ver=10 - ver_offset=4 - installed_ver="$minor_rev" - elif [ "$major_rev" = "1160" ]; then -# echo "rhel79" - comp_ver=10 - ver_offset=4 - installed_ver="$minor_rev" - fi -elif [ "$mainline_major" = "4" ] && [ "$mainline_minor" = "4" ]; then - if [ "$mainline_patch" -ge "73" ]; then -# echo "sles12sp3" - comp_ver=114 - ver_offset=2 - installed_ver="$mainline_patch" - fi -elif [ "$mainline_major" = "4" ] && [ "$mainline_minor" = "12" ]; then - if [ "$mainline_patch" -ge "14" ]; then -# echo "sles12sp4" - comp_ver=1 - ver_offset=2 - installed_ver="$mainline_patch" - fi -elif [ "$mainline_major" = "4" ] && [ "$mainline_minor" = "18" ]; then - if [ "$major_rev" = "305" ]; then - echo "rhel84" - comp_ver=9 - ver_offset=4 - installed_ver="$minor_rev" - fi -fi - -if [ X"$ver_offset" = X ]; then -# echo "This script is not intended to run on kernel $(uname -r)" - exit 0 -fi - -#IFS='.\|-' read -r -a version_nums <<<"${current_kernel}" -#echo ver_offset=$ver_offset -#echo installed_ver="$installed_ver" -#echo installed_ver="${version_nums[$ver_offset]}" - -kmod_versions=() -kversion=$(rpm -ql ${rpmname} | grep '\.ko$' | \ - sed -n -e 's/^\/lib\/modules\/\(.*\)\/extra\/.*$/\1/p' | \ - sort | uniq) - -IFS='.\|-' read installed_major installed_minor installed_patch \ - installed_major_rev installed_minor_rev installed_extra <<<"${kversion}" - -if [ "$installed_major_rev" -lt "$major_rev" ]; then - echo "Not installing RPM with major revision $installed_major_rev" \ - "to kernel with greater major revision $major_rev. Exiting" - exit 1 -fi - -for kv in $kversion; do - IFS='.\|-' read -r -a kv_nums <<<"${kv}" - kmod_versions+=(${kv_nums[$ver_offset]}) -done -sorted_kmod_vers=$(printf "%s\n" "${kmod_versions[@]}" | \ - sort -n) -#echo "$sorted_kmod_vers" - -if [ ! -n "$sorted_kmod_vers" ]; then - echo "No kernel modules found from package $rpmname, exiting" - exit 1 -else - # first line for kmod_low_ver, last for kmod_high_ver - kmod_low_ver=$(echo "$sorted_kmod_vers" | head -1) - kmod_high_ver=$(echo "$sorted_kmod_vers" | tail -1) -fi -#echo "Installing KMOD with minor revisions $kmod_low_ver and \ -#$kmod_high_ver" - -found_match=false -for kname in $kversion; -do - IFS='.\|-' read -r -a pkg_ver_nums <<<"${kname}" - pkg_ver=${pkg_ver_nums[$ver_offset]} - if [ "$installed_ver" = "$expected_rhel_base_minor" ] || - [ "$installed_ver" -le "$comp_ver" ]; then - if [ "$pkg_ver" = "$kmod_low_ver" ]; then - requested_kernel=$kname - found_match="true" - echo "Installing Openvswitch KMOD from kernel $kname" - break - fi - else - if [ "$pkg_ver" = "$kmod_high_ver" ]; 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" != "$current_kernel" ]; 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 /lib/modules/$requested_kernel/extra/openvswitch/$m.ko \ - /lib/modules/$current_kernel/weak-updates/openvswitch/$m.ko - done -else - echo Proper OVS kernel modules already configured -fi -# Always run depmod -/sbin/depmod -a |