Skip to content

Commit 577b882

Browse files
committed
Network rate must be multiplied by 125 not 128
In a libvirt domain xml when nw_rate=5000 the kilobytes per second configured in the interface is 640000 which is 5.12 Gbit/s. Which is more than the configured network rate of 5Gbit/s. So instead multiply by 125.
1 parent 2dfe6a6 commit 577b882

File tree

4 files changed

+5
-5
lines changed

4 files changed

+5
-5
lines changed

plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ public LibvirtVMDef.InterfaceDef plug(NicTO nic, String guestOsType, String nicA
207207
String trafficLabel = nic.getName();
208208
Integer networkRateKBps = 0;
209209
if (libvirtVersion > ((10 * 1000 + 10))) {
210-
networkRateKBps = (nic.getNetworkRateMbps() != null && nic.getNetworkRateMbps().intValue() != -1) ? nic.getNetworkRateMbps().intValue() * 128 : 0;
210+
networkRateKBps = (nic.getNetworkRateMbps() != null && nic.getNetworkRateMbps().intValue() != -1) ? nic.getNetworkRateMbps().intValue() * 125 : 0;
211211
}
212212

213213
if (nic.getType() == Networks.TrafficType.Guest) {

plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/DirectVifDriver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public LibvirtVMDef.InterfaceDef plug(NicTO nic, String guestOsType, String nicA
4848

4949
if (Sets.newHashSet(Networks.TrafficType.Guest,
5050
Networks.TrafficType.Public).contains(nic.getType())) {
51-
Integer networkRateKBps = (nic.getNetworkRateMbps() != null && nic.getNetworkRateMbps().intValue() != -1) ? nic.getNetworkRateMbps().intValue() * 128 : 0;
51+
Integer networkRateKBps = (nic.getNetworkRateMbps() != null && nic.getNetworkRateMbps().intValue() != -1) ? nic.getNetworkRateMbps().intValue() * 125 : 0;
5252
intf.defDirectNet(_libvirtComputingResource.getNetworkDirectDevice(), null, nic.getMac(), getGuestNicModel(guestOsType, nicAdapter),
5353
_libvirtComputingResource.getNetworkDirectSourceMode(), networkRateKBps);
5454
}

plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/IvsVifDriver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public InterfaceDef plug(NicTO nic, String guestOsType, String nicAdapter, Map<S
9393
vlanId = NetUtils.getPrimaryPvlanFromUri(nic.getBroadcastUri());
9494
}
9595
String trafficLabel = nic.getName();
96-
Integer networkRateKBps = (nic.getNetworkRateMbps() != null && nic.getNetworkRateMbps().intValue() != -1) ? nic.getNetworkRateMbps().intValue() * 128 : 0;
96+
Integer networkRateKBps = (nic.getNetworkRateMbps() != null && nic.getNetworkRateMbps().intValue() != -1) ? nic.getNetworkRateMbps().intValue() * 125 : 0;
9797
if (nic.getType() == Networks.TrafficType.Guest) {
9898
if ((nic.getBroadcastType() == Networks.BroadcastDomainType.Vlan || nic.getBroadcastType() == Networks.BroadcastDomainType.Pvlan) &&
9999
!vlanId.equalsIgnoreCase("untagged")) {

plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/OvsVifDriver.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ public InterfaceDef plug(NicTO nic, String guestOsType, String nicAdapter, Map<S
130130
}
131131
String trafficLabel = nic.getName();
132132
if (nic.getType() == Networks.TrafficType.Guest) {
133-
Integer networkRateKBps = (nic.getNetworkRateMbps() != null && nic.getNetworkRateMbps().intValue() != -1) ? nic.getNetworkRateMbps().intValue() * 128 : 0;
133+
Integer networkRateKBps = (nic.getNetworkRateMbps() != null && nic.getNetworkRateMbps().intValue() != -1) ? nic.getNetworkRateMbps().intValue() * 125 : 0;
134134
if ((nic.getBroadcastType() == Networks.BroadcastDomainType.Vlan || nic.getBroadcastType() == Networks.BroadcastDomainType.Pvlan) &&
135135
!vlanId.equalsIgnoreCase("untagged")) {
136136
if (trafficLabel != null && !trafficLabel.isEmpty()) {
@@ -162,7 +162,7 @@ public InterfaceDef plug(NicTO nic, String guestOsType, String nicAdapter, Map<S
162162
createControlNetwork(_bridges.get("linklocal"));
163163
intf.defBridgeNet(_bridges.get("linklocal"), null, nic.getMac(), getGuestNicModel(guestOsType, nicAdapter));
164164
} else if (nic.getType() == Networks.TrafficType.Public) {
165-
Integer networkRateKBps = (nic.getNetworkRateMbps() != null && nic.getNetworkRateMbps().intValue() != -1) ? nic.getNetworkRateMbps().intValue() * 128 : 0;
165+
Integer networkRateKBps = (nic.getNetworkRateMbps() != null && nic.getNetworkRateMbps().intValue() != -1) ? nic.getNetworkRateMbps().intValue() * 125 : 0;
166166
if (nic.getBroadcastType() == Networks.BroadcastDomainType.Vlan && !vlanId.equalsIgnoreCase("untagged")) {
167167
if (trafficLabel != null && !trafficLabel.isEmpty()) {
168168
logger.debug("creating a vlan dev and bridge for public traffic per traffic label " + trafficLabel);

0 commit comments

Comments
 (0)