|
|
a0a3b4 |
From 53e4ab71742fc1e5d8112c719c0d154d08815fa1 Mon Sep 17 00:00:00 2001
|
|
|
a0a3b4 |
From: Harald Hoyer <harald@redhat.com>
|
|
|
a0a3b4 |
Date: Wed, 29 Jun 2016 12:27:37 +0200
|
|
|
a0a3b4 |
Subject: [PATCH] network: support macaddr in brackets []
|
|
|
a0a3b4 |
|
|
|
a0a3b4 |
ip=ens3:dhcp:1000
|
|
|
a0a3b4 |
ip=ens3:dhcp::54:52:00:ab:cd:ef
|
|
|
a0a3b4 |
ip=ens3:dhcp::[54:52:00:ab:cd:ef]
|
|
|
a0a3b4 |
ip=ens3:dhcp:1000:54:52:00:ab:cd:ef
|
|
|
a0a3b4 |
ip=ens3:dhcp:1000:[54:52:00:ab:cd:ef]
|
|
|
a0a3b4 |
|
|
|
a0a3b4 |
ip=192.168.122.20::192.168.122.1:24:test:ens3:none:1000
|
|
|
a0a3b4 |
ip=192.168.122.20::192.168.122.1:24:test:ens3:none::54:52:00:ab:cd:ef
|
|
|
a0a3b4 |
ip=192.168.122.20::192.168.122.1:24:test:ens3:none::[54:52:00:ab:cd:ef]
|
|
|
a0a3b4 |
ip=192.168.122.20::192.168.122.1:24:test:ens3:none:1000:54:52:00:ab:cd:ef
|
|
|
a0a3b4 |
ip=192.168.122.20::192.168.122.1:24:test:ens3:none:1000:[54:52:00:ab:cd:ef]
|
|
|
a0a3b4 |
|
|
|
a0a3b4 |
ip=::::test:ens3:dhcp:1000
|
|
|
a0a3b4 |
ip=::::test:ens3:dhcp::54:52:00:ab:cd:ef
|
|
|
a0a3b4 |
ip=::::test:ens3:dhcp::[54:52:00:ab:cd:ef]
|
|
|
a0a3b4 |
ip=::::test:ens3:dhcp:1000:54:52:00:ab:cd:ef
|
|
|
a0a3b4 |
ip=::::test:ens3:dhcp:1000:[54:52:00:ab:cd:ef]
|
|
|
a0a3b4 |
---
|
|
|
49e6a8 |
modules.d/40network/net-lib.sh | 119 +++++++++++++++++++++------------
|
|
|
a0a3b4 |
1 file changed, 75 insertions(+), 44 deletions(-)
|
|
|
a0a3b4 |
|
|
|
a0a3b4 |
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
|
|
|
1755ca |
index 5a07b4ee..0c00f925 100755
|
|
|
a0a3b4 |
--- a/modules.d/40network/net-lib.sh
|
|
|
a0a3b4 |
+++ b/modules.d/40network/net-lib.sh
|
|
|
a0a3b4 |
@@ -406,53 +406,84 @@ ip_to_var() {
|
|
|
a0a3b4 |
done
|
|
|
a0a3b4 |
|
|
|
a0a3b4 |
unset ip srv gw mask hostname dev autoconf macaddr mtu dns1 dns2
|
|
|
a0a3b4 |
- case $# in
|
|
|
a0a3b4 |
- 0) autoconf="error" ;;
|
|
|
a0a3b4 |
- 1) autoconf=$1 ;;
|
|
|
a0a3b4 |
- 2) [ -n "$1" ] && dev=$1; [ -n "$2" ] && autoconf=$2 ;;
|
|
|
a0a3b4 |
- 3) [ -n "$1" ] && dev=$1; [ -n "$2" ] && autoconf=$2; [ -n "$3" ] && mtu=$3 ;;
|
|
|
a0a3b4 |
- 4) [ -n "$1" ] && dev=$1; [ -n "$2" ] && autoconf=$2; [ -n "$3" ] && mtu=$3; [ -n "$4" ] && macaddr=$4 ;;
|
|
|
a0a3b4 |
- *) [ -n "$1" ] && ip=$1; [ -n "$2" ] && srv=$2; [ -n "$3" ] && gw=$3; [ -n "$4" ] && mask=$4;
|
|
|
a0a3b4 |
- [ -n "$5" ] && hostname=$5; [ -n "$6" ] && dev=$6; [ -n "$7" ] && autoconf=$7;
|
|
|
a0a3b4 |
- case "$8" in
|
|
|
a0a3b4 |
- [0-9]*:*|[0-9]*.[0-9]*.[0-9]*.[0-9]*)
|
|
|
a0a3b4 |
- dns1="$8"
|
|
|
a0a3b4 |
- [ -n "$9" ] && dns2="$9"
|
|
|
a0a3b4 |
- ;;
|
|
|
a0a3b4 |
- [0-9]*)
|
|
|
a0a3b4 |
- mtu="$8"
|
|
|
a0a3b4 |
- if [ -n "${9}" -a -n "${10}" -a -n "${11}" -a -n "${12}" -a -n "${13}" -a -n "${14}" ]; then
|
|
|
a0a3b4 |
- macaddr="${9}:${10}:${11}:${12}:${13}:${14}"
|
|
|
a0a3b4 |
- fi
|
|
|
a0a3b4 |
- ;;
|
|
|
a0a3b4 |
- *)
|
|
|
a0a3b4 |
- if [ -n "${9}" -a -n "${10}" -a -n "${11}" -a -n "${12}" -a -n "${13}" -a -n "${14}" ]; then
|
|
|
a0a3b4 |
- macaddr="${9}:${10}:${11}:${12}:${13}:${14}"
|
|
|
a0a3b4 |
- fi
|
|
|
a0a3b4 |
- ;;
|
|
|
a0a3b4 |
+
|
|
|
a0a3b4 |
+ if [ $# -eq 0 ]; then
|
|
|
a0a3b4 |
+ autoconf="error"
|
|
|
a0a3b4 |
+ return 0
|
|
|
a0a3b4 |
+ fi
|
|
|
a0a3b4 |
+
|
|
|
a0a3b4 |
+ if [ $# -eq 1 ]; then
|
|
|
a0a3b4 |
+ # format: ip={dhcp|on|any|dhcp6|auto6}
|
|
|
a0a3b4 |
+ # or
|
|
|
a0a3b4 |
+ # ip=<ipv4-address> means anaconda-style static config argument cluster
|
|
|
a0a3b4 |
+ autoconf="$1"
|
|
|
a0a3b4 |
+
|
|
|
a0a3b4 |
+ if strstr "$autoconf" "*.*.*.*"; then
|
|
|
a0a3b4 |
+ # ip=<ipv4-address> means anaconda-style static config argument cluster:
|
|
|
a0a3b4 |
+ # ip=<ip> gateway=<gw> netmask=<nm> hostname=<host> mtu=<mtu>
|
|
|
a0a3b4 |
+ # ksdevice={link|bootif|ibft|<MAC>|<ifname>}
|
|
|
a0a3b4 |
+ ip="$autoconf"
|
|
|
a0a3b4 |
+ gw=$(getarg gateway=)
|
|
|
a0a3b4 |
+ mask=$(getarg netmask=)
|
|
|
a0a3b4 |
+ hostname=$(getarg hostname=)
|
|
|
a0a3b4 |
+ dev=$(getarg ksdevice=)
|
|
|
a0a3b4 |
+ autoconf="none"
|
|
|
a0a3b4 |
+ mtu=$(getarg mtu=)
|
|
|
a0a3b4 |
+
|
|
|
a0a3b4 |
+ # handle special values for ksdevice
|
|
|
a0a3b4 |
+ case "$dev" in
|
|
|
a0a3b4 |
+ bootif|BOOTIF) dev=$(fix_bootif $(getarg BOOTIF=)) ;;
|
|
|
a0a3b4 |
+ link) dev="" ;; # FIXME: do something useful with this
|
|
|
a0a3b4 |
+ ibft) dev="" ;; # ignore - ibft is handled elsewhere
|
|
|
a0a3b4 |
esac
|
|
|
a0a3b4 |
- ;;
|
|
|
a0a3b4 |
- esac
|
|
|
a0a3b4 |
+ fi
|
|
|
a0a3b4 |
+ return 0
|
|
|
a0a3b4 |
+ fi
|
|
|
a0a3b4 |
|
|
|
a0a3b4 |
- # ip=<ipv4-address> means anaconda-style static config argument cluster:
|
|
|
a0a3b4 |
- # ip=<ip> gateway=<gw> netmask=<nm> hostname=<host> mtu=<mtu>
|
|
|
a0a3b4 |
- # ksdevice={link|bootif|ibft|<MAC>|<ifname>}
|
|
|
a0a3b4 |
- if strstr "$autoconf" "*.*.*.*"; then
|
|
|
a0a3b4 |
- ip="$autoconf"
|
|
|
a0a3b4 |
- gw=$(getarg gateway=)
|
|
|
a0a3b4 |
- mask=$(getarg netmask=)
|
|
|
a0a3b4 |
- hostname=$(getarg hostname=)
|
|
|
a0a3b4 |
- dev=$(getarg ksdevice=)
|
|
|
a0a3b4 |
- autoconf="none"
|
|
|
a0a3b4 |
- mtu=$(getarg mtu=)
|
|
|
a0a3b4 |
-
|
|
|
a0a3b4 |
- # handle special values for ksdevice
|
|
|
a0a3b4 |
- case "$dev" in
|
|
|
a0a3b4 |
- bootif|BOOTIF) dev=$(fix_bootif $(getarg BOOTIF=)) ;;
|
|
|
a0a3b4 |
- link) dev="" ;; # FIXME: do something useful with this
|
|
|
a0a3b4 |
- ibft) dev="" ;; # ignore - ibft is handled elsewhere
|
|
|
a0a3b4 |
- esac
|
|
|
a0a3b4 |
+ if [ "$2" = "dhcp" -o "$2" = "on" -o "$2" = "any" -o "$2" = "dhcp6" -o "$2" = "auto6" ]; then
|
|
|
a0a3b4 |
+ # format: ip=<interface>:{dhcp|on|any|dhcp6|auto6}[:[<mtu>][:<macaddr>]]
|
|
|
a0a3b4 |
+ [ -n "$1" ] && dev="$1"
|
|
|
a0a3b4 |
+ [ -n "$2" ] && autoconf="$2"
|
|
|
a0a3b4 |
+ [ -n "$3" ] && mtu=$3
|
|
|
a0a3b4 |
+ if [ -z "$5" ]; then
|
|
|
a0a3b4 |
+ macaddr="$4"
|
|
|
a0a3b4 |
+ else
|
|
|
a0a3b4 |
+ macaddr="${4}:${5}:${6}:${7}:${8}:${9}"
|
|
|
a0a3b4 |
+ fi
|
|
|
a0a3b4 |
+ return 0
|
|
|
a0a3b4 |
fi
|
|
|
a0a3b4 |
+
|
|
|
a0a3b4 |
+ # format: ip=<client-IP>:[<peer>]:<gateway-IP>:<netmask>:<client_hostname>:<interface>:{none|off|dhcp|on|any|dhcp6|auto6|ibft}:[:[<mtu>][:<macaddr>]]
|
|
|
a0a3b4 |
+
|
|
|
a0a3b4 |
+ [ -n "$1" ] && ip=$1
|
|
|
a0a3b4 |
+ [ -n "$2" ] && srv=$2
|
|
|
a0a3b4 |
+ [ -n "$3" ] && gw=$3
|
|
|
a0a3b4 |
+ [ -n "$4" ] && mask=$4
|
|
|
a0a3b4 |
+ [ -n "$5" ] && hostname=$5
|
|
|
a0a3b4 |
+ [ -n "$6" ] && dev=$6
|
|
|
a0a3b4 |
+ [ -n "$7" ] && autoconf=$7
|
|
|
a0a3b4 |
+ case "$8" in
|
|
|
a0a3b4 |
+ [0-9]*:*|[0-9]*.[0-9]*.[0-9]*.[0-9]*)
|
|
|
a0a3b4 |
+ dns1="$8"
|
|
|
a0a3b4 |
+ [ -n "$9" ] && dns2="$9"
|
|
|
a0a3b4 |
+ ;;
|
|
|
a0a3b4 |
+ [0-9]*)
|
|
|
a0a3b4 |
+ mtu="$8"
|
|
|
a0a3b4 |
+ if [ -n "${9}" -a -z "${10}" ]; then
|
|
|
a0a3b4 |
+ macaddr="${9}"
|
|
|
a0a3b4 |
+ elif [ -n "${9}" -a -n "${10}" -a -n "${11}" -a -n "${12}" -a -n "${13}" -a -n "${14}" ]; then
|
|
|
a0a3b4 |
+ macaddr="${9}:${10}:${11}:${12}:${13}:${14}"
|
|
|
a0a3b4 |
+ fi
|
|
|
a0a3b4 |
+ ;;
|
|
|
a0a3b4 |
+ *)
|
|
|
a0a3b4 |
+ if [ -n "${9}" -a -z "${10}" ]; then
|
|
|
a0a3b4 |
+ macaddr="${9}"
|
|
|
a0a3b4 |
+ elif [ -n "${9}" -a -n "${10}" -a -n "${11}" -a -n "${12}" -a -n "${13}" -a -n "${14}" ]; then
|
|
|
a0a3b4 |
+ macaddr="${9}:${10}:${11}:${12}:${13}:${14}"
|
|
|
a0a3b4 |
+ fi
|
|
|
a0a3b4 |
+ ;;
|
|
|
a0a3b4 |
+ esac
|
|
|
a0a3b4 |
+ return 0
|
|
|
a0a3b4 |
}
|
|
|
a0a3b4 |
|
|
|
a0a3b4 |
route_to_var() {
|