diff options
author | Jiri Pirko <jiri@resnulli.us> | 2014-03-31 10:35:49 +0200 |
---|---|---|
committer | Lukas Nykryn <lnykryn@redhat.com> | 2014-03-31 10:42:47 +0200 |
commit | 3235be4a3da91bc91c698b318935240dbdf81aac (patch) | |
tree | 099c68e5d1476e2fcc9dc6acc7532408e4e79349 | |
parent | a224b37bfe0edbc492a3e4851b9d4af589042e4f (diff) | |
download | initscripts-3235be4a3da91bc91c698b318935240dbdf81aac.tar initscripts-3235be4a3da91bc91c698b318935240dbdf81aac.tar.gz initscripts-3235be4a3da91bc91c698b318935240dbdf81aac.tar.bz2 initscripts-3235be4a3da91bc91c698b318935240dbdf81aac.tar.xz initscripts-3235be4a3da91bc91c698b318935240dbdf81aac.zip |
network: add support for team devices
Currently, team masters and slaves are supported via ifup-Team* and
ifdown-Team* scripts shipped in teamd package. It uses somehow ugly
workaround where user have to specify DEVIVETYPE to "Team" or
"TeamPort". This turned out to be non-optimal solution as this is
confusing users. Also it does not work when TYPE is set.
So fix this by adding the team support hooks directly into initscripts.
Now for team port, user needs only to set:
TEAM_MASTER="teamx"
and for team master, user needs only to set:
TEAM_CONFIG="...whatever..."
Signed-off-by: Jiri Pirko <jiri@resnulli.us>
-rwxr-xr-x | sysconfig/network-scripts/ifdown-eth | 8 | ||||
-rwxr-xr-x | sysconfig/network-scripts/ifup-eth | 12 |
2 files changed, 20 insertions, 0 deletions
diff --git a/sysconfig/network-scripts/ifdown-eth b/sysconfig/network-scripts/ifdown-eth index 99eb1a0a..cdf44f56 100755 --- a/sysconfig/network-scripts/ifdown-eth +++ b/sysconfig/network-scripts/ifdown-eth @@ -31,6 +31,10 @@ source_config # Check to make sure the device is actually up check_device_down ${DEVICE} && [ "$BOOTPROTO" != "dhcp" -a "$BOOTPROTO" != "bootp" ] && [ -n "$VLAN" -a "$VLAN" != "yes" ] && exit 0 +if [ -n "${TEAM_MASTER}" ] && [ ! "${DEVICETYPE}" = "TeamPort" ] && [ -x ./ifdown-TeamPort ]; then + ./ifdown-TeamPort ${CONFIG} $2 +fi + if [ "${SLAVE}" != "yes" -o -z "${MASTER}" ]; then if [ -n "${HWADDR}" -a -z "${MACADDR}" ]; then FOUNDMACADDR=$(get_hwaddr ${REALDEVICE}) @@ -140,6 +144,10 @@ if [ "${TYPE}" = "Tap" ]; then ip tuntap del ${TUNMODE} dev ${DEVICE} >/dev/null fi +if [ -n "${TEAM_CONFIG}" ] && [ ! "${DEVICETYPE}" = "Team" ] && [ -x ./ifdown-Team ]; then + ./ifdown-Team ${CONFIG} $2 +fi + # wait up to 5 seconds for device to actually come down... waited=0 while ! check_device_down ${DEVICE} && [ "$waited" -lt 50 ] ; do diff --git a/sysconfig/network-scripts/ifup-eth b/sysconfig/network-scripts/ifup-eth index 29537607..e4acb170 100755 --- a/sysconfig/network-scripts/ifup-eth +++ b/sysconfig/network-scripts/ifup-eth @@ -74,6 +74,11 @@ if [ "${TYPE}" = "Tap" ]; then ip tuntap add ${TUNMODE} ${OWNER} dev ${DEVICE} > /dev/null fi +# Team master initialization. +if [ -n "${TEAM_CONFIG}" ] && [ ! "${DEVICETYPE}" = "Team" ] && [ -x ./ifup-Team ]; then + ./ifup-Team ${CONFIG} $2 +fi + # now check the real state is_available ${REALDEVICE} || { if [ -n "$alias" ]; then @@ -98,6 +103,13 @@ fi # is the device wireless? If so, configure wireless device specifics is_wireless_device ${DEVICE} && . ./ifup-wireless +# Team slave device? +if [ -n "${TEAM_MASTER}" ] && [ ! "${DEVICETYPE}" = "TeamPort" ] && [ -x ./ifup-TeamPort ]; then + ./ifup-TeamPort ${CONFIG} $2 + ethtool_set + exit 0 +fi + # slave device? if [ "${SLAVE}" = yes -a "${ISALIAS}" = no -a "${MASTER}" != "" ]; then install_bonding_driver ${MASTER} |