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

Xuan Zhuo
2023-08-03T11:17:45Z

On Thu, 3 Aug 2023 11:13:28 +0000, Parav Pandit <parav@nvidia.com> wrote:
>
> > 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.

That is ok for me.

My question is what is ctx? How do we decide what to put in ctx? How do we
define ctx?

Thanks.