Unnamed repository
Go to file
Coiby Xu bf947239de Support setting up Open vSwitch (Ovs) Bridge network
Resolves: https://issues.redhat.com/browse/RHEL-33465
Conflict: C9S misses the following two commits,
          - 1397006 ("dracut-module-setup: Remove remove_cpu_online_rule() since PowerPC uses nr_cpus")
          - 73c9eb7 ("dracut-module-setup: remove old s390 network device config (#1937048)")

Upstream Status: git@github.com:rhkdump/kdump-utils.git

commit 224d3102c54749eae98bfa1af8932aade8e4d2da
Author: Coiby Xu <coxu@redhat.com>
Date:   Mon Apr 22 15:02:42 2024 +0800

    Support setting up Open vSwitch (Ovs) Bridge network

    Resolves: https://issues.redhat.com/browse/RHEL-33465

    This patch supports setting up an Ovs bridge in kdump initrd. An Ovs
    bridge is similar to a classic Linux bridge but we use ovs-vsctl to find
    out the Ethernet device (having the MAC address as the bridge) added to
    an Ovs bridge. Once we copy all the needed NetworkManager (NM) connection
    profiles to kdump initrd and all the necessary files, NM will create an Ovs bridge
    automatically in kdump initrd.

    In the case of OpenShift Container Platform (OCP),
    ovs-configuration.service [1] is responsible for setting up an Ovs bridge.
    In theory, we can also try to bring up the original physical network
    interface before ovs-configuration.service. But this approach is
    cumbersome because it breaks our assumption that we should bring up the
    same network in kdump intrd as in 1st kernel (establishing the same network
    in kdump initrd only needs to copy the needed NM connection profiles
    thus we don't need to learn how different network setup work under the
    hood).

    How to test this patch with the help of configure-ovs.sh?
    =========================================================

    1. Extract configure-ovs.sh from [2]

    2. Install necessary packages for configure-ovs.sh
        dnf install openvswitch -yq
        dnf install NetworkManager-ovs nmap-ncat -yq

        systemctl enable --now openvswitch

        # restart NM so the ovs plugin can be activated
        systemctl restart NetworkManager

    3. Assume the network interface used for creating an Ovs bridge is
       "ens2", use configure-ovs.sh to create an Ovs bridge,

        interface=ens2
        mkdir -p /etc/ovnk
        echo $interface > /etc/ovnk/iface_default_hint
        bash configure-ovs.sh OVNKubernetes

    4. (Optional) If you want to make the created Ovs bridge survive a
       reboot, simply make the created NM connections created by
       configure-ovs.sh persist,

        cp /run/NetworkManager/system-connections/ovs-* /etc/NetworkManager/system-connections/

    If you need to create an Ovs bridge on top of a bonding network, use the
    following commands for step 3,

        nmcli con add type bond ifname bond0
        nmcli con add type ethernet ifname eth0 master bond0
        nmcli con add type ethernet ifname eth1 master bond0

        echo bond0 > /etc/ovnk/iface_default_hint
        bash configure-ovs.sh OVNKubernetes

    Note
    1. For RHEL, openvswitch3.3 may be installed so we need to get the
       package name by "rpm -qf /usr/lib/systemd/system/openvswitch.service"

    2. For RHEL9, openvswitch package needs to installed from another repo,
        cat << 'EOF' > /etc/yum.repos.d/ovs.repo
        [rhosp-rhel-9-fdp-cdn]
        name=Red Hat Enterprise Linux Fast Datapath $releasever - $basearch cdn
        baseurl=http://rhsm-pulp.corp.redhat.com/content/dist/layered/rhel9/$basearch/fast-datapath/os/
        enabled=1
        gpgcheck=0
        EOF

        dnf install openvswitch3.3 -yq

    3.  We instruct ovsdb-server to ignore NM connection files changes by
        "--ovsdb-server-options='--disable-file-column-diff'". In the
        future, this may not be needed if we simply copy all active NM
        connection profiles to kdump initrd without changing them after
        coming up with different solutions for the following cases,
        1. Some environments like some Azure machine doesn't use persistent
           NIC name. Current solution is to modify a NM connection
           profile to match a device by MAC address, for details check
           commit 568623e)

        2. If a NIC has an IPv4 or IPv6 address, set the corresponding
           may-fail property to no. Otherwise, dumping vmcore over IPv6
           could fail because only IPv4 network is ready or vice versa. Current
           solution is to disable IPv6 if only IPv4 is used and vice versa,
           for details check commit 9dfcacf,

        3. Some NICs need longer connection.wait-device-timeout otherwise
           the connection will fail to be established (commit 6b586a9).

    [1] https://github.com/openshift/machine-config-operator/blob/master/templates/common/_base/units/ovs-configuration.service.yaml
    [2] https://github.com/openshift/machine-config-operator/blob/master/templates/common/_base/files/configure-ovs-network.yaml

    Signed-off-by: Coiby Xu <coxu@redhat.com>

