[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v5 4/5] vscsiif.h: add some notes about xenstore layout



On Wed, 2015-05-06 at 13:28 +0000, Olaf Hering wrote:
> Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>

I'm not sure how much of this really belongs in an ABI document, but I
don't think there's really anywhere else so

Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> Cc: Jan Beulich <jbeulich@xxxxxxxx>
> Cc: Keir Fraser <keir@xxxxxxx>
> Cc: Tim Deegan <tim@xxxxxxx>
> ---
>  xen/include/public/io/vscsiif.h | 68 
> +++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 68 insertions(+)
> 
> diff --git a/xen/include/public/io/vscsiif.h b/xen/include/public/io/vscsiif.h
> index e8e38a9..2c5f04a 100644
> --- a/xen/include/public/io/vscsiif.h
> +++ b/xen/include/public/io/vscsiif.h
> @@ -104,6 +104,74 @@
>   *      response structures.
>   */
>  
> +/*
> + * Xenstore format in practice
> + * ===========================
> + * 
> + * The backend driver uses a single_host:many_devices notation to manage domU
> + * devices. Everything is stored in 
> /local/domain/<backend_domid>/backend/vscsi/.
> + * The xenstore layout looks like this (dom0 is assumed to be the 
> backend_domid):
> + * 
> + *     <domid>/<vhost>/feature-host = "0"
> + *     <domid>/<vhost>/frontend = "/local/domain/<domid>/device/vscsi/0"
> + *     <domid>/<vhost>/frontend-id = "<domid>"
> + *     <domid>/<vhost>/online = "1"
> + *     <domid>/<vhost>/state = "4"
> + *     <domid>/<vhost>/vscsi-devs/dev-0/p-dev = "8:0:2:1" or "naa.wwn:lun"
> + *     <domid>/<vhost>/vscsi-devs/dev-0/state = "4"
> + *     <domid>/<vhost>/vscsi-devs/dev-0/v-dev = "0:0:0:0"
> + *     <domid>/<vhost>/vscsi-devs/dev-1/p-dev = "8:0:2:2"
> + *     <domid>/<vhost>/vscsi-devs/dev-1/state = "4"
> + *     <domid>/<vhost>/vscsi-devs/dev-1/v-dev = "0:0:1:0"
> + * 
> + * The frontend driver maintains its state in
> + * /local/domain/<domid>/device/vscsi/.
> + * 
> + *     <vhost>/backend = "/local/domain/0/backend/vscsi/<domid>/<vhost>"
> + *     <vhost>/backend-id = "0"
> + *     <vhost>/event-channel = "20"
> + *     <vhost>/ring-ref = "43"
> + *     <vhost>/state = "4"
> + *     <vhost>/vscsi-devs/dev-0/state = "4"
> + *     <vhost>/vscsi-devs/dev-1/state = "4"
> + * 
> + * In addition to the entries for backend and frontend these flags are stored
> + * for the toolstack:
> + * 
> + *     <domid>/<vhost>/vscsi-devs/dev-1/p-devname = "/dev/$device"
> + * 
> + * 
> + * Backend/frontend protocol
> + * =========================
> + * 
> + * To create a vhost along with a device:
> + *     <domid>/<vhost>/feature-host = "0"
> + *     <domid>/<vhost>/frontend = "/local/domain/<domid>/device/vscsi/0"
> + *     <domid>/<vhost>/frontend-id = "<domid>"
> + *     <domid>/<vhost>/online = "1"
> + *     <domid>/<vhost>/state = "1"
> + *     <domid>/<vhost>/vscsi-devs/dev-0/p-dev = "8:0:2:1"
> + *     <domid>/<vhost>/vscsi-devs/dev-0/state = "1"
> + *     <domid>/<vhost>/vscsi-devs/dev-0/v-dev = "0:0:0:0"
> + * Wait for <domid>/<vhost>/state + <domid>/<vhost>/vscsi-devs/dev-0/state 
> become 4
> + * 
> + * To add another device to a vhost:
> + *     <domid>/<vhost>/state = "7"
> + *     <domid>/<vhost>/vscsi-devs/dev-1/p-dev = "8:0:2:2"
> + *     <domid>/<vhost>/vscsi-devs/dev-1/state = "1"
> + *     <domid>/<vhost>/vscsi-devs/dev-1/v-dev = "0:0:1:0"
> + * Wait for <domid>/<vhost>/state + <domid>/<vhost>/vscsi-devs/dev-1/state 
> become 4
> + * 
> + * To remove a device from a vhost:
> + *     <domid>/<vhost>/state = "7"
> + *     <domid>/<vhost>/vscsi-devs/dev-1/state = "5"
> + * Wait for <domid>/<vhost>/state to become 4
> + * Wait for <domid>/<vhost>/vscsi-devs/dev-1/state become 6
> + * Remove <domid>/<vhost>/vscsi-devs/dev-1/{state,p-dev,v-dev,p-devname}
> + * Remove <domid>/<vhost>/vscsi-devs/dev-1/
> + *
> + */
> +
>  /* Requests from the frontend to the backend */
>  
>  /*



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.