Qemu 게스트에서 이 네트워크 장치를 제거하려고 합니다.
(qemu) info network
info network
…
idRygZ1D: index=0,type=nic,model=virtio-net-pci,macaddr=02:00:00:00:20:06
\ idU3WwDX: index=0,type=tap,fd=36
(qemu) info pci
info pci
…
Bus 0, device 7, function 0:
Ethernet controller: PCI device 1af4:1000
IRQ 11.
BAR0: I/O at 0xc0a0 [0xc0bf].
BAR1: 32 bit memory at 0xfebd4000 [0xfebd4fff].
BAR6: 32 bit memory at 0xffffffffffffffff [0x0003fffe].
id "idRygZ1D"
그러나 실행 후:
(qemu) netdev_del idU3WwDX
netdev_del idU3WwDX
(qemu) device_del idRygZ1D
device_del idRygZ1D
장치는 여전히 pci 및 네트워크 정보와 lspci
내부 게스트에 나열됩니다. 이상하게도 netdev_del
while에 대한 후속 호출은 device_del
성공하지만 눈에 띄는 효과는 없습니다.
(qemu) netdev_del idU3WwDX
netdev_del idU3WwDX
Device 'idU3WwDX' not found
(qemu) device_del idRygZ1D
device_del idRygZ1D
(qemu) device_del idRygZ1D
device_del idRygZ1D
뭔가 잘못된 것 같아요. 장치 테이블에서 NIC를 제거하는 올바른 방법은 무엇입니까?
편집하다:의 침묵은 device_del
아마도 관련이 없을 것입니다. 해당 핸들러가 qmp_device_del()
주어진 ID를 장치에 일치시킬 수 없으면 메시지를 내보내지 않고 장치는
qmp_netdev_del()
그렇게 하기 때문입니다.
편집 2:게스트에서는 netlink를 통해 이와 유사한 이벤트를 RTM_NEWLINK
받습니다 . 해당 장치는 PCI 장치 목록에 남아 있습니다.netdev_del $NETID
set_link $NETID off