xref: /freebsd/contrib/hyperv/tools/scripts/hv_set_ifconfig (revision e1c4c8dd8d2d10b6104f06856a77bd5b4813a801)
1#!/bin/sh
2
3# This script activates an interface based on the specified
4# configuration. The kvp daemon code invokes this external script
5# to configure the interface.
6#
7# The only argument to this script is the configuration file that is to
8# be used to configure the interface.
9#
10# Here is the format of the ip configuration file:
11#
12# HWADDR=macaddr
13# IF_NAME=interface name
14# DHCP=yes (This is optional; if yes, DHCP is configured)
15#
16# IPADDR=ipaddr1
17# IPADDR_1=ipaddr2
18# IPADDR_x=ipaddry (where y = x + 1)
19#
20# NETMASK=netmask1
21# NETMASK_x=netmasky (where y = x + 1)
22#
23# GATEWAY=ipaddr1
24# GATEWAY_x=ipaddry (where y = x + 1)
25#
26# DNSx=ipaddrx (where first DNS address is tagged as DNS1 etc)
27#
28# IPV6 addresses will be tagged as IPV6ADDR, IPV6 gateway will be
29# tagged as IPV6_DEFAULTGW and IPV6 NETMASK will be tagged as
30# IPV6NETMASK.
31#
32# The host can specify multiple ipv4 and ipv6 addresses to be
33# configured for the interface. Furthermore, the configuration
34# needs to be persistent. A subsequent GET call on the interface
35# is expected to return the configuration that is set via the SET
36# call.
37#
38
39. $1
40
41sed -i".bak" '/ifconfig_hn0="SYNCDHCP"/d' /etc/rc.conf
42sed -i".bak" '/ifconfig_hn0="DHCP"/d' /etc/rc.conf
43
44# MAC Address
45ifconfig $IF_NAME ether $HWADDR
46
47# IP and Subnet Mask
48ifconfig $IF_NAME inet $IP_ADDR netmask $SUBNET
49
50# DNS
51sed -i".bak" '/nameserver/d' /etc/resolv.conf
52echo "nameserver" $DNS >> /etc/resolv.conf
53
54#Gateway
55# Need to implment if Gateway is not present
56route flush
57route add default $GATEWAY
58#route change default $GATEWAY
59
60#/etc/rc.d/netif restart
61#/etc/rc.d/routing restart
62
63
64# DHCP
65if [ $DHCP -eq 1 ]
66then
67	echo ifconfig_hn0=\"DHCP\" >> /etc/rc.conf
68	echo Enabled
69else
70	echo Disabled DHCP >> /var/log/messages
71	echo Disabled
72fi
73echo "Set IP-Injection Success"
74