diff options
author | Tomoki Sekiyama <tomoki.sekiyama@hds.com> | 2015-08-17 19:36:16 +0000 |
---|---|---|
committer | Tomoki Sekiyama <tomoki.sekiyama@hds.com> | 2015-08-17 17:47:09 -0400 |
commit | 0b130b6b3b4a9e0768e99b1496d2852f2ca47bb7 (patch) | |
tree | 73ec771493d5a229457e7747607aa9b777cda1cc /os_net_config/impl_ifcfg.py | |
parent | 103b87aa82cfd298b664fe1314e987bd953ec20d (diff) |
Support multiple addresses assignment with ifcfg
Currently only the first IPv4/v6 address is assigned to a NIC
even if multiple addresses are specified in config file.
With this change, ifcfg implementation can configure multiple
IPv4/v6 addresses for a NIC.
Also this enables os-net-config to configure IPv6 netmasks.
Change-Id: I31b39abae36e0620dbbcb1001fa51f5ca2bd9ea2
Diffstat (limited to 'os_net_config/impl_ifcfg.py')
-rw-r--r-- | os_net_config/impl_ifcfg.py | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/os_net_config/impl_ifcfg.py b/os_net_config/impl_ifcfg.py index 99273bc..b964819 100644 --- a/os_net_config/impl_ifcfg.py +++ b/os_net_config/impl_ifcfg.py @@ -136,19 +136,24 @@ class IfcfgNetConfig(os_net_config.NetConfig): if base_opt.use_dhcpv6: data += "DHCPV6C=yes\n" elif base_opt.addresses: - #TODO(dprince): Do we want to support multiple addresses? v4_addresses = base_opt.v4_addresses() if v4_addresses: - first_v4 = v4_addresses[0] data += "BOOTPROTO=static\n" - data += "IPADDR=%s\n" % first_v4.ip - data += "NETMASK=%s\n" % first_v4.netmask + for i, address in enumerate(v4_addresses): + num = '%s' % i if i else '' + data += "IPADDR%s=%s\n" % (num, address.ip) + data += "NETMASK%s=%s\n" % (num, address.netmask) v6_addresses = base_opt.v6_addresses() if v6_addresses: first_v6 = v6_addresses[0] data += "IPV6_AUTOCONF=no\n" - data += "IPV6ADDR=%s\n" % first_v6.ip + data += "IPV6ADDR=%s\n" % first_v6.ip_netmask + if len(v6_addresses) > 1: + secondaries_v6 = " ".join(map(lambda a: a.ip_netmask, + v6_addresses[1:])) + data += "IPV6ADDR_SECONDARIES=\"%s\"\n" % secondaries_v6 + if base_opt.hwaddr: data += "HWADDR=%s\n" % base_opt.hwaddr if ovs_extra: |