network: add public APIs for network port object

Introduce a new virNetworPort object that will present an attachment to
a virtual network from a VM.

Reviewed-by: Laine Stump <laine@laine.org>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrangé
2019-06-17 15:19:54 +01:00
parent 378f03d545
commit c08fc8d199
9 changed files with 737 additions and 0 deletions
+122
View File
@@ -46,6 +46,22 @@ typedef struct _virNetwork virNetwork;
*/
typedef virNetwork *virNetworkPtr;
/**
* virNetworkPort:
*
* a virNetworkPort is a private structure representing a virtual network
* port
*/
typedef struct _virNetworkPort virNetworkPort;
/**
* virNetworkPortPtr:
*
* a virNetworkPortPtr is pointer to a virNetworkPort private structure,
* this is the type used to reference a virtual network port in the API.
*/
typedef virNetworkPort *virNetworkPortPtr;
/*
* Get connection from network.
*/
@@ -333,4 +349,110 @@ int virConnectNetworkEventRegisterAny(virConnectPtr conn,
int virConnectNetworkEventDeregisterAny(virConnectPtr conn,
int callbackID);
virNetworkPortPtr
virNetworkPortLookupByUUID(virNetworkPtr net,
const unsigned char *uuid);
virNetworkPortPtr
virNetworkPortLookupByUUIDString(virNetworkPtr net,
const char *uuidstr);
typedef enum {
VIR_NETWORK_PORT_CREATE_RECLAIM = (1 << 0), /* reclaim existing used resources */
} virNetworkPortCreateFlags;
virNetworkPortPtr
virNetworkPortCreateXML(virNetworkPtr net,
const char *xmldesc,
unsigned int flags);
virNetworkPtr
virNetworkPortGetNetwork(virNetworkPortPtr port);
char *
virNetworkPortGetXMLDesc(virNetworkPortPtr port,
unsigned int flags);
int
virNetworkPortGetUUID(virNetworkPortPtr port,
unsigned char *uuid);
int
virNetworkPortGetUUIDString(virNetworkPortPtr port,
char *buf);
/* Management of interface parameters */
/**
* VIR_NETWORK_PORT_BANDWIDTH_IN_AVERAGE:
*
* Macro represents the inbound average of NIC bandwidth, as a uint.
*/
# define VIR_NETWORK_PORT_BANDWIDTH_IN_AVERAGE "inbound.average"
/**
* VIR_NETWORK_PORT_BANDWIDTH_IN_PEAK:
*
* Macro represents the inbound peak of NIC bandwidth, as a uint.
*/
# define VIR_NETWORK_PORT_BANDWIDTH_IN_PEAK "inbound.peak"
/**
* VIR_NETWORK_PORT_BANDWIDTH_IN_BURST:
*
* Macro represents the inbound burst of NIC bandwidth, as a uint.
*/
# define VIR_NETWORK_PORT_BANDWIDTH_IN_BURST "inbound.burst"
/**
* VIR_NETWORK_PORT_BANDWIDTH_IN_FLOOR:
*
* Macro represents the inbound floor of NIC bandwidth, as a uint.
*/
# define VIR_NETWORK_PORT_BANDWIDTH_IN_FLOOR "inbound.floor"
/**
* VIR_NETWORK_PORT_BANDWIDTH_OUT_AVERAGE:
*
* Macro represents the outbound average of NIC bandwidth, as a uint.
*/
# define VIR_NETWORK_PORT_BANDWIDTH_OUT_AVERAGE "outbound.average"
/**
* VIR_NETWORK_PORT_BANDWIDTH_OUT_PEAK:
*
* Macro represents the outbound peak of NIC bandwidth, as a uint.
*/
# define VIR_NETWORK_PORT_BANDWIDTH_OUT_PEAK "outbound.peak"
/**
* VIR_NETWORK_PORT_BANDWIDTH_OUT_BURST:
*
* Macro represents the outbound burst of NIC bandwidth, as a uint.
*/
# define VIR_NETWORK_PORT_BANDWIDTH_OUT_BURST "outbound.burst"
int
virNetworkPortSetParameters(virNetworkPortPtr port,
virTypedParameterPtr params,
int nparams,
unsigned int flags);
int
virNetworkPortGetParameters(virNetworkPortPtr port,
virTypedParameterPtr *params,
int *nparams,
unsigned int flags);
int
virNetworkPortDelete(virNetworkPortPtr port,
unsigned int flags);
int
virNetworkListAllPorts(virNetworkPtr network,
virNetworkPortPtr **ports,
unsigned int flags);
int
virNetworkPortFree(virNetworkPortPtr port);
#endif /* LIBVIRT_NETWORK_H */
+3
View File
@@ -326,6 +326,9 @@ typedef enum {
VIR_ERR_INVALID_DOMAIN_CHECKPOINT = 102, /* invalid domain checkpoint */
VIR_ERR_NO_DOMAIN_CHECKPOINT = 103, /* domain checkpoint not found */
VIR_ERR_NO_DOMAIN_BACKUP = 104, /* domain backup job id not found */
VIR_ERR_INVALID_NETWORK_PORT = 105, /* invalid network port object */
VIR_ERR_NETWORK_PORT_EXIST = 106, /* the network port already exist */
VIR_ERR_NO_NETWORK_PORT = 107, /* network port not found */
# ifdef VIR_ENUM_SENTINELS
VIR_ERR_NUMBER_LAST