Bug 732609

Summary: Cannot hot plug-in macvtap device to guest
Product: Red Hat Enterprise Linux 6 Reporter: Xiaoqing Wei <xwei>
Component: qemu-kvmAssignee: Michael S. Tsirkin <mst>
Status: CLOSED NOTABUG QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.2CC: akong, juzhang, michen, mkenneth, shuang, tburke, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-09-12 12:35:36 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Xiaoqing Wei 2011-08-23 05:36:37 UTC
Description of problem:

Cannot hot plug-in  macvtap device to guest
Version-Release number of selected component (if applicable):

qemu-kvm-0.12.1.2-2.184.el6.x86_64
How reproducible:
always

Steps to Reproduce:
1.boot a guest 
2.hot plug a macvtap based nic by
netdev_add tap,id=xwei,fd=5 5<>/dev/tap5
3.
  
Actual results:
qemu-kvm will raise error from monitor 

(qemu) netdev_add tap,id=xwei,vhost=on,fd=14 14<>/dev/tap14
netdev_add: extraneous characters at the end of line

if drop the last part:
(qemu) netdev_add tap,id=xwei,vhost=on,fd=14 
TUNGETIFF ioctl() failed: Invalid argument
TUNSETOFFLOAD ioctl() failed: Bad address

Expected results:
qemu-kvm should able to hot plug a macvtap based nic

Additional info:

if boot a guest by :
with macvtap based nic:
qemu-kvm ..... -netdev tap,id=xwei,vhost=on,fd=5 5<>/dev/tap5 \
-device virtio-net-pci,netdev=xwei,mac=xxxxx   \
\
6<>/dev/tap6 ...

and then hot plug a macvtap based nic with above steps
works fine.

Comment 2 Xiaoqing Wei 2011-08-23 09:47:42 UTC
(In reply to comment #0)

> and then hot plug a macvtap based nic with above steps
> works fine.

Sorry for potential unclear,I mean:

  1) if boot a guest with two ioctl attached but only use one by:
qemu-kvm ... \
\
5<>/dev/tap5    \      
\
6<>/dev/tap6   \
\
-netdev tap,id=cold-plug,vhost=on,fd=5 \
\
-device virtio-net-pci,netdev=code-plug,mac=xxxxx  
 

  2) then the guest boots,after guest up, do hot plug by:

(qemu)netdev_add tap,id=hot-plug,vhost=on,fd=6 
(qemu)device_add virtio-net-pci,netdev=hot-plug,mac=xxxx

in this way of hot plug, qemu does not error and inside guest, hot plugged nic can got a ip from dhcp.


  3) Just my opinion , this may caused by the qemu monitor doesn't accept and parse the " 14<>/dev/tap14 " as a option, here it treat " 14<>/dev/tap14 " as a bunch of mistype. same error when attached anything at the end of netdev_add cmd:


(qemu) netdev_add tap,id=hot1,vhost=on,fd=17 17<>/dev/tap17
netdev_add: extraneous characters at the end of line
(qemu) netdev_add tap,id=hot1,vhost=on,fd=17 alsfa
netdev_add: extraneous characters at the end of line