Skip to content

Commit 340b086

Browse files
author
Kelven Yang
committed
1 parent 42a9fd6 commit 340b086

2 files changed

Lines changed: 18 additions & 5 deletions

File tree

vmware-base/src/com/cloud/hypervisor/vmware/mo/HostMO.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import com.vmware.vim25.HostListSummaryQuickStats;
4242
import com.vmware.vim25.HostNetworkInfo;
4343
import com.vmware.vim25.HostNetworkPolicy;
44+
import com.vmware.vim25.HostNetworkSecurityPolicy;
4445
import com.vmware.vim25.HostNetworkTrafficShapingPolicy;
4546
import com.vmware.vim25.HostPortGroup;
4647
import com.vmware.vim25.HostPortGroupSpec;
@@ -365,7 +366,7 @@ public boolean hasPortGroup(HostVirtualSwitch vSwitch, String portGroupName) thr
365366
return false;
366367
}
367368

368-
public void createPortGroup(HostVirtualSwitch vSwitch, String portGroupName, Integer vlanId, HostNetworkTrafficShapingPolicy shapingPolicy) throws Exception {
369+
public void createPortGroup(HostVirtualSwitch vSwitch, String portGroupName, Integer vlanId, HostNetworkSecurityPolicy secPolicy, HostNetworkTrafficShapingPolicy shapingPolicy) throws Exception {
369370
assert(portGroupName != null);
370371
HostNetworkSystemMO hostNetMo = getHostNetworkSystemMO();
371372
assert(hostNetMo != null);
@@ -376,13 +377,15 @@ public void createPortGroup(HostVirtualSwitch vSwitch, String portGroupName, Int
376377
if(vlanId != null)
377378
spec.setVlanId(vlanId.intValue());
378379
HostNetworkPolicy policy = new HostNetworkPolicy();
380+
if (secPolicy != null)
381+
policy.setSecurity(secPolicy);
379382
policy.setShapingPolicy(shapingPolicy);
380383
spec.setPolicy(policy);
381384
spec.setVswitchName(vSwitch.getName());
382385
hostNetMo.addPortGroup(spec);
383386
}
384387

385-
public void updatePortGroup(HostVirtualSwitch vSwitch, String portGroupName, Integer vlanId, HostNetworkTrafficShapingPolicy shapingPolicy) throws Exception {
388+
public void updatePortGroup(HostVirtualSwitch vSwitch, String portGroupName, Integer vlanId, HostNetworkSecurityPolicy secPolicy, HostNetworkTrafficShapingPolicy shapingPolicy) throws Exception {
386389
assert(portGroupName != null);
387390
HostNetworkSystemMO hostNetMo = getHostNetworkSystemMO();
388391
assert(hostNetMo != null);
@@ -393,6 +396,8 @@ public void updatePortGroup(HostVirtualSwitch vSwitch, String portGroupName, Int
393396
if(vlanId != null)
394397
spec.setVlanId(vlanId.intValue());
395398
HostNetworkPolicy policy = new HostNetworkPolicy();
399+
if (secPolicy != null)
400+
policy.setSecurity(secPolicy);
396401
policy.setShapingPolicy(shapingPolicy);
397402
spec.setPolicy(policy);
398403
spec.setVswitchName(vSwitch.getName());

vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@
4343
import com.vmware.vim25.DVPortgroupConfigInfo;
4444
import com.vmware.vim25.DVSTrafficShapingPolicy;
4545
import com.vmware.vim25.DynamicProperty;
46+
import com.vmware.vim25.HostNetworkPolicy;
47+
import com.vmware.vim25.HostNetworkSecurityPolicy;
4648
import com.vmware.vim25.HostNetworkTrafficShapingPolicy;
4749
import com.vmware.vim25.HostPortGroupSpec;
4850
import com.vmware.vim25.HostVirtualSwitch;
@@ -563,7 +565,13 @@ public static Pair<ManagedObjectReference, String> prepareNetwork(String vSwitch
563565
}
564566

565567
networkName = composeCloudNetworkName(namePrefix, vlanId, networkRateMbps, vSwitchName);
566-
568+
HostNetworkSecurityPolicy secPolicy = null;
569+
if (namePrefix.equalsIgnoreCase("cloud.private")) {
570+
secPolicy = new HostNetworkSecurityPolicy();
571+
secPolicy.setAllowPromiscuous(Boolean.TRUE);
572+
secPolicy.setForgedTransmits(Boolean.TRUE);
573+
secPolicy.setMacChanges(Boolean.TRUE);
574+
}
567575
HostNetworkTrafficShapingPolicy shapingPolicy = null;
568576
if(networkRateMbps != null && networkRateMbps.intValue() > 0) {
569577
shapingPolicy = new HostNetworkTrafficShapingPolicy();
@@ -583,12 +591,12 @@ public static Pair<ManagedObjectReference, String> prepareNetwork(String vSwitch
583591

584592
boolean bWaitPortGroupReady = false;
585593
if (!hostMo.hasPortGroup(vSwitch, networkName)) {
586-
hostMo.createPortGroup(vSwitch, networkName, vid, shapingPolicy);
594+
hostMo.createPortGroup(vSwitch, networkName, vid, secPolicy, shapingPolicy);
587595
bWaitPortGroupReady = true;
588596
} else {
589597
HostPortGroupSpec spec = hostMo.getPortGroupSpec(networkName);
590598
if(!isSpecMatch(spec, vid, shapingPolicy)) {
591-
hostMo.updatePortGroup(vSwitch, networkName, vid, shapingPolicy);
599+
hostMo.updatePortGroup(vSwitch, networkName, vid, secPolicy, shapingPolicy);
592600
bWaitPortGroupReady = true;
593601
}
594602
}

0 commit comments

Comments
 (0)