From cad79667a4e2755940ab9a2bf6fbcd52969d9b41 Mon Sep 17 00:00:00 2001 From: "Ruben S. Montero" Date: Thu, 22 Sep 2016 12:16:40 +0200 Subject: [PATCH] F #3045: Support for limiting average and peak bw per VM interface. Default values can be defined in VNET or AR. --- share/etc/oned.conf | 6 ++++ src/vmm/LibVirtDriverKVM.cc | 67 +++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) diff --git a/share/etc/oned.conf b/share/etc/oned.conf index 6eaae90891..c3bb7e961a 100644 --- a/share/etc/oned.conf +++ b/share/etc/oned.conf @@ -889,6 +889,12 @@ INHERIT_VNET_ATTR = "VLAN_TAGGED_ID" INHERIT_VNET_ATTR = "FILTER_IP_SPOOFING" INHERIT_VNET_ATTR = "FILTER_MAC_SPOOFING" INHERIT_VNET_ATTR = "MTU" +INHERIT_VNET_ATTR = "INBOUND_AVG_BW" +INHERIT_VNET_ATTR = "INBOUND_PEAK_BW" +INHERIT_VNET_ATTR = "INBOUND_PEAK_KB" +INHERIT_VNET_ATTR = "OUTBOUND_AVG_BW" +INHERIT_VNET_ATTR = "OUTBOUND_PEAK_BW" +INHERIT_VNET_ATTR = "OUTBOUND_PEAK_KB" #******************************************************************************* # Transfer Manager Driver Behavior Configuration diff --git a/src/vmm/LibVirtDriverKVM.cc b/src/vmm/LibVirtDriverKVM.cc index 7f994b2171..903efa1a10 100644 --- a/src/vmm/LibVirtDriverKVM.cc +++ b/src/vmm/LibVirtDriverKVM.cc @@ -169,6 +169,13 @@ int LibVirtDriver::deployment_description_kvm( string ip = ""; string filter = ""; + string i_avg_bw = ""; + string i_peak_bw = ""; + string i_peak_kb = ""; + string o_avg_bw = ""; + string o_peak_bw = ""; + string o_peak_kb = ""; + string default_filter = ""; string default_model = ""; @@ -844,6 +851,14 @@ int LibVirtDriver::deployment_description_kvm( ip = nic[i]->vector_value("IP"); filter = nic[i]->vector_value("FILTER"); + i_avg_bw = nic[i]->vector_value("INBOUND_AVG_BW"); + i_peak_bw = nic[i]->vector_value("INBOUND_PEAK_BW"); + i_peak_kb = nic[i]->vector_value("INBOUND_PEAK_KB"); + + o_avg_bw = nic[i]->vector_value("OUTBOUND_AVG_BW"); + o_peak_bw = nic[i]->vector_value("OUTBOUND_PEAK_BW"); + o_peak_kb = nic[i]->vector_value("OUTBOUND_PEAK_KB"); + if ( bridge.empty() ) { file << "\t\t" << endl; @@ -926,6 +941,58 @@ int LibVirtDriver::deployment_description_kvm( } } + if (!i_avg_bw.empty() || !i_peak_bw.empty() || !i_peak_kb.empty() || + !o_avg_bw.empty() || !o_peak_bw.empty() || !o_peak_kb.empty()) + { + file << "\t\t\t\n"; + + if (!i_avg_bw.empty() || !i_peak_bw.empty() || !i_peak_kb.empty()) + { + file << "\t\t\t\t\n"; + } + + if (!o_avg_bw.empty() || !o_peak_bw.empty() || !o_peak_kb.empty()) + { + file << "\t\t\t\t\n"; + } + + file << "\t\t\t\n"; + } + file << "\t\t" << endl; }