[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: Re: Re: [PATCH v2 06/11] transport-fabrics: introduce command set
On 6/6/23 00:30, Stefan Hajnoczi wrote: [snip]
+ +The Target ID of 0xffff is reserved, then:Please move this after the fields have been shown and the purpose of the Target ID field has been explained.+\begin{itemize} +\item The Target ID of 0xffff MUST be specified as the Target ID in a Connect +Command for the control queue. +\item The target SHOULD allocate any available Target ID to the initiator, +and return the allocated Target ID in the Completion. +\item The returned Target ID MUST be specified as the Target ID, and the Queue ID +MUST be specified in a Connect Command for the virtqueue. +\end{itemize}What is the purpose of the Target ID? Is it to allow a server to provide access to multiple targets over the same connection?A target listens on a port, and provides access to 0 or more targets. An initiator connect the specific target by TVQN of connect command. An initiator could connect a single target, multiple initiators could connect the same target(typically, shared disk/fs).Why is the target ID separate from the TVQN? If the Target ID is a separate parameter then users will have to learn additional syntax/command-line options to specify the TVQN + Target ID and that syntax may vary between software.
The TVQN is the location of a target, for example: virtio-tcp://192.168.1.110:8549/blk-dev/hdd-pool/238151a7-acd7-4621-bbdf-382ddbccb6a1A target can be shared by multi initiators, they accesses the target by the same address(transport: tcp, ip: 192.168.1.110, port: 8549, TVQN: blk-dev/hdd-pool/238151a7-acd7-4621-bbdf-382ddbccb6a1):
Initiator_A launches Control Queue, issues connect command, gets the Target ID of Target_A(typically, dynamically allocated by target), then virtqueues connect to Target_A.
Initiator_B launches Control Queue, issues connect command, gets the Target ID of Target_B(typically, dynamically allocated by target), then virtqueues connect to Target_B.
... Once an initiator disconnects, the target should reclaim the Target ID. [snip] -- zhenwei pi
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]