[virtio-dev] RE: RE: [RFC] virtio-net: support access and control the member devices

Parav Pandit
2023-08-03T11:13:32Z

> From: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
> Sent: Thursday, August 3, 2023 4:36 PM

>
> OK.
>
>
> >
> > > + u8 mac[6];
> > > + le16 status;
> > > + le16 max_virtqueue_pairs;
> > > + le16 mtu;
> > > + le32 speed;
> > > + u8 duplex;
> >
> > We should above split constant config space fields and below run time fields
> meant for debug purpose.
> > We are working on the member device migration proposal and below fields
> belong to "device context" should be available through such separate command.
> > But if you do it before, please cover the whole device state and we will be
> able to reuse for multiple use-cases.
>
>
> I am not sure I got fully.
>
> I will try.

Something like below.

struct virtio_field {
le32 type; /* contains the value of enum virtio_dev_field_type */
le32 size; /* size of the data field in bytes */
u8 data[];
};

enum virtio_dev_field_type {
VIRTIO_DEV_PCI_COMMON_CFG, /* struct virtio_dev_common_cfg */
VIRTIO_DEV_CFG_SPACE, /* config space fields, for net struct virtio_net_config etc */
VIRTIO_DEV_QUEUE_CFG, /* struct virtio_dev_q_cfg */
};

In your use case, it is VIRTIO_DEV_CFG_SPACE, just blob of data bytes.