func (creator interfaceConfigurationCreator) createInterfaceConfiguration(staticConfigs []StaticInterfaceConfiguration, dhcpConfigs []DHCPInterfaceConfiguration, ifaceName string, networkSettings boshsettings.Network) ([]StaticInterfaceConfiguration, []DHCPInterfaceConfiguration, error) {
	creator.logger.Debug(creator.logTag, "Creating network configuration with settings: %s", networkSettings)

	if networkSettings.IsDHCP() || networkSettings.Mac == "" {
		creator.logger.Debug(creator.logTag, "Using dhcp networking")
		dhcpConfigs = append(dhcpConfigs, DHCPInterfaceConfiguration{
			Name: ifaceName,
		})
	} else {
		creator.logger.Debug(creator.logTag, "Using static networking")
		networkAddress, broadcastAddress, err := boshsys.CalculateNetworkAndBroadcast(networkSettings.IP, networkSettings.Netmask)
		if err != nil {
			return nil, nil, bosherr.WrapError(err, "Calculating Network and Broadcast")
		}
		staticConfigs = append(staticConfigs, StaticInterfaceConfiguration{
			Name:      ifaceName,
			Address:   networkSettings.IP,
			Netmask:   networkSettings.Netmask,
			Network:   networkAddress,
			Broadcast: broadcastAddress,
			Mac:       networkSettings.Mac,
			Gateway:   networkSettings.Gateway,
		})
	}
	return staticConfigs, dhcpConfigs, nil
}