1. 20 8月, 2012 5 次提交
  2. 18 8月, 2012 13 次提交
    • E
      virsh: kill some double underscores · 6d96fab9
      Eric Blake 提交于
      C99 says that __foo naming is reserved for the compiler.  Besides,
      we had several different styles in use; this consolidates things
      to set up the typedefs up front then declare the types with
      consistent naming.
      
      * tools/virsh.h: Use consistent struct naming.
      * tools/virsh.c (_vshCommandParser): Likewise.
      6d96fab9
    • E
      virsh: split out virsh-domain.c · f4a7b87d
      Eric Blake 提交于
      The virsh-domain.c file was pretty self-contained; the only
      entry point was the table of command definitions.  The bulk
      of this patch is making more functions in virsh.c reusable.
      A later patch will clean up poor naming choices.
      
      * tools/Makefile.am (virsh_SOURCES): Build virsh-domain.c.
      * tools/virsh-domain.h: New file.
      * tools/virsh.h (virshReportError, vshResetLibvirtError)
      (vshAskReedit, vshStreamSink): Declare.
      * tools/virsh.c: Switch from using .c to .h.
      (virshReportError, vshResetLibvirtError, vshAskReedit)
      (vshStreamSink, prettyCapacity): Export.
      (vshCatchInt): Move...
      * tools/virsh-domain.c: ...into sole user.  Use header.
      f4a7b87d
    • E
      virsh: split out virsh.h · c2e494cc
      Eric Blake 提交于
      Having one .c file include another does not give any compilation
      benefits; move towards modular .o files by first splitting out
      reused declarations into a new virsh.h.  This patch doesn't try
      very hard to see which functions are used or not, to make it
      easier to review the file split.  Future patches can further trim
      the header to be smaller.
      
      * tools/Makefile.am (virsh_SOURCES): List new file, and prepare
      for others.
      * tools/virsh.c: Split declarations...
      * tools/virsh.h: ...into new file, and make several functions
      non-static.
      * tools/virsh-domain-monitor.c (vshGetDomainDescription): Make
      non-static.
      c2e494cc
    • E
      virsh: move vshWatchJob earlier · 8e8809e1
      Eric Blake 提交于
      It's easier to order things in topological order than it is to
      forward declare in one file for use only by one other file.
      
      * tools/virsh.c (vshWatchJob, parseRateStr)
      (vshDomainStateToString, vshDomainStateReasonToString)
      (vshDomainControlStateToString, vshDomainVcpuStateToString): Drop
      useless prototypes.
      * tools/virsh-domain.c (vshWatchJob): Move earlier.
      8e8809e1
    • S
      qemu: support netdevs from <forward mode='hostdev'> networks · 1610b71a
      Shradha Shah 提交于
      For network devices allocated from a network with <forward
      mode='hostdev'>, there is a need to add the newly minted hostdev to
      the hostdevs array.
      
      In this case we also need to call qemuPrepareHostDevices just for this
      one device, as the standard call to initialize all the hostdevs that
      were defined directly in the domain's configuration has already been
      made by the time we allocate a device from a libvirt network, and thus
      have something that needs initializing.
      Signed-off-by: NShradha Shah <sshah@solarflare.com>
      1610b71a
    • S
      network: support <forward mode='hostdev'> in network driver · a818f8cf
      Shradha Shah 提交于
      This patch updates the network driver to properly utilize the new
      attributes/elements that are now in virNetworkDef
      Signed-off-by: NShradha Shah <sshah@solarflare.com>
      Signed-off-by: NLaine Stump <laine@laine.org>
      a818f8cf
    • S
      conf: add function virDevicePCIAddressEqual · 3ebf5484
      Shradha Shah 提交于
      This function is needed by the network driver in a later commit.
      It is useful in functions like networkNotifyActualDevice and
      networkReleaseActualDevice
      3ebf5484
    • S
      network: return netdev name or pci addr of the VF in actualDevice · 2b51a63b
      Shradha Shah 提交于
      The network pool should be able to keep track of both network device
      names and PCI addresses, and return the appropriate one in the
      actualDevice when networkAllocateActualDevice is called.
      Signed-off-by: NShradha Shah <sshah@solarflare.com>
      2b51a63b
    • S
      conf: parser/formatter/rng for <forward mode='hostdev'> · 14460034
      Shradha Shah 提交于
      This patch introduces the new forward mode='hostdev' along with
      attribute managed. Includes updates to the network RNG and new xml
      parser/formatter code.
      Signed-off-by: NShradha Shah <sshah@solarflare.com>
      14460034
    • S
      network: helper function to create interface pool from PF · 1494897b
      Shradha Shah 提交于
      Existing code that creates a list of forwardIfs from a single PF
      was moved to the new utility function networkCreateInterfacePool.
      No functional change.
      Signed-off-by: NShradha Shah <sshah@solarflare.com>
      1494897b
    • S
      conf: move DevicePCIAddress functions to separate file · f9150c81
      Shradha Shah 提交于
      Move the functions the parse/format, and validate PCI addresses to
      their own file so they can be conveniently used in other places
      besides device_conf.c
      
      Refactoring existing code without causing any functional changes to
      prepare for new code.
      
      This patch makes the code reusable.
      Signed-off-by: NShradha Shah <sshah@solarflare.com>
      f9150c81
    • J
      docs: Enhance documentation of log_filters · 395be3c2
      Jiri Denemark 提交于
      Also make sure documentation in libvirtd.conf matches the one from
      logging.html.
      395be3c2
    • J
      conf: Fix ABI stability check for spicevmc channel · d4134642
      Jiri Denemark 提交于
      Change device type of a virtio channel from/to spicevmc is not a user
      visible change. However, spicevmc channels use different default target
      name than other virtio channels. To maintain ABI stability during this
      change target name must be explicitly specified (and equal) in both
      configurations.
      d4134642
  3. 17 8月, 2012 5 次提交
    • K
      network: add support for setting VLANs on Open vSwitch ports · 7d2b91b8
      Kyle Mestery 提交于
      Add the ability to support VLAN tags for Open vSwitch virtual port
      types. To accomplish this, modify virNetDevOpenvswitchAddPort and
      virNetDevTapCreateInBridgePort to take a virNetDevVlanPtr
      argument. When adding the port to the OVS bridge, setup either a
      single VLAN or a trunk port based on the configuration from the
      virNetDevVlanPtr.
      Signed-off-by: NKyle Mestery <kmestery@cisco.com>
      7d2b91b8
    • O
      Fix the indentions of libvirt.h.in · 01aa172c
      Osier Yang 提交于
      Substitute 2 spaces with 4 spaces instead.
      01aa172c
    • O
      qemu: Set swap_hard_limit before hard_limit · 75e5bec9
      Osier Yang 提交于
      Setting hard_limit larger than previous swap_hard_limit must fail,
      it's not that good if one wants to change the swap_hard_limit
      and hard_limit together. E.g.
      
      % virsh memtune rhel6
      hard_limit     : 1000000
      soft_limit     : 1000000
      swap_hard_limit: 1000000
      
      % virsh memtune rhel6 --hard-limit 1000020 --soft-limit 1000020 \
      --swap-hard-limit 1000020 --live
      
      This patch reorder the limits setting to set the swap_hard_limit
      first, hard_limit then, and soft_limit last if it's greater than
      current swap_hard_limit. And soft_limit first, hard_limit then,
      swap_hard_limit last, if not.
      75e5bec9
    • E
      build: fix syntax check during 'make distcheck' · ca9be83d
      Eric Blake 提交于
      'make distcheck' was failing because a syntax check file,
      .sc-start-sc_vulnerable_makefile_CVE-2012-3386, got left
      behind.  I traced it to the 'distdir' rule depending on a
      shortcut syntax-check name rather than the full rule name
      normally used during 'local-check' from maint.mk.
      
      * cfg.mk (distdir): Depend on full rule, not shorthand name.
      ca9be83d
    • E
      build: ship stamp files · b44e6bef
      Eric Blake 提交于
      'make distcheck' fails because the generated ESX and HyperV files
      are (intentionally) marked read-only, but since the stamp file was
      missing, make assumes they need to be rebuilt.  Shipping the stamp
      file solves the problem.
      
      * src/Makefile.am (EXTRA_DIST): Ship stamp files.
      b44e6bef
  4. 16 8月, 2012 10 次提交
    • L
      qemu: support setting vlan tag for <interface type='hostdev'> · 3fdd85bf
      Laine Stump 提交于
      The underlying function to set the vlan tag of an SR-IOV network
      device was already in place (although an extra patch to save/restore
      the original vlan tag was needed), and recent patches added the
      ability to configure a vlan tag. This patch just ties those two
      together.
      
      An SR-IOV device doesn't support vlan trunking, so if anyone tries to
      configure more than a single tag, or set the trunk flag, and error is
      logged.
      3fdd85bf
    • L
      util: properly save/restore original vlan tag for VFs · e979226b
      Laine Stump 提交于
      When a network device that is a VF of an SR-IOV card was assigned to a
      guest using <interface type='hostdev'>, only the MAC address was being
      saved/restored, but the VLAN tag was left untouched. Up to now we
      haven't actually used vlan tags on SR-IOV devices, so the guest would
      have used whatever was set, and left it the same at the end.
      
      The patch following this one will hook up the <vlan> element from the
      interface config, so save/restore of the device state needs to also
      include the vlan tag.
      
      MAC address is being saved as a simple ASCII string in a file named
      for the device under /var/run.  The VLAN tag is now just added at the
      end of that file, after a newline. It might be nicer if the file was
      XML (in case it ever gets more complicated) but at the moment there's
      nothing else on the horizon, and this makes backward compatibility
      easier.
      e979226b
    • O
      qemu: Ensure the cpuset is formatted as expected before passing to cgroup · 29d8ed7a
      Osier Yang 提交于
      The parameter value for cpuset could be in special format like
      "0-10,^7", which is not recognized by cgroup. This patch is to
      ensure the cpuset is formatted as expected before passing it to
      cgroup. As a side effect, after the patch, it parses the cpuset
      early before cgroup setting, to avoid the rollback if cpuset
      parsing fails afterwards.
      29d8ed7a
    • D
      Fix WIN32 conditional for disabling console command · 9ef12b6f
      Daniel P. Berrange 提交于
      The '#endif' for a WIN32 conditional was placed one function
      too high, leaving the impl of the console command enabled
      and referencing functions that were disabled
      9ef12b6f
    • D
      Move some SASL symbols into libvirt_sasl.syms · eed537c5
      Daniel P. Berrange 提交于
      Previous commit:
      
        commit 9093ab77
        Author: Daniel P. Berrange <berrange@redhat.com>
        Date:   Wed Jul 18 17:03:17 2012 +0100
      
          Add lots of internal symbols to libvirt_private.syms
      
      mistakenly put some conditional SASL symbols in libvirt_private.syms
      instead of libvirt_sasl.syms
      eed537c5
    • E
      build: avoid warnings on older gcc · 42af2167
      Eric Blake 提交于
      A previous patch (c606671a) pulled in a newer version of
      stat-time.h from gnulib, which causes some warnings in older gcc:
      
        CC     libvirt_driver_storage_la-storage_backend.lo
      cc1: warnings being treated as errors
      In file included from ../../src/storage/storage_backend.c:59:
      ../../gnulib/lib/stat-time.h:55: error: no previous prototype for 'get_stat_atime_ns' [-Wmissing-prototypes]
      
      Upstream gnulib argues that these warnings are stupid (and I agree;
      see <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113>), and has
      used a modern gcc feature (#pragma GCC diagnostic push) to avoid the
      warning.  But we still aim to compile on RHEL 6.3, with gcc 4.4.6
      (not to mention even older platforms like RHEL 5), and therefore
      the warning trips up our default of development with -Werror.
      
      It took me a while to figure out how to make our set of warnings
      smaller on older gcc without losing the benefit of the warnings
      when using newer gcc (such as the one on Fedora 17), but this
      should do the trick.
      
      * m4/virt-compile-warnings.m4 (LIBVIRT_COMPILE_WARNINGS): Avoid
      warnings that gnulib can't silence on older gcc.
      42af2167
    • L
      network: make network driver vlan-aware · 4eb4c6fa
      Laine Stump 提交于
      The network driver now looks for the vlan element in network and
      portgroup objects, and logs an error at network define time if a vlan
      is requested for a network type that doesn't support it. (Currently
      vlan configuration is only supported for openvswitch networks, and
      networks used to do hostdev assignment of SR-IOV VFs.)
      
      At runtime, the three potential sources of vlan information are
      examined in this order: interface, chosen portgroup, network, and the
      first that is non-empty is used.  Another check for valid network type
      is made at this time, since the interface may have requested a vlan (a
      legal thing to have in the interface config, since it's not known
      until runtime if the chosen network will actually support it).
      
      Since we must also check for domains requesting vlans for unsupported
      connection types even if they are type='network', and since
      networkAllocateActualDevice() is being called in exactly the correct
      places, and has all of the necessary information to check, I slightly
      modified the logic of that function so that interfaces that aren't
      type='network' don't just return immediately. Instead, they also
      perform all the same validation for supported features. Because of
      this, it's not necessary to make this identical check in the other
      three places that would normally require it: 1) qemu domain startup,
      2) qemu device hotplug, 3) lxc domain startup.
      
      This can be seen as a first step in consolidating network-related
      functionality into the network driver, rather than having copies of
      the same code spread around in multiple places; this will make it
      easier to split the network parts off into a separate daemon, as we've
      discussed recently.
      4eb4c6fa
    • L
      conf: add <vlan> element to network and domain interface elements · 3f9274a5
      Laine Stump 提交于
      The following config elements now support a <vlan> subelements:
      
      within a domain: <interface>, and the <actual> subelement of <interface>
      within a network: the toplevel, as well as any <portgroup>
      
      Each vlan element must have one or more <tag id='n'/> subelements.  If
      there is more than one tag, it is assumed that vlan trunking is being
      requested. If trunking is required with only a single tag, the
      attribute "trunk='yes'" should be added to the toplevel <vlan>
      element.
      
      Some examples:
      
        <interface type='hostdev'/>
          <vlan>
            <tag id='42'/>
          </vlan>
          <mac address='52:54:00:12:34:56'/>
          ...
        </interface>
      
        <network>
          <name>vlan-net</name>
          <vlan trunk='yes'>
            <tag id='30'/>
          </vlan>
          <virtualport type='openvswitch'/>
        </network>
      
        <interface type='network'/>
          <source network='vlan-net'/>
          ...
        </interface>
      
        <network>
          <name>trunk-vlan</name>
          <vlan>
            <tag id='42'/>
            <tag id='43'/>
          </vlan>
          ...
        </network>
      
        <network>
          <name>multi</name>
          ...
          <portgroup name='production'/>
            <vlan>
              <tag id='42'/>
            </vlan>
          </portgroup>
          <portgroup name='test'/>
            <vlan>
              <tag id='666'/>
            </vlan>
          </portgroup>
        </network>
      
        <interface type='network'/>
          <source network='multi' portgroup='test'/>
          ...
        </interface>
      
      IMPORTANT NOTE: As of this patch there is no backend support for the
      vlan element for *any* network device type. When support is added in
      later patches, it will only be for those select network types that
      support setting up a vlan on the host side, without the guest's
      involvement. (For example, it will be possible to configure a vlan for
      a guest connected to an openvswitch bridge, but it won't be possible
      to do that for one that is connected to a standard Linux host bridge.)
      3f9274a5
    • L
      util: add virNetDevVlanType · cfbdd005
      Laine Stump 提交于
      To allow for the possibility of vlan "trunks", which have more than
      one vlan tag associated with them, we need a vlan struct. Since it
      will be used by multiple files in src/util, src/conf, src/network, and
      src/qemu, it must be defined in src/util. Unfortunately there isn't
      currently a common file for simple netdev data definitions, so I
      created a new file.
      cfbdd005
    • L
      schema: fix some problems in network/interface schemas · e4a199a1
      Laine Stump 提交于
      <portgroup> allows a <bandwidth> element, but the schema didn't have
      this. Since this makes for multiple elements in portgroup, they must
      be interleaved.
      
      <interface type='bridge'> needs to allow <virtualport> elements
      for openvswitch, but the schema didn't allow this.
      e4a199a1
  5. 15 8月, 2012 7 次提交
    • L
      util: include memory.h even if WITH_VIRTUALPORT isn't defined · 5faff3d3
      Laine Stump 提交于
      This caused compilation of virnetdevvportprofile.c to fail on systems
      without IFLA support in netlink (these are netlink commands used to
      configure the VF's of SR-IOV network devices).
      5faff3d3
    • D
      Fix virJSONValueToString prototype for Mingw32 · f376d24e
      Daniel P. Berrange 提交于
      Fix build on platforms lacking YAJL library by adding missing
      'bool pretty' parameter to virJSONValueToString.
      f376d24e
    • D
      Update libvirtd --help output to match code · c7447ab1
      Doug Goldstein 提交于
      Updated the paths that libvirtd --help says are used when run as
      non-root to match what the code actually does.
      c7447ab1
    • D
      Update paths in man page to reflect libvirtd code · 7e2f6683
      Doug Goldstein 提交于
      Updated the paths in the man page to reflect what the code in libvirtd
      does. In addition broke out the FILES section into two subsections for
      files used when run as root and files used when run as non-root.
      Provided information about the defaults that libvirtd uses when running
      as non-root and when XDG_CONFIG_HOME and XDG_RUNTIME_DIR are not set in
      the environment.
      7e2f6683
    • D
      Replace unset REMOTE_PID_FILE with proper value · 910041ba
      Doug Goldstein 提交于
      REMOTE_PID_FILE is no longer used in the source or the build process but
      the man page still used it resulting in no file name being displayed.
      The same value that the libvirtd daemon code uses is now used in the man
      page.
      910041ba
    • D
      Fix man page file paths to real paths · 9cdd73a2
      Doug Goldstein 提交于
      Currently the man page has paths that start with @sysconfdir@,
      @localstatedir@ and @remote_pid_file@. The sed command attempts to
      replace these during the build but unfortunately pod2man gets to the
      files first and escapes the @ character resulting in the sed not
      working. This removes the @ character and makes the paths correct.
      9cdd73a2
    • D
      Refactor RPC client private data setup · 39b5e4d4
      Daniel P. Berrange 提交于
      Currently there is a hook function that is invoked when a
      new client connection comes in, which allows an app to
      setup private data. This setup will make it difficult to
      serialize client state during process re-exec(). Change to
      a model where the app registers a callback when creating
      the virNetServerPtr instance, which is used to allocate
      the client private data immediately during virNetClientPtr
      construction.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      39b5e4d4