@@ -195,13 +195,15 @@ protected boolean isIp6Taken(Network network, String requestedIpv6) {
195195 * address information.
196196 */
197197 @ Override
198- public void setNicIp6Address (final NicProfile nic , final DataCenter dc , final Network network ) {
198+ public void setNicIp6Address (final NicProfile nic , final DataCenter dc , final Network network ) throws InsufficientAddressCapacityException {
199199 if (network .getIp6Gateway () != null ) {
200200 if (nic .getIPv6Address () == null ) {
201201 s_logger .debug ("Found IPv6 CIDR " + network .getIp6Cidr () + " for Network " + network );
202202 nic .setIPv6Cidr (network .getIp6Cidr ());
203203 nic .setIPv6Gateway (network .getIp6Gateway ());
204204
205+ setNicPropertiesFromNetwork (nic , network );
206+
205207 IPv6Address ipv6addr = NetUtils .EUI64Address (network .getIp6Cidr (), nic .getMacAddress ());
206208 s_logger .info ("Calculated IPv6 address " + ipv6addr + " using EUI-64 for NIC " + nic .getUuid ());
207209 nic .setIPv6Address (ipv6addr .toString ());
@@ -217,4 +219,15 @@ public void setNicIp6Address(final NicProfile nic, final DataCenter dc, final Ne
217219 }
218220 }
219221
222+ private void setNicPropertiesFromNetwork (NicProfile nic , Network network ) throws InsufficientAddressCapacityException {
223+ if (nic .getBroadcastType () == null ) {
224+ nic .setBroadcastType (network .getBroadcastDomainType ());
225+ }
226+ if (nic .getBroadCastUri () == null ) {
227+ nic .setBroadcastUri (network .getBroadcastUri ());
228+ }
229+ if (nic .getMacAddress () == null ) {
230+ nic .setMacAddress (_networkModel .getNextAvailableMacAddressInNetwork (network .getId ()));
231+ }
232+ }
220233}
0 commit comments