/**
* virCHMonitorBuildNetJson:
* @net: pointer to a guest network definition
+ * @netindex: index of the guest network definition
* @jsonstr: returned network json
*
* Build net json to send to CH
* Returns 0 on success or -1 in case of error
*/
int
-virCHMonitorBuildNetJson(virDomainNetDef *net, char **jsonstr)
+virCHMonitorBuildNetJson(virDomainNetDef *net,
+ int netindex,
+ char **jsonstr)
{
char macaddr[VIR_MAC_STRING_BUFLEN];
g_autoptr(virJSONValue) net_json = virJSONValueNewObject();
virDomainNetType actualType = virDomainNetGetActualType(net);
+ g_autofree char *id = g_strdup_printf("%s_%d", CH_NET_ID_PREFIX, netindex);
+ if (virJSONValueObjectAppendString(net_json, "id", id) < 0)
+ return -1;
+
if (actualType == VIR_DOMAIN_NET_TYPE_ETHERNET &&
net->guestIP.nips == 1) {
const virNetDevIPAddr *ip;
#define VIRCH_THREAD_NAME_LEN 16
+#define CH_NET_ID_PREFIX "net"
+
typedef enum {
virCHThreadTypeEmulator,
virCHThreadTypeVcpu,
int virCHMonitorGetIOThreads(virCHMonitor *mon,
virDomainIOThreadInfo ***iothreads);
int
-virCHMonitorBuildNetJson(virDomainNetDef *netdef, char **jsonstr);
+virCHMonitorBuildNetJson(virDomainNetDef *netdef,
+ int netindex,
+ char **jsonstr);
nicindexes, nnicindexes) < 0)
return -1;
- if (virCHMonitorBuildNetJson(vmdef->nets[i], &payload) < 0) {
+ if (virCHMonitorBuildNetJson(vmdef->nets[i], i, &payload) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Failed to build net json"));
return -1;