1. 14 4月, 2010 3 次提交
  2. 13 4月, 2010 8 次提交
    • S
      Consolidate interface related functions in interface.c · 5174b02f
      Stefan Berger 提交于
      Changes from v1 to v2:
      - changed function name prefixes to 'iface' from previous 'Iface'
      
      - Further to make make syntax-check pass:
       - indentation fix in interface.h
       - added entry to POTFILES.in
      
      I am consolidating network interface related functions used in nwfilter
      and macvtap code in utils/interface.c. All function names are prefixed
      with 'Iface'. The following functions are now available through
      interface.h:
      
      int ifaceCtrl(const char *name, bool up);
      int ifaceUp(const char *name);
      int ifaceDown(const char *name);
      
      int ifaceCheck(bool reportError, const char *ifname,
                     const unsigned char *macaddr, int ifindex);
      
      int ifaceGetIndex(bool reportError, const char *ifname, int *ifindex);
      
      I added 'int ifindex' as parameter to ifaceCheck to the original
      function and modified the code accordingly.
      5174b02f
    • D
      Fix nodeinfotest on NUMA machines · e7ebe9f3
      Daniel P. Berrange 提交于
      The nodeinfotest was reliant on the host NUMA topology, but all
      the test data files assumed 1 single NUMA node. This test thus
      failed on any NUMA machine with > 1 node
      
      * tests/nodeinfotest.c: Hardcode 1 single numa node
      e7ebe9f3
    • E
      build: include usleep gnulib module · 9819b41a
      Eric Blake 提交于
      Without this module, attempts to sleep for 1 or more seconds
      on mingw instead become a no-delay no-op.
      
      * bootstrap.conf (gnulib_modules): Add usleep.
      9819b41a
    • D
      Fix spec file for builds without lxc · 505242f8
      Daniel Berteaud 提交于
      * libvirt.spec.in: fix a cut and paste error
      505242f8
    • E
      build: fix syntax-check problems · babaae92
      Eric Blake 提交于
      * .x-sc_prohibit_gettext_noop: Add new exemption.
      * .x-sc_prohibit_test_minus_ao: Likewise.
      * Makefile.am (EXTRA_DIST): Distribute new files.
      * .gitignore: Ignore built file.
      babaae92
    • S
      add nwfilter functions to virsh man page · 281c3c64
      Stefan Berger 提交于
      With Eric Blake's spelling corrections applied.
      
      Unfortunately after the 0.8.0 release, but here's a beginning of the
      documentation of the nwfilter functionality.
      281c3c64
    • D
      Release of libvirt-0.8.0 · bfcca587
      Daniel Veillard 提交于
      * configure.ac docs/news.html.in libvirt.spec.in src/libvirt_public.syms:
        updates for release of 0.8.0
      * po/*.po po/libvirt.pot: updated a lar set of localizations, and merge
        the messages
      bfcca587
    • D
      Add documentation for synchronous hooks · 22de841a
      Daniel Veillard 提交于
      * docs/sitemap.html.in: add in navigation under
        Documentation/Deployment/Hooks
      * docs/hooks.html.in: new doc describing current support for 0.8.0
      22de841a
  3. 12 4月, 2010 3 次提交
  4. 10 4月, 2010 1 次提交
    • S
      nwfilter: Process DHCP option to determine whether packet is a DHCP_OFFER · 55d444cc
      Stefan Berger 提交于
      I mistakenly took the op field in the DHCP message as the DHCP_OFFER
      type. Rather than basing the decision to read the VM's IP address on
      that field, process the appended DHCP options where option 53 indicates
      the actual type of the packet. I am also reading the broadcast address
      of the VM, but don't use it so far.
      55d444cc
  5. 09 4月, 2010 15 次提交
  6. 08 4月, 2010 10 次提交
    • J
      Fix unterminated B<...> in virsh man page · 7ea025ae
      Jiri Denemark 提交于
      7ea025ae
    • D
      Fix up python bindings for new event callbacks · 6df7d55d
      Daniel P. Berrange 提交于
      The generator was disabled for the new event callbacks, since they
      need to be hand written. This patch  adds the C and python glue to
      expose the new APIs in the python binding. The python example
      program is extended to demonstrate of the code
      
      * python/libvirt-override.c: Registration and dispatch of events
         at the C layer
      * python/libvirt-override-virConnect.py: Python glue for events
      * examples/domain-events/events-python/event-test.py: Demo use
        of new event callbacks
      6df7d55d
    • D
      Add missing nwfilter_learnipaddr.c to POTFILES.in · df623372
      Daniel P. Berrange 提交于
      * po/POTFILES.in: Add src/nwfilter/nwfilter_learnipaddr.c
      df623372
    • D
      Fix Win32 portability problems · 3d3af088
      Daniel P. Berrange 提交于
      The network filter / snapshot / hooks code introduced some
      non-portable pices that broke the win32 build
      
      * configure.ac: Check for net/ethernet.h required by nwfile config
         parsing code
      * src/conf/nwfilter_conf.c: Define ethernet protocol  constants
        if net/ethernet.h is missing
      * src/util/hooks.c: Disable hooks build on Win32 since it lacks
        fork/exec/pipe
      * src/util/threads-win32.c: Fix unchecked return value
      * tools/virsh.c: Disable SIGPIPE on Win32 since it doesn't exist.
        Fix non-portable strftime() formats
      3d3af088
    • S
      nwfilter: fix for directionality of ICMP traffic · 9fd54a78
      Stefan Berger 提交于
      Changes from V1 to V2 of this patch
      - I had reversed the logic thinking that icmp type 0 is a echo
      request,but it's reply -- needed to reverse the logic
      - Found that ebtables takes the --ip-tos argument only as a hex number
      
      This patch enables the skipping of some of the ICMP traffic rules on the
      iptables level under certain circumstances so that the following filter
      properly enables unidirectional pings:
      
      <filter name='testcase'>
          <uuid>d6b1a2af-def6-2898-9f8d-4a74e3c39558</uuid>
          <!-- allow incoming ICMP Echo Request -->
          <rule action='accept' direction='in' priority='500'>
              <icmp type='8'/>
          </rule>
          <!-- allow outgoing ICMP Echo Reply -->
          <rule action='accept' direction='out' priority='500'>
              <icmp type='0'/>
          </rule>
          <!-- drop all other ICMP traffic -->
          <rule action='drop' direction='inout' priority='600'>
              <icmp/>
          </rule>
      </filter>
      9fd54a78
    • M
      esx: Allow 'lsisas1068' as SCSI controller type · 4acab37f
      Matthias Bolte 提交于
      Extend tests to cover all SCSI controller types and document the
      new type.
      
      The lsisas1068 SCSI controller type was added in ESX 4.0. The VMX
      parser reports an error when this controller type is present. This
      makes virsh dumpxml fail for every domain that uses this controller
      type.
      
      This patch fixes this and adds lsisas1068 to the list of accepted
      SCSI controller types.
      
      Reported by Jonathan Kelley.
      4acab37f
    • M
    • D
      Avoid searching for windres when not building for Windows · 9cea2af3
      Diego Elio Pettenò 提交于
      Just checking for a windres tool might hit even on Linux systems when
      building for Linux (e.g.: when using Gentoo and having built binutils
      with multitarget support), and will then fail to link properly at the
      end of the build.
      
      * configure.ac: Avoid searching for windres on non windows target
      9cea2af3
    • S
      Executable does not belong into repository. · edb9d54b
      Stefan Berger 提交于
      Removing the tests/nwfilterxml2xmltest executable that got in with a previous patch.
      edb9d54b
    • S
      nwfilter: Support for learning a VM's IP address · 3bf24abc
      Stefan Berger 提交于
      This patch implements support for learning a VM's IP address. It uses
      the pcap library to listen on the VM's backend network interface (tap)
      or the physical ethernet device (macvtap) and tries to capture packets
      with source or destination MAC address of the VM and learn from DHCP
      Offers, ARP traffic, or first-sent IPv4 packet what the IP address of
      the VM's interface is. This then allows to instantiate the network
      traffic filtering rules without the user having to provide the IP
      parameter somewhere in the filter description or in the interface
      description as a parameter. This only supports to detect the parameter
      IP, which is for the assumed single IPv4 address of a VM. There is not
      support for interfaces that may have multiple  IP addresses (IP
      aliasing) or IPv6 that may then require more than one valid IP address
      to be detected. A VM can have multiple independent interfaces that each
      uses a different IP address and in that case it will be attempted to
      detect each one of the address independently.
      
      So, when for example an interface description in the domain XML has
      looked like this up to now:
      
          <interface type='bridge'>
            <source bridge='mybridge'/>
            <model type='virtio'/>
            <filterref filter='clean-traffic'>
              <parameter name='IP' value='10.2.3.4'/>
            </filterref>
          </interface>
      
      you may omit the IP parameter:
      
          <interface type='bridge'>
            <source bridge='mybridge'/>
            <model type='virtio'/>
            <filterref filter='clean-traffic'/>
          </interface>
      
      Internally I am walking the 'tree' of a VM's referenced network filters
      and determine with the given variables which variables are missing. Now,
      the above IP parameter may be missing and this causes a libvirt-internal
      thread to be started that uses the pcap library's API to listen to the
      backend interface  (in case of macvtap to the physical interface) in an
      attempt to determine the missing IP parameter. If the backend interface
      disappears the thread terminates assuming the VM was brought down. In
      case of a macvtap device a timeout is being used to wait for packets
      from the given VM (filtering by VM's interface MAC address). If the VM's
      macvtap device disappeared the thread also terminates. In all other
      cases it tries to determine the IP address of the VM and will then apply
      the rules late on the given interface, which would have happened
      immediately if the IP parameter had been explicitly given. In case an
      error happens while the firewall rules are applied, the VM's backend
      interface is 'down'ed preventing it to communicate. Reasons for failure
      for applying the network firewall rules may that an ebtables/iptables
      command failes or OOM errors. Essentially the same failure reasons may
      occur as when the firewall rules are applied immediately on VM start,
      except that due to the late application of the filtering rules the VM
      now is already running and cannot be hindered anymore from starting.
      Bringing down the whole VM would probably be considered too drastic.
      While a VM's IP address is attempted to be determined only limited
      updates to network filters are allowed. In particular it is prevented
      that filters are modified in such a way that they would introduce new
      variables.
      
      A caveat: The algorithm does not know which one is the appropriate IP
      address of a VM. If the VM spoofs an IP address in its first ARP traffic
      or IPv4 packets its filtering rules will be instantiated for this IP
      address, thus 'locking' it to the found IP address. So, it's still
      'safer' to explicitly provide the IP address of a VM's interface in the
      filter description if it is known beforehand.
      
      * configure.ac: detect libpcap
      * libvirt.spec.in: require libpcap[-devel] if qemu is built
      * src/internal.h: add the new ATTRIBUTE_PACKED define
      * src/Makefile.am src/libvirt_private.syms: add the new modules and symbols
      * src/nwfilter/nwfilter_learnipaddr.[ch]: new module being added
      * src/nwfilter/nwfilter_driver.c src/conf/nwfilter_conf.[ch]
        src/nwfilter/nwfilter_ebiptables_driver.[ch]
        src/nwfilter/nwfilter_gentech_driver.[ch]: plu the new functionality in
      * tests/nwfilterxml2xmltest: extend testing
      3bf24abc