1. 10 11月, 2011 5 次提交
    • D
      Add an API for retrieving the MAC address of an interface · ccc24347
      Daniel P. Berrange 提交于
      * src/util/bridge.c, src/util/bridge.h: Add virNetDevGetMAC
      ccc24347
    • D
      Expose MTU management APIs · dfb454ce
      Daniel P. Berrange 提交于
      The MTU management APIs are useful to other code inside libvirt,
      so should be exposed as non-static APIs.
      
      * src/util/bridge.c, src/util/bridge.h: Expose virNetDevSetMTU,
        virNetDevSetMTUFromDevice & virNetDevGetMTU
      dfb454ce
    • D
      Turn two int parameters into bools in bridge APIs · d8a62d95
      Daniel P. Berrange 提交于
      * src/util/bridge.c, src/util/bridge.h: s/int/bool/ in
        virNetDevSetOnline and virNetDevBridgeSetSTP
      d8a62d95
    • D
      Rename all brXXXX APIs to follow new convention · dced27c8
      Daniel P. Berrange 提交于
      The existing brXXX APIs in src/util/bridge.h are renamed to
      follow one of three different conventions
      
       - virNetDevXXX       - operations for any type of interface
       - virNetDevBridgeXXX - operations for bridge interfaces
       - virNetDevTapXXX    - operations for tap interfaces
      
      * src/util/bridge.h, src/util/bridge.c: Rename all APIs
      * src/lxc/lxc_driver.c, src/network/bridge_driver.c,
        src/qemu/qemu_command.c, src/uml/uml_conf.c,
        src/uml/uml_driver.c: Update for API renaming
      dced27c8
    • D
      Remove 'brControl' object · 6cfeb9a7
      Daniel P. Berrange 提交于
      The bridge management APIs in src/util/bridge.c require a brControl
      object to be passed around. This holds the file descriptor for the
      control socket. This extra object complicates use of the API for
      only a minor efficiency gain, which is in turn entirely offset by
      the need to fork/exec the brctl command for STP configuration.
      
      This patch removes the 'brControl' object entirely, instead opening
      the control socket & closing it again within the scope of each method.
      
      The parameter names for the APIs are also made to consistently use
      'brname' for bridge device name, and 'ifname' for an interface
      device name. Finally annotations are added for non-NULL parameters
      and return check validation
      
      * src/util/bridge.c, src/util/bridge.h: Remove brControl object
        and update API parameter names & annotations.
      * src/lxc/lxc_driver.c, src/network/bridge_driver.c,
        src/uml/uml_conf.h, src/uml/uml_conf.c, src/uml/uml_driver.c,
        src/qemu/qemu_command.c, src/qemu/qemu_conf.h,
        src/qemu/qemu_driver.c: Remove reference to 'brControl' object
      6cfeb9a7
  2. 28 10月, 2011 1 次提交
    • T
      bridge: modify for use when sVirt is enabled with qemu · 27908453
      Tyler Coumbes 提交于
      This refactors the TAP creation code out of brAddTap into a new
      function brCreateTap to allow it to be used on its own. I have also
      changed ifSetInterfaceMac to brSetInterfaceMac and exported it since
      it is will be needed by code outside of util/bridge.c in the next
      patch.
      
       AUTHORS                 |    1 +
       src/libvirt_bridge.syms |    2 +
       src/util/bridge.c       |  116 +++++++++++++++++++++++++++++++----------------
       src/util/bridge.h       |    9 ++++
       4 files changed, 89 insertions(+), 39 deletions(-)
      27908453
  3. 18 2月, 2011 1 次提交
    • L
      Allow brAddTap to create a tap device that is down · 13ae7a02
      Laine Stump 提交于
      An upcoming patch has a use for a tap device to be created that
      doesn't need to be actually put into the "up" state, and keeping it
      "down" keeps the output of ifconfig from being unnecessarily cluttered
      (ifconfig won't show down interfaces unless you add "-a").
      
      bridge.[ch]: add "up" as an arg to brAddTap()
      uml_conf.c, qemu_command.c: add "up" (set to "true") to brAddTap() call.
      13ae7a02
  4. 24 12月, 2010 1 次提交
    • L
      Replace brSetInetAddress/brSetInetNetmask with brAddInetAddress · 20718b8b
      Laine Stump 提交于
      brSetInetAddress can only set a single IP address on the bridge, and
      uses a method (ioctl(SIOCSETIFADDR)) that only works for IPv4. Replace
      it and brSetInetNetmask with a single function that uses the external
      "ip addr add" command to add an address/prefix to the interface - this
      supports IPv6, and allows adding multiple addresses to the interface.
      
      Although it isn't currently used in the code, we also add a
      brDelInetAddress for completeness' sake.
      
      Also, while we're modifying bridge.c, we change brSetForwardDelay and
      brSetEnableSTP to use the new virCommand API rather than the
      deprecated virRun, and also log an error message in bridge_driver.c if
      either of those fail (previously the failure would be completely
      silent).
      20718b8b
  5. 22 10月, 2010 2 次提交
    • D
      Convert virNetwork to use virSocketAddr everywhere · 090404ac
      Daniel P. Berrange 提交于
      Instead of storing the IP address string in virNetwork related
      structs, store the parsed virSocketAddr. This will make it
      easier to add IPv6 support in the future, by letting driver
      code directly check what address family is present
      
      * src/conf/network_conf.c, src/conf/network_conf.h,
        src/network/bridge_driver.c: Convert to use virSocketAddr
        in virNetwork, instead of char *.
      * src/util/bridge.c, src/util/bridge.h,
        src/util/dnsmasq.c, src/util/dnsmasq.h,
        src/util/iptables.c, src/util/iptables.h: Convert to
        take a virSocketAddr instead of char * for any IP
        address parameters
      * src/util/network.h: Add macros to determine if an address
        is set, and what address family is set.
      090404ac
    • D
      Remove all use of inet_pton and inet_ntop · a8ae7d19
      Daniel P. Berrange 提交于
      The  inet_pton and inet_ntop functions are obsolete, replaced
      by getaddrinfo+getnameinfo with the AI_NUMERICHOST flag set.
      These can be accessed via the virSocket APIs.
      
      The bridge.c code had methods for fetching the IP address of
      a bridge which used inet_ntop. Aside from the use of inet_ntop
      these methods are broken, because a NIC can have multiple
      addresses and this only returns one address. Since the methods
      are never used, just remove them.
      
      * src/conf/network_conf.c, src/nwfilter/nwfilter_learnipaddr.c:
        Replace inet_pton and inet_ntop with virSocket APIs
      * src/util/bridge.c, src/util/bridge.h: Remove unused methods
        which called inet_ntop.
      a8ae7d19
  6. 23 7月, 2010 1 次提交
    • D
      Set a stable & high MAC addr for guest TAP devices on host · 6ea90b84
      Daniel P. Berrange 提交于
      A Linux software bridge will assume the MAC address of the enslaved
      interface with the numerically lowest MAC addr. When the bridge
      changes MAC address there is a period of network blackout, so a
      change should be avoided. The kernel gives TAP devices a completely
      random MAC address. Occassionally the random TAP device MAC is lower
      than that of the physical interface (eth0, eth1etc) that is enslaved,
      causing the bridge to change its MAC.
      
      This change sets an explicit MAC address for all TAP devices created
      using the configured MAC from the XML, but with the high byte set
      to 0xFE. This should ensure TAP device MACs are higher than any
      physical interface MAC.
      
      * src/qemu/qemu_conf.c, src/uml/uml_conf.c: Pass in a MAC addr
        for the TAP device with high byte set to 0xFE
      * src/util/bridge.c, src/util/bridge.h: Set a MAC when creating
        the TAP device to override random MAC
      6ea90b84
  7. 10 3月, 2010 1 次提交
  8. 21 9月, 2009 1 次提交
    • D
      Move all shared utility files to src/util/ · 1355e055
      Daniel P. Berrange 提交于
      * src/bridge.c, src/bridge.h, src/buf.c, src/buf.h, src/cgroup.c,
        src/cgroup.h, src/conf.c, src/conf.h, src/event.c, src/event.h,
        src/hash.c, src/hash.h, src/hostusb.c, src/hostusb.h,
        src/iptables.c, src/iptables.h, src/logging.c, src/logging.h,
        src/memory.c, src/memory.h, src/pci.c, src/pci.h, src/qparams.c,
        src/qparams.h, src/stats_linux.c, src/stats_linux.h,
        src/threads-pthread.c, src/threads-pthread.h, src/threads-win32.c,
        src/threads-win32.h, src/threads.c, src/threads.h, src/util.c,
        src/util.h, src/uuid.c, src/uuid.h, src/virterror.c,
        src/virterror_internal.h, src/xml.c, src/xml.h: Move all files
        into src/util/
      * daemon/Makefile.am: Add -Isrc/util/ to build flags
      * src/Makefile.am: Add -Isrc/util/ to build flags and update for
        moved files
      * src/libvirt_private.syms: Export cgroup APIs since they're now
        in util rather than linking directly to drivers
      * src/xen/xs_internal.c: Disable bogus virEventRemoveHandle call
        when built under PROXY
      * proxy/Makefile.am: Update for changed file locations. Remove
        bogus build of event.c
      * tools/Makefile.am, tests/Makefile.am: Add -Isrc/util/ to build flags
      1355e055
  9. 03 6月, 2009 1 次提交
  10. 03 3月, 2009 1 次提交
  11. 17 2月, 2009 1 次提交
  12. 27 1月, 2009 1 次提交
    • M
      kvm/virtio: Set IFF_VNET_HDR when setting up tap fds · b4f62abb
      Mark McLoughlin 提交于
      IFF_VNET_HDR is a tun/tap flag that allows you to send and receive
      large (i.e. GSO) packets and packets with partial checksums. Setting
      the flag means that every packet is proceeded by the same header which
      virtio uses to communicate GSO/csum metadata.
      
      By enabling this flag on the tap fds we create, we greatly increase
      the achievable throughput with virtio_net.
      
      However, we need to be careful to only set the flag when a) QEMU has
      support for this ABI and b) the value of the flag is queryable using
      the TUNGETIFF ioctl.
      
      It's nearly five months since kvm-74 - the first KVM release with this
      feature - was released. Up until now, we've not added libvirt support
      because there is no clean way to detect support for this in QEMU at
      runtime. A brief attempt to add a "info capabilities" monitor command
      to QEMU floundered. Perfect is the enemy of good enough. Probing the
      KVM version will suffice for now.
      Signed-off-by: NMark McLoughlin <markmc@redhat.com>
      b4f62abb
  13. 21 1月, 2009 1 次提交
  14. 21 8月, 2008 1 次提交
  15. 12 7月, 2008 2 次提交
  16. 11 4月, 2008 1 次提交
  17. 15 3月, 2008 1 次提交
  18. 28 2月, 2008 1 次提交
  19. 30 1月, 2008 1 次提交
    • J
      Enable the <config.h>-requiring test; fix violations · a3781881
      Jim Meyering 提交于
      Use <config.h>, not "config.h", per autoconf documentation.
      * Makefile.cfg (local-checks-to-skip) [sc_require_config_h]: Enable.
      * .x-sc_require_config_h: New file, to list exempted files.
      * Makefile.am (EXTRA_DIST): Add .x-sc_require_config_h.
      a3781881
  20. 26 11月, 2007 1 次提交
  21. 29 6月, 2007 1 次提交
  22. 27 6月, 2007 1 次提交
  23. 14 3月, 2007 1 次提交
  24. 15 2月, 2007 1 次提交
    • M
      Tue Feb 14 16:02:23 IST 2007 Mark McLoughlin <markmc@redhat.com> · 4e6c38e1
      Mark McLoughlin 提交于
              * configure.in: add --disable-bridge-params, check
              for libsysfs and various kernel headers
      
              * bridge.[ch]: add code for managing bridges
      
              * qemud/Makefile.am: add bridge.[ch] and link against
              libsysfs if enabled.
      
              * qemud/conf.c: add support for bridge config.
      
              * qemud/internal.h: add various bridging bits
      
              * qemud/qemud.c: implement qemudStartNetworkDaemon()
              and qemudShutdownNetworkDaemon().
      4e6c38e1