Hypervisors provide means for controling link state of virtual NICs. Ability
to control this can be usefully used for various aplications. These patches
add (or propose) an API for controling link states of these nics.
API functions added:
-----------------------------------------------------------------------
int virDomainInterfaceLinkSetState(virDomainPtr dom,
const char *path,
unsigned int state,
unsigned int flags);
This function sets link state for a NIC. A NIC is identified by the domain and
path (which is MAC address of the NIC (in a string representation)).
States are represented by the virInterfaceLinkStates enum.
Flags determine manipulation impact of the command (live/persistent).
int virDomainInterfaceLinkGetState(virDomainPtr dom,
const char *path,
unsigned int flags);
This function requests the interface state and returns it
as the return value.
Peter Krempa (10):
linkstate: XML for modification of interface's link state.
linkstate: Public API for modifying link state on interfaces
linkstate: Internal API for interface link state
linkstate: Implementation of the public API
linkstate: Wire up the remote protocol
linkstate: Add parsing code for new XML element
linkstate: Add usage of the new api to virsh
linkstate: qemu: Add monitor support for setting link state
linkstate: qemu: Add detection of link state setting capability.
linkstate: qemu: Add link state modification support to qemu driver.
docs/formatdomain.html.in | 21 ++++
- add examples for the new element
docs/schemas/domain.rng | 11 ++
- add grammar for the new element
include/libvirt/libvirt.h.in | 24 +++++
- add public API headers
- add link states enum
src/conf/domain_conf.c | 19 ++++
src/conf/domain_conf.h | 1 +
- add new element and propertyto parsing and
generating of domain configs
src/driver.h | 14 +++-
src/libvirt.c | 122 ++++++++++++++++++++++
src/libvirt_public.syms | 6 +
- add implementation and expose public symbols
src/qemu/qemu_capabilities.c | 5 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_driver.c | 228 ++++++++++++++++++++++++++++++++++++++++++
src/qemu/qemu_monitor.c | 19 ++++
src/qemu/qemu_monitor.h | 3 +
src/qemu/qemu_monitor_json.c | 23 ++++
src/qemu/qemu_monitor_json.h | 4 +
src/qemu/qemu_monitor_text.c | 47 +++++++++
src/qemu/qemu_monitor_text.h | 4 +
src/qemu/qemu_process.c | 37 +++++++
- add support for qemu driver
src/remote/remote_driver.c | 2 +
src/remote/remote_protocol.x | 21 ++++-
src/remote_protocol-structs | 16 +++
- remote protocol support for new API
tools/virsh.c | 120 ++++++++++++++++++++++
tools/virsh.pod | 11 ++
- add comands to virsh and documentation
23 files changed, 757 insertions(+), 2 deletions(-)
--
1.7.6