[libvirt-users] Trouble configuring with macvtap passthrough on Debian Wheezy / Jessie

Richard Gomes rgomes1997 at yahoo.co.uk
Fri Jan 31 19:06:00 UTC 2014


( Posting again. Correct subject line now! )

Hello,

I'm trying to use macvtap on Debian Wheezy.
Actually, I've installed a recent version of libvirt and qemu from
Jessie, using wheezy-backports.

$ virsh version
Compiled against library: libvirt 1.2.1
Using library: libvirt 1.2.1
Using API: QEMU 1.2.1
Running hypervisor: QEMU 1.7.0


I'm trying to configure a macvtap interface like this:


    <interface type='direct'>
      <mac address='52:54:00:7b:05:cd'/>
      <source dev='eth1' mode='passthrough'/>
      <model type='rtl8139'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08'
function='0x0'/>
    </interface>


The interface eth1 is used exclusively by this VM,  so as far as I
understand, mode 'passthrough' is enough since I'd like to "plug" the VM
straight onto a public static IP.


On my /etc/networks/interfaces, I have this:


# start :: define eth1
iface eth1 inet manual
# end :: define eth1


It does not matter whether eth1 is up or down, when I try to start the
VM, I get the following error:

    Error starting domain: Cannot create macvlan devices on this
    platform: Function not implemented

    Traceback (most recent call last):
      File "/usr/share/virt-manager/virtManager/asyncjob.py", line 45,
    in cb_wrapper
        callback(asyncjob, *args, **kwargs)
      File "/usr/share/virt-manager/virtManager/asyncjob.py", line 66,
    in tmpcb
        callback(*args, **kwargs)
      File "/usr/share/virt-manager/virtManager/domain.py", line 1114,
    in startup
        self._backend.create()
      File "/usr/lib/python2.7/dist-packages/libvirt.py", line 866, in
    create
        if ret == -1: raise libvirtError ('virDomainCreate() failed',
    dom=self)
    libvirtError: Cannot create macvlan devices on this platform:
    Function not implemented


Trying to solve the issue, I found this:
       http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=737097


I've tried to rebuild the package from Debian sources, but apparently,
macvtap is already defined, as I've reported to another mailing list.
For your information:

> I'm new to building packages from Debian sources, so I followed
> instructions from
>     
> https://wiki.debian.org/HowToPackageForDebian#Building_Debian_packages
>
>     $ apt-get -t wheezy-backports source libvirt
>     $ cd libvirt-0.9.12.3/
>     $ sudo apt-get build-dep libvirt
>     $ debuild -i -us -uc -b
>
> So... yes, it works and builds without any errors.
>
> Next step now is applying the changes mentioned.
> But I'm confused because /apparently/ debian/rules is already the way
> it should be.
>
> ifneq (,$(findstring $(DEB_HOST_ARCH_OS), linux))
>   WITH_STORAGE_LVM    = --with-storage-lvm
>   WITH_STORAGE_ISCSI  = --with-storage-iscsi
>   WITH_STORAGE_DISK   = --with-storage-disk
>   WITH_UDEV           = --with-udev --without-hal
>   WITH_CAPNG          = --with-capng
>   WITH_POLKIT         = --with-polkit
> *  WITH_MACVTAP        = --with-macvtap**
> **  WITH_NETWORK        = --with-network**
> *  WITH_QEMU           = --with-qemu
>   WITH_OPENVZ         = --with-openvz
>   WITH_NETCF          = --with-netcf
>   ifneq (,$(findstring $(DEB_HOST_ARCH), amd64 i386 ia64 mips mipsel powerpc))
>       WITH_NUMA       = --with-numactl
>   else
>       WITH_NUMA       = --without-numactl
>   endif
>   ifneq (,$(findstring $(DEB_HOST_ARCH), ia64))
>       WITH_LXC        = --without-lxc
>   else
>       WITH_LXC        = --with-lxc
>   endif
> else
>   WITH_STORAGE_LVM    = --without-storage-lvm
>   WITH_STORAGE_ISCSI  = --without-storage-iscsi
>   WITH_STORAGE_DISK   = --without-storage-disk
>   WITH_UDEV           = --without-udev --with-hal
>   WITH_CAPNG          = --without-capng
>   WITH_POLKIT         = --without-polkit
> *  WITH_MACVTAP        = --without-macvtap**
> **  WITH_NETWORK        = --without-network**
> *  WITH_QEMU           = --without-qemu
>   WITH_LXC            = --without-lxc
>   WITH_NUMA           = --without-numactl
>   WITH_NETCF          = --without-netcf
> endif
>
>
> I suppose that nothing has to be changed, correct? ... since the
> _/then/_ branch already has the change mentioned and the _/else/_
> branch probably means that nothing related to networking would be
> enabled anyway.
>
> Am I missing something ?

Thoughts?

Thanks a lot :)
-- 
Richard Gomes
http://rgomes.info
http://www.linkedin.com/in/rgomes
mobile: +44(77)9955-6813
inum <http://www.inum.net/>: +883(5100)0800-9804
sip:rgomes at ippi.fr

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20140131/ec8469fc/attachment.htm>


More information about the libvirt-users mailing list