On Fri, Jan 17, 2025 at 7:17 PM Laurent Vivier <lviv...@redhat.com> wrote: > > b9ad513e1876 ("net: Remove receive_raw()") adds an iovec entry > in qemu_deliver_packet_iov() to add the virtio-net header > in the data when QEMU_NET_PACKET_FLAG_RAW is set but forgets > to increase the number of iovec entries in the array, so > receive_iov() will only send the first entry (the virtio-net > entry, full of 0) and no data. The packet will be discarded. > > The only user of QEMU_NET_PACKET_FLAG_RAW is announce_self. > > We can see the problem with tcpdump: > > - QEMU parameters: > > .. -monitor stdio \ > -netdev bridge,id=netdev0,br=virbr0 \ > -device virtio-net,mac=9a:2b:2c:2d:2e:2f,netdev=netdev0 \ > > - HMP command: > > (qemu) announce_self > > - TCP dump: > > $ sudo tcpdump -nxi virbr0 > > without the fix: > > <nothing> > > with the fix: > > ARP, Reverse Request who-is 9a:2b:2c:2d:2e:2f tell 9a:2b:2c:2d:2e:2f, > length 46 > 0x0000: 0001 0800 0604 0003 9a2b 2c2d 2e2f 0000 > 0x0010: 0000 9a2b 2c2d 2e2f 0000 0000 0000 0000 > 0x0020: 0000 0000 0000 0000 0000 0000 0000 > > Reported-by: Xiaohui Li <xiao...@redhat.com> > Bug: https://issues.redhat.com/browse/RHEL-73891 > Fixes: b9ad513e1876 ("net: Remove receive_raw()") > Cc: akihiko.od...@daynix.com > Signed-off-by: Laurent Vivier <lviv...@redhat.com> > ---
Acked-by: Jason Wang <jasow...@redhat.com> Thanks