mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 06:50:22 +03:00
src: add constants for domain stats 'net.' parameters
Contrary to most APIs returning typed parameters, there are no constants defined for the domain stats data keys. This is was because many of the keys needs to be dynamically constructed using one or more array index values. It is possible to define constants while still supporting dynamic array indexes by simply defining the prefixes and suffixes as constants. The consuming code can then combine the constants with array index value. With this approach, it is practical to add constants for the domain stats API keys. Reviewed-by: Peter Krempa <pkrempa@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
b040ee0c98
commit
88bae83ea9
@ -3202,6 +3202,108 @@ struct _virDomainStatsRecord {
|
||||
*/
|
||||
# define VIR_DOMAIN_STATS_CUSTOM_SUFFIX_TYPE_MAX ".max"
|
||||
|
||||
|
||||
/**
|
||||
* VIR_DOMAIN_STATS_NET_COUNT:
|
||||
*
|
||||
* Number of network interfaces on this domain as unsigned int.
|
||||
*
|
||||
* Since: 11.2.0
|
||||
*/
|
||||
# define VIR_DOMAIN_STATS_NET_COUNT "net.count"
|
||||
|
||||
/**
|
||||
* VIR_DOMAIN_STATS_NET_PREFIX:
|
||||
*
|
||||
* The parameter name prefix to access each interface entry. Concatenate the
|
||||
* prefix, the entry number formatted as an unsigned integer and one of the
|
||||
* network suffix parameters to form a complete parameter name.
|
||||
*
|
||||
* Since: 11.2.0
|
||||
*/
|
||||
# define VIR_DOMAIN_STATS_NET_PREFIX "net."
|
||||
|
||||
/**
|
||||
* VIR_DOMAIN_STATS_NET_SUFFIX_NAME:
|
||||
*
|
||||
* Name of the interface as string.
|
||||
*
|
||||
* Since: 11.2.0
|
||||
*/
|
||||
# define VIR_DOMAIN_STATS_NET_SUFFIX_NAME ".name"
|
||||
|
||||
/**
|
||||
* VIR_DOMAIN_STATS_NET_SUFFIX_RX_BYTES:
|
||||
*
|
||||
* Bytes received as unsigned long long.
|
||||
*
|
||||
* Since: 11.2.0
|
||||
*/
|
||||
# define VIR_DOMAIN_STATS_NET_SUFFIX_RX_BYTES ".rx.bytes"
|
||||
|
||||
/**
|
||||
* VIR_DOMAIN_STATS_NET_SUFFIX_RX_PKTS:
|
||||
*
|
||||
* Packets received as unsigned long long.
|
||||
*
|
||||
* Since: 11.2.0
|
||||
*/
|
||||
# define VIR_DOMAIN_STATS_NET_SUFFIX_RX_PKTS ".rx.pkts"
|
||||
|
||||
/**
|
||||
* VIR_DOMAIN_STATS_NET_SUFFIX_RX_ERRS:
|
||||
*
|
||||
* Receive errors as unsigned long long.
|
||||
*
|
||||
* Since: 11.2.0
|
||||
*/
|
||||
# define VIR_DOMAIN_STATS_NET_SUFFIX_RX_ERRS ".rx.errs"
|
||||
|
||||
/**
|
||||
* VIR_DOMAIN_STATS_NET_SUFFIX_RX_DROP:
|
||||
*
|
||||
* Receive packets dropped as unsigned long long.
|
||||
*
|
||||
* Since: 11.2.0
|
||||
*/
|
||||
# define VIR_DOMAIN_STATS_NET_SUFFIX_RX_DROP ".rx.drop"
|
||||
|
||||
/**
|
||||
* VIR_DOMAIN_STATS_NET_SUFFIX_TX_BYTES:
|
||||
*
|
||||
* Bytes transmitted as unsigned long long.
|
||||
*
|
||||
* Since: 11.2.0
|
||||
*/
|
||||
# define VIR_DOMAIN_STATS_NET_SUFFIX_TX_BYTES ".tx.bytes"
|
||||
|
||||
/**
|
||||
* VIR_DOMAIN_STATS_NET_SUFFIX_TX_PKTS:
|
||||
*
|
||||
* Packets transmitted as unsigned long long.
|
||||
*
|
||||
* Since: 11.2.0
|
||||
*/
|
||||
# define VIR_DOMAIN_STATS_NET_SUFFIX_TX_PKTS ".tx.pkts"
|
||||
|
||||
/**
|
||||
* VIR_DOMAIN_STATS_NET_SUFFIX_TX_ERRS:
|
||||
*
|
||||
* Transmission errors as unsigned long long.
|
||||
*
|
||||
* Since: 11.2.0
|
||||
*/
|
||||
# define VIR_DOMAIN_STATS_NET_SUFFIX_TX_ERRS ".tx.errs"
|
||||
|
||||
/**
|
||||
* VIR_DOMAIN_STATS_NET_SUFFIX_TX_DROP:
|
||||
*
|
||||
* Transmit packets dropped as unsigned long long.
|
||||
*
|
||||
* Since: 11.2.0
|
||||
*/
|
||||
# define VIR_DOMAIN_STATS_NET_SUFFIX_TX_DROP ".tx.drop"
|
||||
|
||||
/**
|
||||
* virDomainStatsTypes:
|
||||
*
|
||||
|
@ -12276,19 +12276,8 @@ virConnectGetDomainCapabilities(virConnectPtr conn,
|
||||
*
|
||||
* VIR_DOMAIN_STATS_INTERFACE:
|
||||
* Return network interface statistics (from domain point of view).
|
||||
* The typed parameter keys are in this format:
|
||||
*
|
||||
* "net.count" - number of network interfaces on this domain
|
||||
* as unsigned int.
|
||||
* "net.<num>.name" - name of the interface <num> as string.
|
||||
* "net.<num>.rx.bytes" - bytes received as unsigned long long.
|
||||
* "net.<num>.rx.pkts" - packets received as unsigned long long.
|
||||
* "net.<num>.rx.errs" - receive errors as unsigned long long.
|
||||
* "net.<num>.rx.drop" - receive packets dropped as unsigned long long.
|
||||
* "net.<num>.tx.bytes" - bytes transmitted as unsigned long long.
|
||||
* "net.<num>.tx.pkts" - packets transmitted as unsigned long long.
|
||||
* "net.<num>.tx.errs" - transmission errors as unsigned long long.
|
||||
* "net.<num>.tx.drop" - transmit packets dropped as unsigned long long.
|
||||
* The VIR_DOMAIN_STATS_NET_* constants define the known typed
|
||||
* parameter keys.
|
||||
*
|
||||
* VIR_DOMAIN_STATS_BLOCK:
|
||||
* Return block devices statistics. By default,
|
||||
|
@ -17180,7 +17180,8 @@ qemuDomainGetStatsVcpu(virQEMUDriver *driver G_GNUC_UNUSED,
|
||||
|
||||
#define QEMU_ADD_NET_PARAM(params, num, name, value) \
|
||||
if (value >= 0)\
|
||||
virTypedParamListAddULLong((params), (value), "net.%zu.%s", (num), (name));
|
||||
virTypedParamListAddULLong((params), (value), \
|
||||
VIR_DOMAIN_STATS_NET_PREFIX "%zu" VIR_DOMAIN_STATS_NET_SUFFIX_ ## name, (num));
|
||||
|
||||
static void
|
||||
qemuDomainGetStatsInterface(virQEMUDriver *driver G_GNUC_UNUSED,
|
||||
@ -17193,7 +17194,8 @@ qemuDomainGetStatsInterface(virQEMUDriver *driver G_GNUC_UNUSED,
|
||||
if (!virDomainObjIsActive(dom))
|
||||
return;
|
||||
|
||||
virTypedParamListAddUInt(params, dom->def->nnets, "net.count");
|
||||
virTypedParamListAddUInt(params, dom->def->nnets,
|
||||
VIR_DOMAIN_STATS_NET_COUNT);
|
||||
|
||||
/* Check the path is one of the domain's network interfaces. */
|
||||
for (i = 0; i < dom->def->nnets; i++) {
|
||||
@ -17206,7 +17208,8 @@ qemuDomainGetStatsInterface(virQEMUDriver *driver G_GNUC_UNUSED,
|
||||
|
||||
actualType = virDomainNetGetActualType(net);
|
||||
|
||||
virTypedParamListAddString(params, net->ifname, "net.%zu.name", i);
|
||||
virTypedParamListAddString(params, net->ifname,
|
||||
VIR_DOMAIN_STATS_NET_PREFIX "%zu" VIR_DOMAIN_STATS_NET_SUFFIX_NAME, i);
|
||||
|
||||
if (actualType == VIR_DOMAIN_NET_TYPE_VHOSTUSER) {
|
||||
if (virNetDevOpenvswitchInterfaceStats(net->ifname, &tmp) < 0) {
|
||||
@ -17221,14 +17224,14 @@ qemuDomainGetStatsInterface(virQEMUDriver *driver G_GNUC_UNUSED,
|
||||
}
|
||||
}
|
||||
|
||||
QEMU_ADD_NET_PARAM(params, i, "rx.bytes", tmp.rx_bytes);
|
||||
QEMU_ADD_NET_PARAM(params, i, "rx.pkts", tmp.rx_packets);
|
||||
QEMU_ADD_NET_PARAM(params, i, "rx.errs", tmp.rx_errs);
|
||||
QEMU_ADD_NET_PARAM(params, i, "rx.drop", tmp.rx_drop);
|
||||
QEMU_ADD_NET_PARAM(params, i, "tx.bytes", tmp.tx_bytes);
|
||||
QEMU_ADD_NET_PARAM(params, i, "tx.pkts", tmp.tx_packets);
|
||||
QEMU_ADD_NET_PARAM(params, i, "tx.errs", tmp.tx_errs);
|
||||
QEMU_ADD_NET_PARAM(params, i, "tx.drop", tmp.tx_drop);
|
||||
QEMU_ADD_NET_PARAM(params, i, RX_BYTES, tmp.rx_bytes);
|
||||
QEMU_ADD_NET_PARAM(params, i, RX_PKTS, tmp.rx_packets);
|
||||
QEMU_ADD_NET_PARAM(params, i, RX_ERRS, tmp.rx_errs);
|
||||
QEMU_ADD_NET_PARAM(params, i, RX_DROP, tmp.rx_drop);
|
||||
QEMU_ADD_NET_PARAM(params, i, TX_BYTES, tmp.tx_bytes);
|
||||
QEMU_ADD_NET_PARAM(params, i, TX_PKTS, tmp.tx_packets);
|
||||
QEMU_ADD_NET_PARAM(params, i, TX_ERRS, tmp.tx_errs);
|
||||
QEMU_ADD_NET_PARAM(params, i, TX_DROP, tmp.tx_drop);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user