summaryrefslogtreecommitdiffstats
path: root/contrib/hyperv/tools/scripts/hv_set_ifconfig
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/hyperv/tools/scripts/hv_set_ifconfig')
-rw-r--r--contrib/hyperv/tools/scripts/hv_set_ifconfig73
1 files changed, 73 insertions, 0 deletions
diff --git a/contrib/hyperv/tools/scripts/hv_set_ifconfig b/contrib/hyperv/tools/scripts/hv_set_ifconfig
new file mode 100644
index 0000000..3dc42e7
--- /dev/null
+++ b/contrib/hyperv/tools/scripts/hv_set_ifconfig
@@ -0,0 +1,73 @@
+#!/bin/sh
+
+# This script activates an interface based on the specified
+# configuration. The kvp daemon code invokes this external script
+# to configure the interface.
+#
+# The only argument to this script is the configuration file that is to
+# be used to configure the interface.
+#
+# Here is the format of the ip configuration file:
+#
+# HWADDR=macaddr
+# IF_NAME=interface name
+# DHCP=yes (This is optional; if yes, DHCP is configured)
+#
+# IPADDR=ipaddr1
+# IPADDR_1=ipaddr2
+# IPADDR_x=ipaddry (where y = x + 1)
+#
+# NETMASK=netmask1
+# NETMASK_x=netmasky (where y = x + 1)
+#
+# GATEWAY=ipaddr1
+# GATEWAY_x=ipaddry (where y = x + 1)
+#
+# DNSx=ipaddrx (where first DNS address is tagged as DNS1 etc)
+#
+# IPV6 addresses will be tagged as IPV6ADDR, IPV6 gateway will be
+# tagged as IPV6_DEFAULTGW and IPV6 NETMASK will be tagged as
+# IPV6NETMASK.
+#
+# The host can specify multiple ipv4 and ipv6 addresses to be
+# configured for the interface. Furthermore, the configuration
+# needs to be persistent. A subsequent GET call on the interface
+# is expected to return the configuration that is set via the SET
+# call.
+#
+
+. $1
+
+sed -i".bak" '/ifconfig_hn0="SYNCDHCP"/d' /etc/rc.conf
+sed -i".bak" '/ifconfig_hn0="DHCP"/d' /etc/rc.conf
+
+# MAC Address
+ifconfig $IF_NAME ether $HWADDR
+
+# IP and Subnet Mask
+ifconfig $IF_NAME inet $IP_ADDR netmask $SUBNET
+
+# DNS
+sed -i".bak" '/nameserver/d' /etc/resolv.conf
+echo "nameserver" $DNS >> /etc/resolv.conf
+
+#Gateway
+# Need to implment if Gateway is not present
+route flush
+route add default $GATEWAY
+#route change default $GATEWAY
+
+#/etc/rc.d/netif restart
+#/etc/rc.d/routing restart
+
+
+# DHCP
+if [ $DHCP -eq 1 ]
+then
+ echo ifconfig_hn0=\"DHCP\" >> /etc/rc.conf
+ echo Enabled
+else
+ echo Disabled DHCP >> /var/log/messages
+ echo Disabled
+fi
+echo "Set IP-Injection Success"
OpenPOWER on IntegriCloud