[pve-devel] applied: [PATCH openvswitch 1/1] ifupdown.sh : add ifupdown2 workaround
Wolfgang Bumiller
w.bumiller at proxmox.com
Fri Jun 15 10:08:31 CEST 2018
applied
On Wed, May 16, 2018 at 12:01:50PM +0200, Alexandre Derumier wrote:
> with ifupdown2, we can't call ifup for each ovs_ports in OvsBridge.
> But as we define also ovs_bridge for each interface, we can simply add
> the bridge here, to be sure that it's exist before adding the interface.
>
> for config, we simply need to replace allow-..., with auto.
> I have keeped ovs_ports to avoid config change, but it's not used.
>
> old config
> ----------
> auto vmbr100
> iface vmbr100 inet manual
> ovs_type OVSBridge
> ovs_ports bond0 ovsinternalport
>
> allow-vmbr100 ovsinternalport
> iface ovsinternalport inet static
> address 172.16.0.10
> netmask 255.255.255.0
> ovs_type OVSIntPort
> ovs_bridge vmbr100
> ovs_options tag=30
>
> allow-vmbr100 bond0
> iface bond0 inet manual
> ovs_bonds eno3 eno4
> ovs_type OVSBond
> ovs_bridge vmbr100
> ovs_options bond_mode=balance-slb lacp=active
>
> new config
> ----------
> auto vmbr100
> iface vmbr100 inet manual
> ovs_type OVSBridge
> ovs_ports bond0 ovsinternalport
>
> auto ovsinternalport
> iface ovsinternalport inet static
> address 172.16.0.10
> netmask 255.255.255.0
> ovs_type OVSIntPort
> ovs_bridge vmbr100
> ovs_options tag=30
>
> auto bond0
> iface bond0 inet manual
> ovs_bonds eno3 eno4
> ovs_type OVSBond
> ovs_bridge vmbr100
> ovs_options bond_mode=balance-slb lacp=active
> ---
> .../ifupdown.sh-add-ifupdown2-workaround.patch | 154 +++++++++++++++++++++
> pvepatches/series | 1 +
> 2 files changed, 155 insertions(+)
> create mode 100644 pvepatches/ifupdown.sh-add-ifupdown2-workaround.patch
>
> diff --git a/pvepatches/ifupdown.sh-add-ifupdown2-workaround.patch b/pvepatches/ifupdown.sh-add-ifupdown2-workaround.patch
> new file mode 100644
> index 0000000..009bf33
> --- /dev/null
> +++ b/pvepatches/ifupdown.sh-add-ifupdown2-workaround.patch
> @@ -0,0 +1,154 @@
> +From 8eef7f26c0489a582f8d8dd8fe8da8e573454d42 Mon Sep 17 00:00:00 2001
> +From: root <root at kvmformation1.odiso.net>
> +Date: Wed, 16 May 2018 10:22:22 +0200
> +Subject: [PATCH] ifupdown.sh : add ifupdown2 workaround
> +
> +with ifupdown2, we can't call ifup for each ovs_ports in OvsBridge.
> +But as we define also ovs_bridge for each interface, we can simply add
> +the bridge here, to be sure that it's exist before adding the interface.
> +
> +for config, we simply need to replace allow-..., with auto.
> +I have keeped ovs_ports to avoid config change, but it's not used.
> +
> +old config
> +----------
> +auto vmbr100
> +iface vmbr100 inet manual
> + ovs_type OVSBridge
> + ovs_ports bond0 ovsinternalport
> +
> +allow-vmbr100 ovsinternalport
> +iface ovsinternalport inet static
> + address 172.16.0.10
> + netmask 255.255.255.0
> + ovs_type OVSIntPort
> + ovs_bridge vmbr100
> + ovs_options tag=30
> +
> +allow-vmbr100 bond0
> +iface bond0 inet manual
> + ovs_bonds eno3 eno4
> + ovs_type OVSBond
> + ovs_bridge vmbr100
> + ovs_options bond_mode=balance-slb lacp=active
> +
> +new config
> +----------
> +auto vmbr100
> +iface vmbr100 inet manual
> + ovs_type OVSBridge
> + ovs_ports bond0 ovsinternalport
> +
> +auto ovsinternalport
> +iface ovsinternalport inet static
> + address 172.16.0.10
> + netmask 255.255.255.0
> + ovs_type OVSIntPort
> + ovs_bridge vmbr100
> + ovs_options tag=30
> +
> +auto bond0
> +iface bond0 inet manual
> + ovs_bonds eno3 eno4
> + ovs_type OVSBond
> + ovs_bridge vmbr100
> + ovs_options bond_mode=balance-slb lacp=active
> +---
> + debian/ifupdown.sh | 44 ++++++++++++++++++++++++++++++++++++++++----
> + 1 file changed, 40 insertions(+), 4 deletions(-)
> +
> +diff --git a/debian/ifupdown.sh b/debian/ifupdown.sh
> +index e21215a..098d913 100755
> +--- a/debian/ifupdown.sh
> ++++ b/debian/ifupdown.sh
> +@@ -44,11 +44,20 @@ if [ "${MODE}" = "start" ]; then
> + ovs_vsctl -- --may-exist add-br "${IFACE}" ${IF_OVS_OPTIONS}\
> + ${OVS_EXTRA+-- $OVS_EXTRA}
> +
> +- if [ ! -z "${IF_OVS_PORTS}" ]; then
> +- ifup --allow="${IFACE}" ${IF_OVS_PORTS}
> ++ if [ ! -f /usr/share/ifupdown2/ifupdown2 ]; then
> ++ if [ ! -z "${IF_OVS_PORTS}" ]; then
> ++ ifup --allow="${IFACE}" ${IF_OVS_PORTS}
> ++ fi
> + fi
> ++
> + ;;
> + OVSPort)
> ++
> ++ if [ -f /usr/share/ifupdown2/ifupdown2 ]; then
> ++ ovs_vsctl -- --may-exist add-br "${IF_OVS_BRIDGE}"
> ++ ip link set "${IF_OVS_BRIDGE}" up
> ++ fi
> ++
> + ovs_vsctl -- --may-exist add-port "${IF_OVS_BRIDGE}"\
> + "${IFACE}" ${IF_OVS_OPTIONS} \
> + ${OVS_EXTRA+-- $OVS_EXTRA}
> +@@ -56,6 +65,12 @@ if [ "${MODE}" = "start" ]; then
> + ifconfig "${IFACE}" up
> + ;;
> + OVSIntPort)
> ++
> ++ if [ -f /usr/share/ifupdown2/ifupdown2 ]; then
> ++ ovs_vsctl -- --may-exist add-br "${IF_OVS_BRIDGE}"
> ++ ip link set "${IF_OVS_BRIDGE}" up
> ++ fi
> ++
> + ovs_vsctl -- --may-exist add-port "${IF_OVS_BRIDGE}"\
> + "${IFACE}" ${IF_OVS_OPTIONS} -- set Interface "${IFACE}"\
> + type=internal ${OVS_EXTRA+-- $OVS_EXTRA}
> +@@ -63,6 +78,12 @@ if [ "${MODE}" = "start" ]; then
> + ifconfig "${IFACE}" up
> + ;;
> + OVSBond)
> ++
> ++ if [ -f /usr/share/ifupdown2/ifupdown2 ]; then
> ++ ovs_vsctl -- --may-exist add-br "${IF_OVS_BRIDGE}"
> ++ ip link set "${IF_OVS_BRIDGE}" up
> ++ fi
> ++
> + ovs_vsctl -- --fake-iface add-bond "${IF_OVS_BRIDGE}"\
> + "${IFACE}" ${IF_OVS_BONDS} ${IF_OVS_OPTIONS} \
> + ${OVS_EXTRA+-- $OVS_EXTRA}
> +@@ -74,12 +95,24 @@ if [ "${MODE}" = "start" ]; then
> + done
> + ;;
> + OVSPatchPort)
> ++
> ++ if [ -f /usr/share/ifupdown2/ifupdown2 ]; then
> ++ ovs_vsctl -- --may-exist add-br "${IF_OVS_BRIDGE}"
> ++ ip link set "${IF_OVS_BRIDGE}" up
> ++ fi
> ++
> + ovs_vsctl -- --may-exist add-port "${IF_OVS_BRIDGE}"\
> + "${IFACE}" ${IF_OVS_OPTIONS} -- set Interface "${IFACE}" \
> + type=patch options:peer="${IF_OVS_PATCH_PEER}" \
> + ${OVS_EXTRA+-- $OVS_EXTRA}
> + ;;
> + OVSTunnel)
> ++
> ++ if [ -f /usr/share/ifupdown2/ifupdown2 ]; then
> ++ ovs_vsctl -- --may-exist add-br "${IF_OVS_BRIDGE}"
> ++ ip link set "${IF_OVS_BRIDGE}" up
> ++ fi
> ++
> + ovs_vsctl -- --may-exist add-port "${IF_OVS_BRIDGE}"\
> + "${IFACE}" ${IF_OVS_OPTIONS} -- set Interface "${IFACE}" \
> + type=${IF_OVS_TUNNEL_TYPE} ${IF_OVS_TUNNEL_OPTIONS} \
> +@@ -92,8 +125,11 @@ if [ "${MODE}" = "start" ]; then
> + elif [ "${MODE}" = "stop" ]; then
> + case "${IF_OVS_TYPE}" in
> + OVSBridge)
> +- if [ ! -z "${IF_OVS_PORTS}" ]; then
> +- ifdown --allow="${IFACE}" ${IF_OVS_PORTS}
> ++
> ++ if [ ! -f /usr/share/ifupdown2/ifupdown2 ]; then
> ++ if [ ! -z "${IF_OVS_PORTS}" ]; then
> ++ ifdown --allow="${IFACE}" ${IF_OVS_PORTS}
> ++ fi
> + fi
> +
> + ovs_vsctl -- --if-exists del-br "${IFACE}"
> +--
> +2.11.0
> +
> diff --git a/pvepatches/series b/pvepatches/series
> index 4de5839..0eb7d08 100644
> --- a/pvepatches/series
> +++ b/pvepatches/series
> @@ -4,3 +4,4 @@ delete-openvswitch-switch-init.patch
> use-systemctl-inside-ifupdown.patch
> remove-init-script-on-upgrades.patch
> add-net-tools-dependency.patch
> +ifupdown.sh-add-ifupdown2-workaround.patch
> --
> 2.11.0
More information about the pve-devel
mailing list