On 2011年12月28日 17:56, Hu Tao wrote:
The APIs are used to set/get domain's network interface's
parameters.
Currently supported parameters are bandwidth settings.
* include/libvirt/libvirt.h.in: new API and parameters definition
* python/generator.py: skip the Python API generation
* src/driver.h: add new entry to the driver structure
* src/libvirt_public.syms: export symbols
---
include/libvirt/libvirt.h.in | 50 ++++++++++++++++++++++++++++++++++++++++++
python/generator.py | 2 +
src/driver.h | 12 ++++++++++
src/libvirt_public.syms | 2 +
4 files changed, 66 insertions(+), 0 deletions(-)
diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
index 7f26521..f59c3b1 100644
--- a/include/libvirt/libvirt.h.in
+++ b/include/libvirt/libvirt.h.in
@@ -645,6 +645,48 @@ typedef virTypedParameter *virTypedParameterPtr;
*/
#define VIR_DOMAIN_SCHEDULER_SHARES "shares"
+/**
+ * VIR_DOMAIN_BANDWIDTH_IN_AVERAGE:
+ *
+ * Macro represents the inbound average of NIC bandwidth.
+ */
+#define VIR_DOMAIN_BANDWIDTH_IN_AVERAGE "inbound.average"
+
+/**
+ * VIR_DOMAIN_BANDWIDTH_IN_PEAK:
+ *
+ * Macro represents the inbound peak of NIC bandwidth.
+ */
+#define VIR_DOMAIN_BANDWIDTH_IN_PEAK "inbound.peak"
+
+/**
+ * VIR_DOMAIN_BANDWIDTH_IN_BURST:
+ *
+ * Macro represents the inbound burst of NIC bandwidth.
+ */
+#define VIR_DOMAIN_BANDWIDTH_IN_BURST "inbound.burst"
+
+/**
+ * VIR_DOMAIN_BANDWIDTH_OUT_AVERAGE:
+ *
+ * Macro represents the outbound average of NIC bandwidth.
+ */
+#define VIR_DOMAIN_BANDWIDTH_OUT_AVERAGE "outbound.average"
+
+/**
+ * VIR_DOMAIN_BANDWIDTH_OUT_PEAK:
+ *
+ * Macro represents the outbound peak of NIC bandwidth.
+ */
+#define VIR_DOMAIN_BANDWIDTH_OUT_PEAK "outbound.peak"
+
+/**
+ * VIR_DOMAIN_BANDWIDTH_OUT_BURST:
+ *
+ * Macro represents the outbound burst of NIC bandwidth.
+ */
+#define VIR_DOMAIN_BANDWIDTH_OUT_BURST "outbound.burst"
+
/*
* Fetch scheduler parameters, caller allocates 'params' field of size
'nparams'
*/
@@ -1446,6 +1488,14 @@ int virDomainInterfaceStats (virDomainPtr
dom,
const char *path,
virDomainInterfaceStatsPtr stats,
size_t size);
+int virDomainSetInterfaceParameters (virDomainPtr dom,
+ const char *device,
+ virTypedParameterPtr params,
+ int nparams, unsigned int
flags);
+int virDomainGetInterfaceParameters (virDomainPtr dom,
+ const char *device,
+ virTypedParameterPtr params,
+ int *nparams, unsigned int
flags);
int virDomainMemoryStats (virDomainPtr dom,
virDomainMemoryStatPtr stats,
unsigned int nr_stats,
diff --git a/python/generator.py b/python/generator.py
index 181f70e..6fee3a4 100755
--- a/python/generator.py
+++ b/python/generator.py
@@ -419,6 +419,8 @@ skip_impl = (
'virDomainBlockStatsFlags',
'virDomainSetBlockIoTune',
'virDomainGetBlockIoTune',
+ 'virDomainSetInterfaceParameters',
+ 'virDomainGetInterfaceParameters',
)
qemu_skip_impl = (
diff --git a/src/driver.h b/src/driver.h
index bbd6417..ec4abf3 100644
--- a/src/driver.h
+++ b/src/driver.h
@@ -375,6 +375,16 @@ typedef int
(virDomainPtr domain,
const char *path,
struct _virDomainInterfaceStats *stats);
+typedef int
+ (*virDrvDomainSetInterfaceParameters) (virDomainPtr dom,
+ const char *device,
+ virTypedParameterPtr params,
+ int nparams, unsigned int flags);
+typedef int
+ (*virDrvDomainGetInterfaceParameters) (virDomainPtr dom,
+ const char *device,
+ virTypedParameterPtr params,
+ int *nparams, unsigned int flags);
typedef int
(*virDrvDomainMemoryStats)
@@ -883,6 +893,8 @@ struct _virDriver {
virDrvDomainBlockStats domainBlockStats;
virDrvDomainBlockStatsFlags domainBlockStatsFlags;
virDrvDomainInterfaceStats domainInterfaceStats;
+ virDrvDomainSetInterfaceParameters domainSetInterfaceParameters;
+ virDrvDomainGetInterfaceParameters domainGetInterfaceParameters;
virDrvDomainMemoryStats domainMemoryStats;
virDrvDomainBlockPeek domainBlockPeek;
virDrvDomainMemoryPeek domainMemoryPeek;
diff --git a/src/libvirt_public.syms b/src/libvirt_public.syms
index 3709f08..ea6d562 100644
--- a/src/libvirt_public.syms
+++ b/src/libvirt_public.syms
@@ -512,6 +512,8 @@ LIBVIRT_0.9.9 {
global:
virDomainGetNumaParameters;
virDomainSetNumaParameters;
+ virDomainGetInterfaceParameters;
+ virDomainSetInterfaceParameters;
} LIBVIRT_0.9.8;
# .... define new API here using predicted next version number ....
ACK.