SAM-3 incorrect LUN handling for task management functions

Elliott, Robert (Server Storage) Elliott at hp.com
Sun Feb 2 10:08:43 PST 2003


* From the T10 Reflector (t10 at t10.org), posted by:
* "Elliott, Robert (Server Storage)" <Elliott at hp.com>
*
This is a multi-part message in MIME format.

------_=_NextPart_001_01C2CAE6.1F61EE12
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

A Quantum SAS letter ballot comment points out that SAM-3 does not
mention how to handle incorrect logical unit numbers for task =
management
functions.  Section 5.9.3 describes how commands are handled (usually
CHECK CONDITION/ILLEGAL REQUEST/LOGICAL UNIT NOT SUPPORTED).

SAM-3 defines the task manager as an object inside a logical unit (many
times). According to 4.7.5, task management functions which only refer
to an I_T Nexus (TARGET RESET and WAKEUP) are sent to all the task
managers accessible to the task router. =20

However, 4.7.5 doesn't explain how they coordinate their replies.  =
These
functions still must result in a service result like FUNCTION COMPLETE
or FUNCTION REJECTED.

And, as the letter ballot comment notes, nowhere is it mentioned what
happens when a logical unit number IS specified but such a logical unit
does not exist.

I suggest this approach:=20
* define a special task manager inside the target device or target port
object (probably target port)=20
* route I_T based task management functions there for processing.  It
communicates with the task managers inside each logical unit to help
implement certain functions (e.g. converts a TARGET RESET into
individual LOGICAL UNIT RESET requests).

* route I_T_L and I_T_L_Q based task management functions there if the =
L
is unknown.  Define it as returning FUNCTION REJECTED for these lost
functions.


Excerpts defining the task manager as an object inside a logical unit:=20
4.3 figure 6=20
4.3 An application client may request processing of a task management
function through a request directed to the task=20
manager within the logical unit.=20
4.7.2 A task router routes commands and task management functions
between the service delivery subsystem and the=20
appropriate logical unit's task manager (see 4.7.5).=20
4.8 A logical unit contains...a task manager=20
4.8 There is one task manager per logical unit.=20
4.12.3 Each logical unit contains a single task manager and a device
server.=20
4.12.3 figure 17=20
4.12.5 Each logical unit contains a single task manager and a device
server.=20
4.12.5 figure 19=20

Excerpts defining the task router:=20
4.7.2: A task router routes commands and task management functions
between the service delivery subsystem and the=20
appropriate logical unit's task manager (see 4.7.5).=20
4.7.3: When the SCSI target/initiator device is operating as a SCSI
target device a task router routes the commands and=20
task management functions between the service delivery subsystem and =
the
appropriate logical unit (see 4.7.5).=20
4.7.5 SCSI task router: The task router routes tasks and task =
management
functions to the selected logical unit. Any task that is sent to a
logical unit that is not known to the task router is handled as
described in 5.9.3. Any task management function that is not sent to a
specific logical unit shall be broadcast to all logical units known to
the task router.

4.12.3 Each SCSI target port consists of a task router that is shared =
by
a collection of logical units.=20
4.12.5 Each SCSI target/initiator port consists of a task router and is
shared by a collection of logical units and application clients.


--=20
Rob Elliott, elliott at hp.com=20
Hewlett-Packard Industry Standard Server Storage Advanced Technology=20
 <https://ecardfile.com/id/RobElliott>
https://ecardfile.com/id/RobElliott=20




------_=_NextPart_001_01C2CAE6.1F61EE12
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">

SAM-3 incorrect LUN handling for task management = functions A Quantum SAS letter ballot comment = points out that SAM-3 does not mention how to handle incorrect logical = unit numbers for task management functions.  Section 5.9.3 = describes how commands are handled (usually CHECK CONDITION/ILLEGAL = REQUEST/LOGICAL UNIT NOT SUPPORTED). SAM-3 defines the task manager as an = object inside a logical unit (many times). According to 4.7.5, task = management functions which only refer to an I_T Nexus (TARGET RESET and = WAKEUP) are sent to all the task managers accessible to the task = router.  However, 4.7.5 doesn't explain how = they coordinate their replies.  These functions still must result = in a service result like FUNCTION COMPLETE or FUNCTION = REJECTED. And, as the letter ballot comment = notes, nowhere is it mentioned what happens when a logical unit number = IS specified but such a logical unit does not exist. I suggest this approach: 
* define a special task manager = inside the target device or target port object (probably target = port) 
* route I_T based task management = functions there for processing.  It communicates with the task = managers inside each logical unit to help implement certain functions = (e.g. converts a TARGET RESET into individual LOGICAL UNIT RESET = requests). * route I_T_L and I_T_L_Q based task = management functions there if the L is unknown.  Define it as = returning FUNCTION REJECTED for these lost functions. 
Excerpts defining the task manager as = an object inside a logical unit: 
4.3 figure 6 
4.3 An application client may = request processing of a task management function through a request = directed to the task 
manager within the logical = unit. 
4.7.2 A task router routes = commands and task management functions between the service delivery = subsystem and the 
appropriate logical unit;s = task manager (see 4.7.5). 
4.8 A logical unit contains...a = task manager 
4.8 There is one task manager per logical unit. 
4.12.3 Each logical unit contains a single task manager and = a device server. 
4.12.3 figure 17 
4.12.5 Each logical unit contains a single task manager and = a device server. 
4.12.5 figure 19 Excerpts defining the task = router: 
4.7.2: A task router routes commands and task management = functions between the service delivery subsystem and the 
appropriate logical unit;s = task manager (see 4.7.5). 
4.7.3: When the SCSI target/initiator device is operating = as a SCSI target device a task router routes the commands and 
task management functions between = the service delivery subsystem and the appropriate logical unit (see = 4.7.5). 
4.7.5 SCSI task = router: The task router routes = tasks and task management functions to the selected logical unit. Any = task that is sent to a logical unit that is not known to the task = router is handled as described in 5.9.3. Any task management function = that is not sent to a specific logical unit shall be broadcast to all = logical units known to the task router. 4.12.3 Each SCSI target port consists of a task router that = is shared by a collection of logical units. 
4.12.5 Each SCSI target/initiator port consists of a task = router and is shared by a collection of logical units and application = clients. 
-- 
Rob Elliott, elliott at hp.com 
Hewlett-Packard Industry Standard = Server Storage Advanced Technology 
https://ecardfile.com/id/RobElliott 


------_=_NextPart_001_01C2CAE6.1F61EE12--




More information about the T10 mailing list