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

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

Reply via email to