This is an automated email from the ASF dual-hosted git repository.

harikrishna pushed a commit to branch VMwareRemoveExtraReservedInterfaces
in repository https://gitbox.apache.org/repos/asf/cloudstack.git

commit 31742ccf06e88933bf7b0b3191d1f319dc539e7c
Author: Harikrishna Patnala <[email protected]>
AuthorDate: Mon Jan 31 16:09:02 2022 +0530

    Remove code that reserves extra interfaces based on the global setting 
router.extra.public.nics in case of VMware.
    Added hot plugging of vifs whenever required in case of isolated networks. 
VPC networks already uses hotplugging of vifs.
---
 .../java/com/cloud/agent/api/to/IpAddressTO.java   |  21 +++
 .../cloud/hypervisor/guru/VmwareVmImplementer.java |   4 +-
 .../hypervisor/vmware/manager/VmwareManager.java   |   2 -
 .../vmware/manager/VmwareManagerImpl.java          |   8 --
 .../hypervisor/vmware/resource/VmwareResource.java | 159 +++++++++------------
 .../cloud/network/router/CommandSetupHelper.java   |  58 ++++++++
 .../router/VirtualNetworkApplianceManagerImpl.java |   2 +-
 7 files changed, 149 insertions(+), 105 deletions(-)

diff --git a/api/src/main/java/com/cloud/agent/api/to/IpAddressTO.java 
b/api/src/main/java/com/cloud/agent/api/to/IpAddressTO.java
index 5be71ba..c6baf7c 100644
--- a/api/src/main/java/com/cloud/agent/api/to/IpAddressTO.java
+++ b/api/src/main/java/com/cloud/agent/api/to/IpAddressTO.java
@@ -18,6 +18,8 @@ package com.cloud.agent.api.to;
 
 import com.cloud.network.Networks.TrafficType;
 
