From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: [PATCH v5 4/5] vscsiif.h: add some notes about xenstore layout Date: Wed, 13 May 2015 15:14:13 +0100 Message-ID: <1431526453.8263.288.camel@citrix.com> References: <1430918892-20928-1-git-send-email-olaf@aepfle.de> <1430918892-20928-5-git-send-email-olaf@aepfle.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1430918892-20928-5-git-send-email-olaf@aepfle.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Olaf Hering Cc: Keir Fraser , Tim Deegan , Ian Jackson , Jan Beulich , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On Wed, 2015-05-06 at 13:28 +0000, Olaf Hering wrote: > Signed-off-by: Olaf Hering 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 > Cc: Ian Jackson > Cc: Jan Beulich > Cc: Keir Fraser > Cc: Tim Deegan > --- > 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/vscsi/. > + * The xenstore layout looks like this (dom0 is assumed to be the backend_domid): > + * > + * //feature-host = "0" > + * //frontend = "/local/domain//device/vscsi/0" > + * //frontend-id = "" > + * //online = "1" > + * //state = "4" > + * //vscsi-devs/dev-0/p-dev = "8:0:2:1" or "naa.wwn:lun" > + * //vscsi-devs/dev-0/state = "4" > + * //vscsi-devs/dev-0/v-dev = "0:0:0:0" > + * //vscsi-devs/dev-1/p-dev = "8:0:2:2" > + * //vscsi-devs/dev-1/state = "4" > + * //vscsi-devs/dev-1/v-dev = "0:0:1:0" > + * > + * The frontend driver maintains its state in > + * /local/domain//device/vscsi/. > + * > + * /backend = "/local/domain/0/backend/vscsi//" > + * /backend-id = "0" > + * /event-channel = "20" > + * /ring-ref = "43" > + * /state = "4" > + * /vscsi-devs/dev-0/state = "4" > + * /vscsi-devs/dev-1/state = "4" > + * > + * In addition to the entries for backend and frontend these flags are stored > + * for the toolstack: > + * > + * //vscsi-devs/dev-1/p-devname = "/dev/$device" > + * > + * > + * Backend/frontend protocol > + * ========================= > + * > + * To create a vhost along with a device: > + * //feature-host = "0" > + * //frontend = "/local/domain//device/vscsi/0" > + * //frontend-id = "" > + * //online = "1" > + * //state = "1" > + * //vscsi-devs/dev-0/p-dev = "8:0:2:1" > + * //vscsi-devs/dev-0/state = "1" > + * //vscsi-devs/dev-0/v-dev = "0:0:0:0" > + * Wait for //state + //vscsi-devs/dev-0/state become 4 > + * > + * To add another device to a vhost: > + * //state = "7" > + * //vscsi-devs/dev-1/p-dev = "8:0:2:2" > + * //vscsi-devs/dev-1/state = "1" > + * //vscsi-devs/dev-1/v-dev = "0:0:1:0" > + * Wait for //state + //vscsi-devs/dev-1/state become 4 > + * > + * To remove a device from a vhost: > + * //state = "7" > + * //vscsi-devs/dev-1/state = "5" > + * Wait for //state to become 4 > + * Wait for //vscsi-devs/dev-1/state become 6 > + * Remove //vscsi-devs/dev-1/{state,p-dev,v-dev,p-devname} > + * Remove //vscsi-devs/dev-1/ > + * > + */ > + > /* Requests from the frontend to the backend */ > > /*