[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [QEMU PATCH v2] virtio-net: introduce a new macaddr con
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [QEMU PATCH v2] virtio-net: introduce a new macaddr control |
Date: |
Thu, 17 Jan 2013 09:39:54 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Thu, Jan 17, 2013 at 01:45:11PM +0800, Amos Kong wrote:
> On Thu, Jan 17, 2013 at 11:49:20AM +1030, Rusty Russell wrote:
> > address@hidden writes:
> > > @@ -349,6 +351,14 @@ static int virtio_net_handle_mac(VirtIONet *n,
> > > uint8_t cmd,
> > > {
> > > struct virtio_net_ctrl_mac mac_data;
> > >
> > > + if (cmd == VIRTIO_NET_CTRL_MAC_ADDR_SET && elem->out_num == 2 &&
> > > + elem->out_sg[1].iov_len == ETH_ALEN) {
> > > + /* Set MAC address */
> > > + memcpy(n->mac, elem->out_sg[1].iov_base,
> > > elem->out_sg[1].iov_len);
> > > + qemu_format_nic_info_str(&n->nic->nc, n->mac);
> > > + return VIRTIO_NET_OK;
> > > + }
> >
> > Does the rest of the net device still rely on the layout of descriptors?
>
> No, only info string of net client relies on n->mac
I think the question is whether the hw/virtio-net.c code makes
assumptions about virtqueue descriptor layout (e.g. sg[0] is the header,
sg[1] is the data buffer).
The answer is yes, the control virtqueue function directly accesses
iov[n].
Additional patches would be required to convert the existing
hw/virtio-net.c code to make no assumptions about virtqueue descriptor
layout. It's outside the scope of this series.
Stefan