--- /dev/null
+commit 83014f96551132c825ff52d94330e366148f20cb
+Author: Arkadiusz Miśkiewicz <arekm@maven.pl>
+Date: Mon Mar 4 10:19:27 2019 +0100
+
+ Create bond master interface if it doesn't exist when slave interface is being ifuped.
+
+diff --git a/lib/ifup b/lib/ifup
+index dee4e58..38780bf 100755
+--- a/lib/ifup
++++ b/lib/ifup
+@@ -125,6 +125,9 @@ if [ -n "$ETHTOOL_OPTS" ] ; then
+ fi
+
+ if is_yes "$SLAVE" && [ -n "$MASTER" ] ; then
++ # create master if it doesn't exist yet
++ [ ! -d "/sys/class/net/${MASTER}" ] && ip link add "${MASTER}" type bond
++
+ nls "Enslaving %s to %s" "$DEVICE" "$MASTER"
+ ip link set "$DEVICE" master "$MASTER"
+ ip link set "$DEVICE" up
+commit d67c5d59733955d1e6def78a6fc6f5917e214247
+Author: Arkadiusz Miśkiewicz <arekm@maven.pl>
+Date: Mon Mar 4 10:32:13 2019 +0100
+
+ Create bondX interfaces when ifcfg-bondX is called with ifup and interface doesn't exist, yet.
+
+diff --git a/lib/Makefile.am b/lib/Makefile.am
+index 4b19bc7..e90f21e 100644
+--- a/lib/Makefile.am
++++ b/lib/Makefile.am
+@@ -16,6 +16,7 @@ scripts_SCRIPTS = \
+ ifdown-sl \
+ ifdown-vlan \
+ ifup-aliases \
++ ifup-bond \
+ ifup-br \
+ ifup-ipx \
+ ifup-irda \
+diff --git a/lib/functions.network b/lib/functions.network
+index d151b04..86bc978 100644
+--- a/lib/functions.network
++++ b/lib/functions.network
+@@ -226,7 +226,7 @@ setup_ip_param ()
+
+ # set handling for bridge
+ case "$DEVICETYPE" in
+- br|atm|lec|irda|vlan)
++ bond|br|atm|lec|irda|vlan)
+ HANDLING=1
+ ;;
+ esac
+diff --git a/lib/ifup-bond b/lib/ifup-bond
+new file mode 100755
+index 0000000..b0bc0c9
+--- /dev/null
++++ b/lib/ifup-bond
+@@ -0,0 +1,42 @@
++#!/bin/sh
++#
++# ifup-bond - Bonding configuration script
++# Copyright (C) 2019 Arkadiusz Miśkiewicz <misiek@pld-linux.org>
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++#
++#
++PATH=/sbin:/usr/sbin:/bin:/usr/bin
++
++cd /lib/rc-scripts
++. /etc/sysconfig/network
++. /etc/rc.d/init.d/functions
++. /lib/rc-scripts/functions.network
++
++CONFIG=$1
++source_config
++
++if [ "foo$2" = "fooboot" ] && is_no "${ONBOOT}"; then
++ exit
++fi
++
++. /etc/sysconfig/network
++
++# set all major variables
++setup_ip_param
++
++if [ ! -d "/sys/class/net/${DEVICE}" ]; then
++ ip link add "${DEVICE}" type bond
++fi