We previously allowed bandwidth settings when attaching NICs
to networks with forward mode=bridge:
commit 42a92ee93d5432ebd9ebfd409903b5287fc7d7ff
Author: Daniel P. Berrangé <berrange(a)redhat.com>
Date: Tue Nov 20 11:30:05 2018 +0000
network: add missing bandwidth limits for bridge forward type
In the case of a network with forward=bridge, which has a bridge device
listed, we are capable of setting bandwidth limits but fail to call the
function to register them.
Reviewed-by: Cole Robinson <crobinso(a)redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
Unfortunately the wrong version of this patch was posted and
reviewed and thus it lacked the code to actually apply the
bandwidth settings to the bridge itself.
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
src/network/bridge_driver.c | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 0fee153cb8..6a97bb17e2 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -2743,21 +2743,39 @@ networkShutdownNetworkVirtual(virNetworkDriverStatePtr driver,
static int
networkStartNetworkBridge(virNetworkObjPtr obj)
{
+ virNetworkDefPtr def = virNetworkObjGetDef(obj);
+
/* put anything here that needs to be done each time a network of
* type BRIDGE, is started. On failure, undo anything you've done,
* and return -1. On success return 0.
*/
- return networkStartHandleMACTableManagerMode(obj, NULL);
+ if (virNetDevBandwidthSet(def->bridge, def->bandwidth, true, true) < 0)
+ goto error;
+
+ if (networkStartHandleMACTableManagerMode(obj, NULL) < 0)
+ goto error;
+
+ return 0;
+
+ error:
+ if (def->bandwidth)
+ virNetDevBandwidthClear(def->bridge);
+ return -1;
}
static int
networkShutdownNetworkBridge(virNetworkObjPtr obj ATTRIBUTE_UNUSED)
{
+ virNetworkDefPtr def = virNetworkObjGetDef(obj);
+
/* put anything here that needs to be done each time a network of
* type BRIDGE is shutdown. On failure, undo anything you've done,
* and return -1. On success return 0.
*/
+ if (def->bandwidth)
+ virNetDevBandwidthClear(def->bridge);
+
return 0;
}
--
2.21.0