+import java.util.Map;
+
 public class IpAddressTO {
 
     private long accountId;
@@ -36,6 +38,8 @@ public class IpAddressTO {
     private Integer nicDevId;
     private boolean newNic;
     private boolean isPrivateGateway;
+    private NicTO nicTO;
+    Map<String, String> details;
 
     public IpAddressTO(long accountId, String ipAddress, boolean add, boolean 
firstIP, boolean sourceNat, String broadcastUri, String vlanGateway, String 
vlanNetmask,
             String vifMacAddress, Integer networkRate, boolean isOneToOneNat) {
@@ -142,4 +146,21 @@ public class IpAddressTO {
     public void setPrivateGateway(boolean isPrivateGateway) {
         this.isPrivateGateway = isPrivateGateway;
     }
+
+    public NicTO getNicTO() {
+        return nicTO;
+    }
+
+    public void setNicTO(NicTO nicTO) {
+        this.nicTO = nicTO;
+    }
+
+
+    public Map<String, String> getDetails() {
+        return details;
+    }
+
+    public void setDetails(Map<String, String> details) {
+        this.details = details;
+    }
 }
diff --git 
a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/guru/VmwareVmImplementer.java
 
b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/guru/VmwareVmImplementer.java
index 08cda50..aef50d2 100644
--- 
a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/guru/VmwareVmImplementer.java
+++ 
b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/guru/VmwareVmImplementer.java
@@ -214,7 +214,7 @@ class VmwareVmImplementer {
             NicTO[] nics = to.getNics();
 
             // reserve extra NICs
-            NicTO[] expandedNics = new NicTO[nics.length + 
vmwareMgr.getRouterExtraPublicNics()];
+            NicTO[] expandedNics = new NicTO[nics.length];
             int i = 0;
             int deviceId = -1;
             for (i = 0; i < nics.length; i++) {
@@ -227,7 +227,7 @@ class VmwareVmImplementer {
             long networkId = publicNicProfile.getNetworkId();
             NetworkVO network = networkDao.findById(networkId);
 
-            for (; i < nics.length + vmwareMgr.getRouterExtraPublicNics(); 
i++) {
+            for (; i < nics.length; i++) {
                 NicTO nicTo = new NicTO();
 
                 nicTo.setDeviceId(deviceId++);
diff --git 
a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/manager/VmwareManager.java
 
b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/manager/VmwareManager.java
index 8bd4a67..c73f191 100644
--- 
a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/manager/VmwareManager.java
+++ 
b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/manager/VmwareManager.java
@@ -85,8 +85,6 @@ public interface VmwareManager {
 
     Pair<Integer, Integer> getAddiionalVncPortRange();
 
-    int getRouterExtraPublicNics();
-
     boolean beginExclusiveOperation(int timeOutSeconds);
 
     void endExclusiveOperation();
diff --git 
a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java
 
b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java
index 8bef787..04a6c01 100644
--- 
a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java
+++ 
b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java
@@ -253,7 +253,6 @@ public class VmwareManagerImpl extends ManagerBase 
implements VmwareManager, Vmw
     private String _recycleHungWorker = "false";
     private int _additionalPortRangeStart;
     private int _additionalPortRangeSize;
-    private int _routerExtraPublicNics = 2;
     private int _vCenterSessionTimeout = 1200000; // Timeout in milliseconds
     private String _rootDiskController = DiskControllerType.ide.toString();
 
@@ -374,8 +373,6 @@ public class VmwareManagerImpl extends ManagerBase 
implements VmwareManager, Vmw
             _additionalPortRangeSize = Math.min(1000, 65535 - 
_additionalPortRangeStart);
         }
 
-        _routerExtraPublicNics = 
NumbersUtil.parseInt(_configDao.getValue(Config.RouterExtraPublicNics.key()), 
2);
-
         _vCenterSessionTimeout = 
NumbersUtil.parseInt(_configDao.getValue(Config.VmwareVcenterSessionTimeout.key()),
 1200) * 1000;
         s_logger.info("VmwareManagerImpl config - 
vmware.vcenter.session.timeout: " + _vCenterSessionTimeout);
 
@@ -1070,11 +1067,6 @@ public class VmwareManagerImpl extends ManagerBase 
implements VmwareManager, Vmw
     }
 
     @Override
-    public int getRouterExtraPublicNics() {
-        return _routerExtraPublicNics;
-    }
-
-    @Override
     public Map<String, String> getNexusVSMCredentialsByClusterId(Long 
clusterId) {
         CiscoNexusVSMDeviceVO nexusVSM = null;
         ClusterVSMMapVO vsmMapVO = null;
diff --git 
a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java
 
b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java
index ed37391..d2051f6 100644
--- 
a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java
+++ 
b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java
@@ -1268,26 +1268,38 @@ public class VmwareResource implements 
StoragePoolResource, ServerResource, Vmwa
             s_logger.info("Executing resource PlugNicCommand " + 
_gson.toJson(cmd));
         }
 
+        try {
+            VirtualEthernetCardType nicDeviceType = null;
+            if (cmd.getDetails() != null) {
+                nicDeviceType = 
VirtualEthernetCardType.valueOf(cmd.getDetails().get("nicAdapter"));
+            }
+            plugNicCommandInternal(cmd.getVmName(), nicDeviceType, 
cmd.getNic(), cmd.getVMType());
+            return new PlugNicAnswer(cmd, true, "success");
+        } catch (Exception e) {
+            s_logger.error("Unexpected exception: ", e);
+            return new PlugNicAnswer(cmd, false, "Unable to execute 
PlugNicCommand due to " + e.toString());
+        }
+    }
+
+    private void plugNicCommandInternal(String vmName, VirtualEthernetCardType 
nicDeviceType, NicTO nicTo, VirtualMachine.Type vmType) throws Exception {
         getServiceContext().getStockObject(VmwareManager.CONTEXT_STOCK_NAME);
         VmwareContext context = getServiceContext();
-        try {
-            VmwareHypervisorHost hyperHost = getHyperHost(context);
+        VmwareHypervisorHost hyperHost = getHyperHost(context);
 
-            String vmName = cmd.getVmName();
-            VirtualMachineMO vmMo = hyperHost.findVmOnHyperHost(vmName);
+        VirtualMachineMO vmMo = hyperHost.findVmOnHyperHost(vmName);
 
-            if (vmMo == null) {
-                if (hyperHost instanceof HostMO) {
-                    ClusterMO clusterMo = new 
ClusterMO(hyperHost.getContext(), ((HostMO) hyperHost).getParentMor());
-                    vmMo = clusterMo.findVmOnHyperHost(vmName);
-                }
+        if (vmMo == null) {
+            if (hyperHost instanceof HostMO) {
+                ClusterMO clusterMo = new ClusterMO(hyperHost.getContext(), 
((HostMO) hyperHost).getParentMor());
+                vmMo = clusterMo.findVmOnHyperHost(vmName);
             }
+        }
 
-            if (vmMo == null) {
-                String msg = "Router " + vmName + " no longer exists to 
execute PlugNic command";
-                s_logger.error(msg);
-                throw new Exception(msg);
-            }
+        if (vmMo == null) {
+            String msg = "Router " + vmName + " no longer exists to execute 
PlugNic command";
+            s_logger.error(msg);
+            throw new Exception(msg);
+        }
 
             /*
             if(!isVMWareToolsInstalled(vmMo)){
@@ -1296,54 +1308,45 @@ public class VmwareResource implements 
StoragePoolResource, ServerResource, Vmwa
                 return new PlugNicAnswer(cmd, false, "Unable to execute 
PlugNicCommand due to " + errMsg);
             }
              */
-            // Fallback to E1000 if no specific nicAdapter is passed
-            VirtualEthernetCardType nicDeviceType = 
VirtualEthernetCardType.E1000;
-            Map<String, String> details = cmd.getDetails();
-            if (details != null) {
-                nicDeviceType = VirtualEthernetCardType.valueOf((String) 
details.get("nicAdapter"));
-            }
-
-            // find a usable device number in VMware environment
-            VirtualDevice[] nicDevices = vmMo.getSortedNicDevices();
-            int deviceNumber = -1;
-            for (VirtualDevice device : nicDevices) {
-                if (device.getUnitNumber() > deviceNumber)
-                    deviceNumber = device.getUnitNumber();
-            }
-            deviceNumber++;
+        // Fallback to E1000 if no specific nicAdapter is passed
+        if (nicDeviceType == null) {
+            nicDeviceType = VirtualEthernetCardType.E1000;
+        }
 
-            NicTO nicTo = cmd.getNic();
-            VirtualDevice nic;
-            Pair<ManagedObjectReference, String> networkInfo = 
prepareNetworkFromNicInfo(vmMo.getRunningHost(), nicTo, false, cmd.getVMType());
-            String dvSwitchUuid = null;
-            if (VmwareHelper.isDvPortGroup(networkInfo.first())) {
-                ManagedObjectReference dcMor = 
hyperHost.getHyperHostDatacenter();
-                DatacenterMO dataCenterMo = new DatacenterMO(context, dcMor);
-                ManagedObjectReference dvsMor = 
dataCenterMo.getDvSwitchMor(networkInfo.first());
-                dvSwitchUuid = dataCenterMo.getDvSwitchUuid(dvsMor);
-                s_logger.info("Preparing NIC device on dvSwitch : " + 
dvSwitchUuid);
-                nic = VmwareHelper.prepareDvNicDevice(vmMo, 
networkInfo.first(), nicDeviceType, networkInfo.second(), dvSwitchUuid,
-                        nicTo.getMac(), deviceNumber + 1, true, true);
-            } else {
-                s_logger.info("Preparing NIC device on network " + 
networkInfo.second());
-                nic = VmwareHelper.prepareNicDevice(vmMo, networkInfo.first(), 
nicDeviceType, networkInfo.second(),
-                        nicTo.getMac(), deviceNumber + 1, true, true);
-            }
+        // find a usable device number in VMware environment
+        VirtualDevice[] nicDevices = vmMo.getSortedNicDevices();
+        int deviceNumber = -1;
+        for (VirtualDevice device : nicDevices) {
+            if (device.getUnitNumber() > deviceNumber)
+                deviceNumber = device.getUnitNumber();
+        }
+        deviceNumber++;
 
-            VirtualMachineConfigSpec vmConfigSpec = new 
VirtualMachineConfigSpec();
-            VirtualDeviceConfigSpec deviceConfigSpec = new 
VirtualDeviceConfigSpec();
-            deviceConfigSpec.setDevice(nic);
-            
deviceConfigSpec.setOperation(VirtualDeviceConfigSpecOperation.ADD);
+        VirtualDevice nic;
+        Pair<ManagedObjectReference, String> networkInfo = 
prepareNetworkFromNicInfo(vmMo.getRunningHost(), nicTo, false, vmType);
+        String dvSwitchUuid = null;
+        if (VmwareHelper.isDvPortGroup(networkInfo.first())) {
+            ManagedObjectReference dcMor = hyperHost.getHyperHostDatacenter();
+            DatacenterMO dataCenterMo = new DatacenterMO(context, dcMor);
+            ManagedObjectReference dvsMor = 
dataCenterMo.getDvSwitchMor(networkInfo.first());
+            dvSwitchUuid = dataCenterMo.getDvSwitchUuid(dvsMor);
+            s_logger.info("Preparing NIC device on dvSwitch : " + 
dvSwitchUuid);
+            nic = VmwareHelper.prepareDvNicDevice(vmMo, networkInfo.first(), 
nicDeviceType, networkInfo.second(), dvSwitchUuid,
+                    nicTo.getMac(), deviceNumber + 1, true, true);
+        } else {
+            s_logger.info("Preparing NIC device on network " + 
networkInfo.second());
+            nic = VmwareHelper.prepareNicDevice(vmMo, networkInfo.first(), 
nicDeviceType, networkInfo.second(),
+                    nicTo.getMac(), deviceNumber + 1, true, true);
+        }
 
-            vmConfigSpec.getDeviceChange().add(deviceConfigSpec);
-            if (!vmMo.configureVm(vmConfigSpec)) {
-                throw new Exception("Failed to configure devices when running 
PlugNicCommand");
-            }
+        VirtualMachineConfigSpec vmConfigSpec = new VirtualMachineConfigSpec();
+        VirtualDeviceConfigSpec deviceConfigSpec = new 
VirtualDeviceConfigSpec();
+        deviceConfigSpec.setDevice(nic);
+        deviceConfigSpec.setOperation(VirtualDeviceConfigSpecOperation.ADD);
 
-            return new PlugNicAnswer(cmd, true, "success");
-        } catch (Exception e) {
-            s_logger.error("Unexpected exception: ", e);
-            return new PlugNicAnswer(cmd, false, "Unable to execute 
PlugNicCommand due to " + e.toString());
+        vmConfigSpec.getDeviceChange().add(deviceConfigSpec);
+        if (!vmMo.configureVm(vmConfigSpec)) {
+            throw new Exception("Failed to configure devices when running 
PlugNicCommand");
         }
     }
 
@@ -1613,7 +1616,12 @@ public class VmwareResource implements 
StoragePoolResource, ServerResource, Vmwa
                 }
 
                 if (addVif) {
-                    plugPublicNic(vmMo, vlanId, ip);
+                    NicTO nicTO = ip.getNicTO();
+                    VirtualEthernetCardType nicDeviceType = null;
+                    if (ip.getDetails() != null) {
+                        nicDeviceType = 
VirtualEthernetCardType.valueOf(ip.getDetails().get("nicAdapter"));
+                    }
+                    plugNicCommandInternal(routerName, nicDeviceType, nicTO, 
VirtualMachine.Type.DomainRouter);
                     publicNicInfo = vmMo.getNicDeviceIndex(publicNeworkName);
                     if (publicNicInfo.first().intValue() >= 0) {
                         networkUsage(controlIp, "addVif", "eth" + 
publicNicInfo.first());
@@ -2313,39 +2321,6 @@ public class VmwareResource implements 
StoragePoolResource, ServerResource, Vmwa
             int nicMask = 0;
             int nicCount = 0;
 
-            if (vmSpec.getType() == VirtualMachine.Type.DomainRouter) {
-                int extraPublicNics = mgr.getRouterExtraPublicNics();
-                if (extraPublicNics > 0 && 
vmSpec.getDetails().containsKey("PeerRouterInstanceName")) {
-                    //Set identical MAC address for RvR on extra public 
interfaces
-                    String peerRouterInstanceName = 
vmSpec.getDetails().get("PeerRouterInstanceName");
-
-                    VirtualMachineMO peerVmMo = 
hyperHost.findVmOnHyperHost(peerRouterInstanceName);
-                    if (peerVmMo == null) {
-                        peerVmMo = 
hyperHost.findVmOnPeerHyperHost(peerRouterInstanceName);
-                    }
-
-                    if (peerVmMo != null) {
-                        String oldMacSequence = generateMacSequence(nics);
-
-                        for (int nicIndex = nics.length - extraPublicNics; 
nicIndex < nics.length; nicIndex++) {
-                            VirtualDevice nicDevice = 
peerVmMo.getNicDeviceByIndex(nics[nicIndex].getDeviceId());
-                            if (nicDevice != null) {
-                                String mac = ((VirtualEthernetCard) 
nicDevice).getMacAddress();
-                                if (mac != null) {
-                                    s_logger.info("Use same MAC as previous 
RvR, the MAC is " + mac + " for extra NIC with device id: " + 
nics[nicIndex].getDeviceId());
-                                    nics[nicIndex].setMac(mac);
-                                }
-                            }
-                        }
-
-                        if (!StringUtils.isBlank(vmSpec.getBootArgs())) {
-                            String newMacSequence = generateMacSequence(nics);
-                            
vmSpec.setBootArgs(replaceNicsMacSequenceInBootArgs(oldMacSequence, 
newMacSequence, vmSpec));
-                        }
-                    }
-                }
-            }
-
             VirtualEthernetCardType nicDeviceType;
 
             NiciraNvpApiVersion.logNiciraApiVersion();
diff --git 
a/server/src/main/java/com/cloud/network/router/CommandSetupHelper.java 
b/server/src/main/java/com/cloud/network/router/CommandSetupHelper.java
index 4bff1a5..9ab633d 100644
--- a/server/src/main/java/com/cloud/network/router/CommandSetupHelper.java
+++ b/server/src/main/java/com/cloud/network/router/CommandSetupHelper.java
@@ -26,6 +26,14 @@ import java.util.Map;
 
 import javax.inject.Inject;
 
+import com.cloud.configuration.ConfigurationManager;
+import com.cloud.hypervisor.Hypervisor;
+import com.cloud.network.dao.NetworkDetailVO;
+import com.cloud.network.dao.NetworkDetailsDao;
+import com.cloud.offerings.dao.NetworkOfferingDetailsDao;
+import com.cloud.vm.VmDetailConstants;
+import org.apache.cloudstack.api.ApiConstants;
+import 
org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -179,6 +187,12 @@ public class CommandSetupHelper {
     private RouterControlHelper _routerControlHelper;
     @Inject
     private HostDao _hostDao;
+    @Inject
+    ConfigurationManager _configMgr;
+    @Inject
+    private NetworkOfferingDetailsDao networkOfferingDetailsDao;
+    @Inject
+    private NetworkDetailsDao networkDetailsDao;
 
     @Autowired
     @Qualifier("networkHelper")
@@ -848,6 +862,15 @@ public class CommandSetupHelper {
                         vifMacAddress, networkRate, ipAddr.isOneToOneNat());
 
                 setIpAddressNetworkParams(ip, network, router);
+                if (router.getHypervisorType() == 
Hypervisor.HypervisorType.VMware) {
+                    Map<String, String> details = new HashMap<>();
+                    String defaultSystemVmNicAdapterType = 
_configDao.getValue(Config.VmwareSystemVmNicDeviceType.key());
+                    if (defaultSystemVmNicAdapterType == null) {
+                        defaultSystemVmNicAdapterType = 
Config.VmwareSystemVmNicDeviceType.getDefaultValue();
+                    }
+                    details.put(VmDetailConstants.NIC_ADAPTER, 
defaultSystemVmNicAdapterType);
+                    ip.setDetails(details);
+                }
                 ipsToSend[i++] = ip;
                 /*
                  * send the firstIP = true for the first Add, this is to create
@@ -1152,6 +1175,41 @@ public class CommandSetupHelper {
             ipAddress.setPrivateGateway(false);
         }
         
ipAddress.setNetworkName(_networkModel.getNetworkTag(router.getHypervisorType(),
 network));
+
+        final NetworkOfferingVO networkOfferingVO = 
_networkOfferingDao.findById(network.getNetworkOfferingId());
+        NicTO nicTO = new NicTO();
+        nicTO.setMac(ipAddress.getVifMacAddress());
+        nicTO.setType(ipAddress.getTrafficType());
+        nicTO.setGateway(ipAddress.getVlanGateway());
+        
nicTO.setBroadcastUri(BroadcastDomainType.fromString(ipAddress.getBroadcastUri()));
+        nicTO.setType(network.getTrafficType());
+        nicTO.setName(_networkModel.getNetworkTag(router.getHypervisorType(), 
network));
+        nicTO.setBroadcastType(network.getBroadcastDomainType());
+        nicTO.setIsolationuri(network.getBroadcastUri());
+        
nicTO.setNetworkRateMbps(_configMgr.getNetworkOfferingNetworkRate(networkOfferingVO.getId(),
 network.getDataCenterId()));
+        
nicTO.setSecurityGroupEnabled(_networkModel.isSecurityGroupSupportedInNetwork(network));
+        nicTO.setDetails(getNicDetails(network));
+
+        ipAddress.setNicTO(nicTO);
+    }
+
+    private Map<NetworkOffering.Detail, String> getNicDetails(Network network) 
{
+        if (network == null) {
+            s_logger.debug("Unable to get NIC details as the network is null");
+            return null;
+        }
+        Map<NetworkOffering.Detail, String> details = 
networkOfferingDetailsDao.getNtwkOffDetails(network.getNetworkOfferingId());
+        if (details != null) {
+            details.putIfAbsent(NetworkOffering.Detail.PromiscuousMode, 
NetworkOrchestrationService.PromiscuousMode.value().toString());
+            details.putIfAbsent(NetworkOffering.Detail.MacAddressChanges, 
NetworkOrchestrationService.MacAddressChanges.value().toString());
+            details.putIfAbsent(NetworkOffering.Detail.ForgedTransmits, 
NetworkOrchestrationService.ForgedTransmits.value().toString());
+            details.putIfAbsent(NetworkOffering.Detail.MacLearning, 
NetworkOrchestrationService.MacLearning.value().toString());
+        }
+        NetworkDetailVO pvlantypeDetail = 
networkDetailsDao.findDetail(network.getId(), ApiConstants.ISOLATED_PVLAN_TYPE);
+        if (pvlantypeDetail != null) {
+            details.putIfAbsent(NetworkOffering.Detail.pvlanType, 
pvlantypeDetail.getValue());
+        }
+        return details;
     }
 
 }
diff --git 
a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
 
b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
index 1ed4f43..b243c16 100644
--- 
a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ 
b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -2063,7 +2063,7 @@ Configurable, StateListener<VirtualMachine.State, 
VirtualMachine.Event, VirtualM
             buf.append(" dnssearchorder=").append(domain_suffix);
         }
 
-        if (profile.getHypervisorType() == HypervisorType.VMware || 
profile.getHypervisorType() == HypervisorType.Hyperv) {
+        if (profile.getHypervisorType() == HypervisorType.Hyperv) {
             buf.append(" extra_pubnics=" + _routerExtraPublicNics);
         }
 

Reply via email to