On Wed, Feb 12, 2020 at 09:20:55AM +0100, Michal Privoznik wrote:
On 2/10/20 5:10 PM, Pavel Mores wrote:
>Even if an interface of type 'network', setting 'floor' is only
supported
>if the network's forward type is nat, route, open or none.
>
>Signed-off-by: Pavel Mores <pmores(a)redhat.com>
>---
> src/network/bridge_driver.c | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
>diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
>index 94212eec77..3b70e52afd 100644
>--- a/src/network/bridge_driver.c
>+++ b/src/network/bridge_driver.c
>@@ -5062,9 +5062,26 @@ networkCheckBandwidth(virNetworkObjPtr obj,
> unsigned long long tmp_floor_sum = virNetworkObjGetFloorSum(obj);
> unsigned long long tmp_new_rate = 0;
> char ifmac[VIR_MAC_STRING_BUFLEN];
>+ virNetworkForwardType fwdType;
>+ bool floorSupported;
>+ bool floorRequested;
> virMacAddrFormat(ifaceMac, ifmac);
>+ fwdType = def->forward.type;
>+ floorSupported = fwdType == VIR_NETWORK_FORWARD_NONE ||
>+ fwdType == VIR_NETWORK_FORWARD_NAT ||
>+ fwdType == VIR_NETWORK_FORWARD_ROUTE ||
>+ fwdType == VIR_NETWORK_FORWARD_OPEN;
What if this was turned into a function? For instance:
static inline bool
In this day and age, there's no need to waste energy by writing the
inline keyword - the compiler will do as it pleases anyway
(which is why we need the G_GNUC_NO_INLINE marker in the first place).
Jano
virNetDevSupportBandwidthFloor(virNetworkForwardType type)
{
switch (type) {
case VIR_NETWORK_FORWARD_NONE:
case VIR_NETWORK_FORWARD_NAT:
case VIR_NETWORK_FORWARD_ROUTE:
case VIR_NETWORK_FORWARD_OPEN:
return true;
case VIR_NETWORK_FORWARD_BRIDGE:
case VIR_NETWORK_FORWARD_PRIVATE:
case VIR_NETWORK_FORWARD_VEPA:
case VIR_NETWORK_FORWARD_PASSTHROUGH:
case VIR_NETWORK_FORWARD_HOSTDEV:
case VIR_NETWORK_FORWARD_LAST:
break;
}
return false;
}