Re: Report guest IPs as XML or struct?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Seems like we agree on struct. So this is my proposal:

typedef enum {
    VIR_INTERFACE_TYPE_UNKNOWN = 0,
    VIR_INTERFACE_TYPE_ETHER = 1,
    VIR_INTERFACE_TYPE_PPP = 2,
    /* we can add things here */
#idef VIR_ENUM_SENTINELS
    VIR_INTERFACE_TYPE_LAST
#endif
} virDomainInterfaceType;

typedef enum {
    VIR_IP_ADDR_TYPE_IPV4,
    VIR_IP_ADDR_TYPE_IPV6,

#ifdef VIR_ENUM_SENTINELS
    VIR_IP_ADDR_TYPE_LAST
#endif
} virIPAddrType;


typedef struct _virDomainInterfaceIPAddress virDomainIPAddress;
typedef virDomainIPAddress *virDomainIPAddressPtr;
struct _virDomainInterfaceIPAddress {
    int type;       /* virIPAddrType */
    char *addr;     /* IP address */
    int prefix;     /* IP address prefix */
};

typedef struct _virDomainInterface virDomainInterface;
typedef virDomainInterface *virDomainInterfacePtr;
struct _virDomainInterface {
    char *name;                     /* interface name */
    int type;                       /* virDomainInterfaceType */
    char *hwaddr;                   /* hardware address */
    unsigned int ip_addrs_count;    /* number of items in @ip_addr */
    virDomainIPAddressPtr ip_addrs; /* array of IP addresses */
    void *padding[20];              /* maybe we need this? */
};

typedef enum {
    VIR_DOMAIN_INTERFACE_ADDRS_DEFAULT      = 0, /* hypervisor choice */
    VIR_DOMAIN_INTERFACE_ADDRS_GUEST_AGENT  = 1, /* use guest agent */
    VIR_DOMAIN_INTERFACE_ADDRS_NWFILTER     = 2, /* use nwfilter learning code */
   /* etc ... */
} virDomainInterfacesAddressesMethod;

int virDomainInterfacesAddresses(virDomainPtr dom,
                                 virDomainInterfacePtr ifaces,
				 unsigned int method
                                 unsigned int flags);


This API would dynamically allocate return array for all interfaces presented in @dom.
We are already doing this in some places, so I think it's okay. With @method users
can choose desired way to get info. I guess if we misuse @flags for that it would be
just a waste of space, since methods are mutually exclusive. Hence, @flags are currently unused.

Michal

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]