Signed-off-by: Coiby Xu <coxu@redhat.com>
2024-07-29 17:25:44 +08:00
tests Merged update from upstream sources 2020-11-20 12:35:49 +00:00
.editorconfig kdump-lib-initramfs.sh: prepare to be a POSIX compatible lib 2021-11-09 21:45:15 +08:00
.gitignore RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
60-fadump.install fadump: add a kernel install hook to clean up fadump initramfs 2022-12-22 14:36:23 +08:00
60-kdump.install Write to /var/lib/kdump if $KDUMP_BOOTDIR not writable 2021-06-23 09:34:40 +08:00
92-crashkernel.install Prefix reset-crashkernel-{for-installed_kernel,after-update} with underscore 2022-10-27 14:47:57 +08:00
98-kexec.rules RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
98-kexec.rules.ppc64 powerpc: update fadump sysfs node path 2023-09-21 15:06:07 +08:00
crashkernel-howto.txt remind the users to run zipl after calling grubby on s390x 2022-09-19 09:10:54 +08:00
dracut-early-kdump-module-setup.sh dracut-early-kdump-module-setup.sh: install xargs and kdump-lib-initramfs.sh 2022-01-06 14:31:33 +08:00
dracut-early-kdump.sh powerpc: update kdumpctl to load kernel signing key for fadump 2023-11-08 01:36:58 +00:00
dracut-fadump-init-fadump.sh fadump-init: clean up mount points properly 2021-07-20 15:43:43 +08:00
dracut-fadump-module-setup.sh fadump: isolate fadump initramfs image within the default one 2021-07-20 15:43:11 +08:00
dracut-kdump-capture.service RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
dracut-kdump-emergency.service Merge kdump-error-handler.sh into kdump.sh 2021-11-09 21:45:31 +08:00
dracut-kdump-emergency.target RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
dracut-kdump.sh Show how much time kdump has waited for the network to be ready 2023-04-18 15:26:17 +08:00
dracut-module-setup.sh Support setting up Open vSwitch (Ovs) Bridge network 2024-07-29 17:25:44 +08:00
dracut-monitor_dd_progress RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
early-kdump-howto.txt RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
fadump-howto.txt powerpc: update fadump sysfs node path 2023-09-21 15:06:07 +08:00
gating.yaml Add gating.yaml to RHEL-9 kexec-tools 2021-06-08 20:03:41 +08:00
gen-kdump-conf.sh kdump.conf: use a simple generator script to maintain 2022-12-01 11:01:17 +08:00
kdump-dep-generator.sh Merged update from upstream sources 2021-01-22 08:12:00 +00:00
kdump-in-cluster-environment.txt RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
kdump-lib-initramfs.sh lib: Ensure we don't find bind mounts for device target 2024-07-24 15:44:05 +12:00
kdump-lib.sh lib: Ensure we don't find bind mounts for device target 2024-07-24 15:44:05 +12:00
kdump-logger.sh Add header comment for POSIX compliant scripts 2021-11-10 10:26:54 +08:00
kdump-migrate-action.sh kdump/ppc64: rebuild initramfs image after migration 2021-12-03 18:13:09 +08:00
kdump-restart.sh kdump/ppc64: rebuild initramfs image after migration 2021-12-03 18:13:09 +08:00
kdump-udev-throttler RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
kdump.conf.5 Explain the auto_reset_crashkernel option in more details 2024-01-02 10:11:33 +00:00
kdump.service kdumpctl: Move temp file in get_kernel_size to global temp dir 2023-05-31 15:10:30 +08:00
kdump.sysconfig ppc64le: replace kernel cmdline maxcpu=1 with nr_cpus=1 2024-06-25 15:43:20 +08:00
kdump.sysconfig.aarch64 kdump.sysconfig*: add ignition.firstboot to KDUMP_COMMANDLINE_REMOVE 2022-05-27 10:08:59 +08:00
kdump.sysconfig.i386 kdump.sysconfig*: add ignition.firstboot to KDUMP_COMMANDLINE_REMOVE 2022-05-27 10:08:59 +08:00
kdump.sysconfig.ppc64 ppc64le: replace kernel cmdline maxcpu=1 with nr_cpus=1 2024-06-25 15:43:20 +08:00
kdump.sysconfig.ppc64le ppc64le: replace kernel cmdline maxcpu=1 with nr_cpus=1 2024-06-25 15:43:20 +08:00
kdump.sysconfig.s390x sysconfig: add zfcp.allow_lun_scan to KDUMP_COMMANDLINE_REMOVE on s390 2023-03-13 13:41:05 +01:00
kdump.sysconfig.x86_64 sysconfig: add pcie_ports compat to KDUMP_COMMANDLINE_APPEND on x86_64 2024-05-31 13:27:37 +08:00
kdumpctl kdumpctl: Fix misleading message and erratic reboot in reset_crashkernel 2024-07-11 12:17:39 +02:00
kdumpctl.8 kdumpctl.8: Add description to reset-crashkernel --reboot 2024-07-11 12:17:39 +02:00
kexec_file-add-kexec_file-flag-to-support-debug-prin.patch kexec_file: add kexec_file flag to support debug printing 2024-05-07 20:26:22 +08:00
kexec-kdump-howto.txt kdumpctl: Drop default kexec '-d' option 2024-07-11 11:34:26 +02:00
kexec-tools.spec Release 2.0.27-14 2024-07-24 15:45:45 +12:00
kexec-update-manpage-with-explicit-mention-of-clean-.patch kexec: update manpage with explicit mention of clean kexec 2023-10-31 13:21:58 +08:00
live-image-kdump-howto.txt RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
makedumpfile-1.7.2-0001-Mark-start-of-1.7.3-development-phase-with-ver.patch Rebase makedumpfile to upstream latest(8e8b8814be1) 2023-04-21 16:03:34 +08:00
makedumpfile-1.7.2-0002-Makefile-Remove-version-from-usr-share-makedum.patch Rebase makedumpfile to upstream latest(8e8b8814be1) 2023-04-21 16:03:34 +08:00
makedumpfile-1.7.2-0003-IMPLEMENTAION-Add-a-description-of-the-flatten.patch Rebase makedumpfile to upstream latest(8e8b8814be1) 2023-04-21 16:03:34 +08:00
makedumpfile-1.7.2-0004-Fix-wrong-exclusion-of-slab-pages-on-Linux-6.2.patch Rebase makedumpfile to upstream latest(8e8b8814be1) 2023-04-21 16:03:34 +08:00
makedumpfile-1.7.2-0005-sadump-fix-failure-of-reading-memory-when-5-le.patch Rebase makedumpfile to upstream latest(8e8b8814be1) 2023-04-21 16:03:34 +08:00
makedumpfile-1.7.2-0006-1-2-eppic-Fix-incompatible-pointer-type-warnin.patch Rebase makedumpfile to upstream latest(8e8b8814be1) 2023-04-21 16:03:34 +08:00
makedumpfile-1.7.2-0007-2-2-eppic-Fix-a-warning-about-redefining-ERRMS.patch Rebase makedumpfile to upstream latest(8e8b8814be1) 2023-04-21 16:03:34 +08:00
mkdumprd mkdumprd: Fix makedumpfile parameter check. 2024-05-14 07:16:53 +00:00
mkdumprd.8 Merged update from upstream sources 2020-12-23 10:00:07 +00:00
mkfadumprd fadump: use 'zstd' as the default compression method 2022-12-22 14:36:23 +08:00
README RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
sources Release 2.0.27-3 2023-11-08 10:10:37 +08:00
supported-kdump-targets.txt Add lvm thin provision to kdump supported-kdump-targets.txt 2023-06-02 11:15:37 +08:00
zanata-notes.txt RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00

Adding a patch to kexec-tools
=============================
There is a mailing list kexec@lists.fedoraproject.org where all the dicussion
related to fedora kexec-tools happen. All the patches are posted there for
inclusion and committed to kexec-tools after review.

So if you want your patches to be included in fedora kexec-tools package,
post these to kexec@lists.fedoraproject.org.

One can subscribe to list and browse through archives here.

https://admin.fedoraproject.org/mailman/listinfo/kexec