您的位置:标准吧 > 标准下载 > SJ 20820.9 2002 信息技术 小计算机系统接口SCSI 3基本命令层 第9部分:公共访问方法10

SJ 20820.9 2002 信息技术 小计算机系统接口SCSI 3基本命令层 第9部分:公共访问方法10

时间:2012-5-28 14:42:50 作者:标准吧 来源:SJ 阅读:1888次
SJ 20820.9 2002 信息技术  小计算机系统接口SCSI 3基本命令层 第9部分:公共访问方法10
 

·  禁止完成回调一置“l”时,外围驱动程序在完成该请求时不希望SIM自动回调.这意味着调用者正轮询CAM状态而不是请求的进行中的状态,这表示该请求完成.

    #定义CAM DIS _CALLBACK    Ox00000008

·链接的CDB -置“1”时,该CDB是一个SCSI链接命令.若该位被设置.CDB中的控制

1”,否则,其结果是不可预知的.

    #定义CAM- CDB._LINKED    Ox00000004

·  置“l”时,允许带标记的排队动作.包含在或指向SCSI I/O请求CCB的SCSI CDB应具有带标记的排队属性.

·  #定义CAM_QUEUE..ENABLE    Ox00000002

CDB组成是一个指针一置“l”时,CDB字段的头4个字节应包含一个指向CDB的存储元

  素的指针.

  #定义CAM_CDB_POINTER    Ox00000001

·  置“1”时,禁止SCSI总线断开.SCSI的断开能力被禁止。在SCSI识别消息中设置位

  6=“l”,默认值为“0”.

  #定义CAM_DIS_DISCONNECT    Ox00008000

·置“l”时,启动同步传送,这表示SIM应协商它能传送给目标设备的最高传送参数,并

  且在任何地方都可能执行协商的传送参数(同步、快速、宽位传送)。外围驱动程序不应

  设置该位和位CAM DIS SYNC.这些位相互排斥.

  #定义CAM INITIATE_SYNC    Ox00004000

·  置“l”时,禁止同步传送,这表示若SIM先前协商的是同步传送.SIM应协商最低传送参数(异步、窄位传送).若不能协商同步(最高传送参数)或协商还未被尝试,SIM不

  启动协商。外围驱动程序不应设置该位和位CAM_ INITIATE_SYNC.这些位相互排斥.

  #定义CAM_DIS_.SYNC    Ox00002000

·置“l”时.SIM排队具有优先权,SIM应把这个CCB放置在具有发送逻辑单元正常优先权

  的所有CCB操作的前面和逻辑单元(FIFO顺序)的内部排队优先权的尾部.置“0”时,

  SIM应把CCB放置具有发送逻辑单元正常优先权的所有CCB操作的尾部.

  #定义CAM_SIM QHEAD    Ox00001000

·  SIM排队冻结一置“1”时,SIM应把它的内部逻辑单元排队放置在冻结状态中.回调时,

  该CCB的CAM状态具有SIM排队冻结标记集.该位仅为SIM错误恢复被设置,并共同用于

  SIM排队优先权位和释放SIM排队命令.外围驱动程序不应设置该位和位

  CAM_ SIM_QFRZDIS.这些位相互排斥.

  #定义CAM SIM QFREEZE     Ox00000800

·  SIM排队冻结禁止一置“l”时,SIM排队冻结机制应被禁止(即:SIM排队不应被CAM

  状态事件中这个CCB中寻址的逻辑单元冻结而是被带错误的请求完成冻结).外围驱动程

  序不应设置该位和位CAM_SIM_QFRZDIS.这些位相互排斥.

#定义CAM_SIM__QFRZDIS    Ox00000400

    表13 SIM排队动作

CAMSIM QFREEZE

CAMSIM_OFRZDIS

动    作

0

0

若CAM状态未请求完成W/O错误,SIM排队冻结

0

l

SIM排队不对所有CAM状态冻结

1

0

当CCB完成时,SIM排队冻结

l

l

CAM标记设置无效

·引擎同步-在终止引擎处理之前,该位与设置的方向进或出共同作用以便刷新任何剩余位

    #定义CAM ENG SYNC    Ox00000200

保留位值Ox00000t00

·  分散/集中主机/引擎用于与一个HA引擎有关的相应缓冲.置“1”对,该标记用于规定正常的数据缓冲器指针实际上是引擎的缓冲器空间中的物理地址.置“0”时,数据缓冲器是在主机内存中.地址格式(物理/虚拟)是由CAM DATA_PHYS位标记来控制。

    #定义CAM.ENG_SGLIST    Ox00800000

·  下列CAM标记位定义描述了执行SCSI I/0请求CCB所描述的某些组成的内存类型(虚

    拟/物理).指针字段设立有一个字符.若一个位被置为“1”,它表示所描述的指针字段包含一个物理地址.若被置为“0”,它表示该指针包含一个虚拟地址,若SIM需要以不同

形式提供的地址,它应由SIM(使用OSD设备)转换并存储在专用数据中.

    ◇置“1”时.CDB指针是物理的,这表示在cam_cdb_io组成中的该指针是物理的.

    #定义CAM_ CDB_PH. YS    Ox00400000

    O当置为“l”时数据缓冲器/分散集中指针是物理的,这表示cam_data_ptr组成中该指针是物理的.

    #定义CAM_DATA_PHYS    Ox00200000

    ◇置“l”时-断定缓冲器指针是物理的,这表示在cam_sense-ptr组成中该指针是物理

    的

    #定义CAM_SNS_BUF_PHYS    0x00100000

    ◇置“l”时,消息缓冲器指针是物理的,这表示在cam_msg ptr组成中该指针是物理的.

    #定义CAM_MSG BUF._PHYS    Ox00080000 

  ◇置“l”时.相邻CCB的指针是物理的,这表示在cam_next ccb组成中该指针是物理

    的.

    #定义CAM_NXT CCB_PHYS    Ox00040000

  ◇置“l”时,完成回调指针是物理的,这表示在cam_cbfcnp组成中该指针是物理的.

    #定义CAM_CALLBCK_PHYS    Ox00020000

  ◇置“1”时,SG_ELEM结构阵列中的分散/集中表指针表示在cam sg_address组成中该

    指针是物理的。

    #定义CAM_SG LIST PIIYS    Ox00010000

    ·  下列CAM标记位定义描述了阶段一认知方式和主机日标设备方式,该标记实际含义取决于是否按CAM TGT_PHASE_MODE标记的指示规定阶段一认知方式或主机目标设备方式。该标记的正确设置如下所示.

◇下列标记应适用于阶段一认知方式.阶段一认知方式标记仅在ENABLE LUN或执行目标设

  备I/0 CCB上有效.

    净缓冲器有效位识别缓冲器内容,设置多于一位的事件中,它们应以数据缓冲器、

    状态、消息缓冲器的顺序传送。

    ◆  置“l”时,数据缓冲器有效,这表示按cam_ data..ptr组成的规定该数据对

    使用有效.

    #定义CAM- DATAB VALID    Ox80000000

    ◆置“1”时,状态有效,这表示按cam_ scsi_status组成的规定该数据对使用

    有效。

    #定义CAM_STATUS_VALID    Ox40000000

    ◆置“1"时,消息缓冲器有效,这表示按cam_msg_ptr组成的规定该数据对使

    用有效。

    #定义CAM-^lSGB_VALID    Ox20000000

  置“1”时,阶段一认知方式表示外围驱动程序指示它需要阶段一认知功能.若当置

    为“l”时,支持目标设备操作,SIM应在阶段一认知方式中操作,另外它也在

    主机目标设备方式中操作。

    #定义CAM_TGTffHASE flODE    Ox08000000

  置“l”时,目标设备CCB可用,该位表示SIM能使用这个CCB去处理该请求。值

    为“0”表示该CCB对SIM不可用.

    #定义CAM TGT  CCB.AVAIL    Ox04000000

  置“l”时,自动断开,该位禁止自动断开。若识别消息表示discpriv被设置,

    默认值为“0”导致SIM/HA自动断开。

    #定义CAM_DIS_AUTODISC    Ox02000000

  置“l”时,自动保存,该位禁止阶段一认知方式的自动保存性能。默认值为“0”

    导致XPT/SIM在自动断开时自动发送保存数据指针消息.

    #定义CAM DIS_AUTOSRP    OxOl000000

◇下列标记适用于主机目标设备方式.主机目标设备方式标记仅对允许LUN、接受目标

  设备I/O和继续目标设备I/O CCB有效,对实现细节见第12章.

  置“l”时,发送状态,该位指向数据阶段(若该CCB有一个数据阶段)之后进入

    状态阶段的SIM/HA,并且发送cam_scsi.status组成中的这个CCB内包含的SCSI

    状态字节

    #定义CKM_SEND STATUS    OxS0000000

置“1”时.必须断开,该位为允许的逻辑单元处理的每个CCB指向应从SCSI总线

    断开的SIM/HA。

    #定义CAM_DISCONNECT    Ox40000000

  置“1”时.终止I/O,该位通知主机目标设备方式外围驱动程序正支持终止I/0

    处理SCSI消息的SIM/HA.

    #定义CAM_TERM_IO    Ox20000000

  置“O”时,阶段一认知方式表示外围驱动程序指示它需要主机目标设备方式功能.

若置“O ”时,支持目标设备操作,SIM 应按主机目标设备方式操作,另外也按阶段一认知方式操作。
#定义CAM TGT PHASE MODE 0x08000000
——cam _ req  map :
请求映象信息组成是一个指向与原I/ 0 请求有关的OSD 数据结构的指针。
——cam _ next _ ccb ;
该组成包含一个指向命令块链中相邻命令块的指针。值为“O ”表示链上的最后命令块.该字段用于链接命令。
——cam cbfcnp ;
对一个排队的CCB 的完成回调见10.3.2。
——cam _ data ptr ;
。cam 数据缓冲器指针组成或者是一个指向逻辑上相邻的缓冲器的指针或者是一个指向SG  ELEM结构阵列的指针。该格式类型由CAM SCATTER VALTD 的CAM标记来定义.描述的数据缓冲器或者包含传送到逻辑单元的数据或者被用来接收来自逻辑单元的数据。
——cam dxfer len :
cam 数据传送长度包含被传送数据的字节长度。
——ca cdb len ;
对于执行SCSI I / 0 请求CCB 来说,CDB 长度组成包含CDB 的字节长度。对于接受目标设备I/O CCB 和执行目标设备I/O CCB来说,该组成包含放置CDB 缓冲器的字节长度。

——cam sglist_cnt ;
若CAM SCATTER  VALID 的CAM 标记为“1”,发散/集中入口号组成包含指向cam data ptr 组成的SG ELEM 号。若CAM SCATTER VALID 的CAM 标记为“0”,该组成应为“0”。

——cam _ vu _ field :
售方专用组成按SIM 售方说明定义。
——cam _ scsi _ status
命令按SJ 20631 一97 定义完成之后,SCSI 状态组成包含由SCSI 逻辑单元返回的状态字节。该字段对不带错误的请求完成和带有错误的请求完成的CAM 状态有效。
——cam sense valid :
。cam 断定有效组成包含自动断定已获得的字节数。
——cam resid :
数据剩余长度组成包含由HA 传送SCsSI 命令的数据字节数与CCB cam dxfer len组成请求的字节数比较的2 的补码形式的差.这是由请求CCB 传送的总的字节数减去由HA 传送的实际字节数来计算的.
——cam_cdb_i0 ;
cam CDB 组成或者包含SCSI CDB (命令描述块)或者包含一个指向未被修改的CDB 的指针。该组成由CDB UN 数据类型(联合定义)定义。
——cam _ timeout :
超时组成包含一个发出的SCSI命令请求能保持未完成状态的以秒为单位的最大周期。若该值超出规定值,CAM状态应报告超时条件。值为“00h” ,在CCB 中意味着外围驱动程序接受SIM 默认超时。值为“F …Fh” ,在CCB 中规定一个无限周期。超时值组成是以每个CCB 为基础,从成功选择到命令完成整个过程都要测量。若CCB 己超时而且该命令还未完成(如:命令完成或连接的命令完成消息还没有被CCB 接收), SIM / HA 应重新选择可寻址的逻辑单元并发出中止消息或中止标记消息。若超时的命令是一个I T L I/0 处理,中止消息应由SIM / HA 发出。若超时的命令是一个I T L I / 0 处理,识别I T  L  Q I/0 处理的中止标记消息应由SIM/HA发出

——cam msg ptr :
消息缓冲器组成包含一个指向含有许多消息的缓冲器的指针。该指针仅对以目标设备方式使用有效(更进一步的信息见第12 章)。

----cam.msgb_lem   

    消息缓冲器长度包含外围驱动程序需要发出任何SCSI消息的事件中被用于保持消息信息的cam msg_ptr组成的字节长度.该字段对于目标设备方式操作是独占的(更进一步的信息见第12章). 

——cam_vu_flags, 

    售方专用标记组成是售方专用并且该组成是在SIM售方说明中定义。 

——cam_tag_actiom 

    SCSI提供迫使以特殊顺序执行带标记命令的能力或为改进性能使目标设备优化执行顺序的能力.对于带标记命令排队原则的描述见SCSI一2或SCSI一3

    当cam_flags组成中CAM_QUEUE_ENABLE被设置时,由SIM发出的CDB与规定的排队动作有关,

    如: 

    ·  20h=简单排队标记请求  

    ·  21h=排队头标记请求   

    ·  22h=顺序排队标记请求

——cam tag_id

     标记标识符组成表示如果是标签排队操作,这个CCB响应SCSI标记排队ID。该字段仅对主机目标设备方式操作有效

——cam_initiator_id,

l    启动设备标识符组成表示该CCB响应SCSI启动设备.该字段仅对目标设备方式操作有效.该组成是包含SCSI目标设备说明符的2个CAM-U32的一个阵列.cam_initiator_id[O]组成包含SCSI目标设备说明符的低32位(最低有效部分).cam_iniCiator_id[l]组成包含SCSI目标设备说明符的高32位(最高有效部分)。  

——cam_sense_len

    该组成包含请求自动断定信息的字节数。该值不应超过256,对所有互连协议该值可能无效,仅对那些明显指示断定数据传送大小的互连有效,例如对SIP有效但对FCP无效.

——cam_sim_sense~

     该组成是对SIM可用的由16个CAM_U32组成的一个阵列,作为恢复自动断定信息的工作空间.

——cam_ sense_buf

    该组成是放置可用的自动断定信息的256个CAM_ U8组成的一个阵列.SIM应放置所有从这个缓冲器中的一个设备获得的自动断定信息。SIM不应在cam_ sense_buf中放置超过256个CAM_US.

11.8.1.2执行SCSI I/0请求返回  

 CAM的最终状态应是下列状态之一

    无错误完成的请求:该请求已完成并且没有遇到错误条件。   

——由生机中止的请求:该请求按照外国驱动程序的说明由SIM/HA中止。

——不能中止请求;SIM不能中止由外围驱动程序说明的请求.  

——具有错误的完成请求:该请求已完成并且遇到一个错误条件。

——CAM忙碌:这时CAM不能接受请求.   

——无效请求:因为该请求无效所以拒绝.  

——无效的路径ID:表示路径ID无效. 

——不能终止I/0 处理:SIM 不能终止由外围驱动程序说明的请求。
——目标设备选择超时,目标设备响应选择失败。
——命令超时:指定的命令在CCB 规定的记时器值内没有完成,报告该状态之前SIM / HA 应              确保该命令在目标设备中不再有效。
——消息拒绝被接收:SIM / HA 接收一个SCSI消息拒绝消息。
——SCSI 总线复位被发送/接收:因为SCSI 总线复位,SCSI操作在某些点上被终止。

——检测到不正确的奇偶校验错:检测到不正确的SCSI 总线奇偶校验错。
——自动断定请求断定命令失败:SIM /HA 试图获得断定数据并失败。
——未检测到HA;HA 不再响应SIM (假定是硬件问题)
——数据溢出:目标设备传送的多于外围驱动程序的数据字节在CCB 中表示。
——不期望的总线空闲:一个不期望的总线空闲条件发生。
——目标设备总线周期顺序失效:与SJ 20631 一97 一致的逻辑单元操作头败。
——CCB 长度不足:CCB 中需要较多的专用数据区域(更进一步的说明见9 . 2 . 3)
——不能提供请求的能力:没有可用的资源提供CAM标记中请求的能力。
——总线设备复位被发送:因为总线设备复位消息被发送到目标设备,该CCB 被终止.

——终止I/O 处理:由于SIM/HA 接收了终止I/0 处理请求CCB 并且CCB 不是该逻辑单元中的I/0 处理,所以该CCB 被终止。:
——不可恢复的主机总线适配器错:因为HA 检测到硬件错误,所以该CCB 被终止。该错误不表示SCSI总线问题但是HA 或主机内的一个错误。
11.9 命令链接(任选)
     为了保证顺序执行一些请求,SIM / HA 支持SCSI的链接命令的能力。该功能需要SIM/HA 和有关的逻辑单元支持SCSI 链接能力.SIM /队应通过设置响应路径查询CCB 的链接命令位指示对命令链接的支持(更进一步的信息见11.7.5)。
    为利用链接,把多个CCB 链接在一起并使指针指向下一个CCB ,这样来建立一个CCB链。CAM链接的CDB 标记位被设置在所有CCB 中,此链中最后一个除外。CCB 链接表中的第一个CCB 应有一个有效的完成回调字段设置,并清除禁止完成回调的绷标记。当SCSI 逻辑单元返回链接的命令完成消息或链接的命令完成(带标记)消息时,接着处理下一个CCB 并不修改与它相关的CDB 。由一个链接的命令上的逻辑单元返回的除了中介或中介条件符合的任何SCSI 状态应暂停该链接。当CCB 的链接表被完成或当该链接被暂停时,SIM / HA 应回调使用第一个CCB 的完成回调字段的外围驱动程序。
外围驱动程序应:
一一用除了链接CCD 链中的最后CCB外的CAM链接CDB 标记位设置来建立一个有效的执行       I/O CCB表。
注17 :外围驱动程序负责正确设置CCB 内的所有CDB 的控制字段中的标记和链接位.
——用第一个CCB 的地址作为变量回调xpt _ action()。
——等待链接CCB 表的完成。
——通过启动链接表中第一个CCB 并检查CAM状态字段来回调确定完成状态时,接着进行该表中下一个CCB 。下列CCB 状态用于确定单个CCB 和表的完成情况。
·   无错误完成的请求的CAM 状态表示该CCB 成功完成,若CAM 链接CDB 标记位清除,        CCB 链接表不带错误完成。
·   正进行请求的CAM状态表示该链接被暂停并且这个CCB 内包含的该CDB 不被发出到逻辑单元。
·  具有错误的完成请求的CAM 状态表示逻辑单元为这个CCB 发送一个SCSI状态而不是史中介或中介条件符合。
·  所有其它CAM 状态表示当处理这个CCB 时另外的CAM条件发生,该链接在这点上暂停。

外围驱动程序可能:
——通过检查该表中每个CCB 的CAM 状态字段监控CCB 链处理,但在SIM/HA 完成回调之前不应试图修改该表中的任何CCB 。
——通过发出中止SCSI 命令功能或终止I/0 处理请求功能到该表中的第一个CCB 来中止链接的CCB 链。
SIM/HA 应为链接的CCB表:
——确认该表中的每个CCB (如:CCB 链接表中的第一个CCB 应有一个有效的完成回调字段设置,而且禁止完成回调的CAM标记清除及CAM链接CDB 标记位应在除了该链中的最后一个外的所有CCB 中被设置)。
——对CCB 表建立一个I/0 处理(如:当接收了链接命令完成消息或链接命令完成(带标  记)消息时,发出第一个CCB 后接着进行下一个CCB )。
——对除了最后一个CCB 外的任何CCB 的鱼全立述消息应暂停该链接。
——对最后一个CCB 的命令完成消息表示成功完成该链接。
——当该链接中的每个CCB 完成时,应在CCB 中设置相应的字段。
——当链接的CCB 表被完成或被暂停时,利用完成回调字段的第一个CCB 回调外围驱动程序。

——若外围驱动程序终止或中止该链接中的第一个CCB :
·  若被中止或被终止的CCB 链有一个当前的I / 0 处理,它应按本部分规定中止或终止CCB 并暂停该链接(如:当前I/0 处理CCB 有一个通过主机或终止I / 0 处理中止的请求的CAM 状态)。
·  若被中止或终止的CCB 链接没有一个当前的I/0 处理,它应暂停该链接。

·  若一个CCB 链接指定的CCB 不是链接的第一个CCB ,它应忽略该请求。
·  SIM / HA 应确保SCSI总线和逻辑单元按SJ 20631 一97 的规定不脱离挂起(暂停)状态(hung state )。

12 目标设备方式(任选)

目标设备方式功能导致HA 与建立的指定SCSI总线有关,以使它可能作为一个目标设备被选择。目标设备方式模型允许外围驱动程序模拟任何SCSI 设备类型。
    若目标设备方式功能由CCB 规定并且该功能不由特殊的SIM 实现来提供,那么功能未实现的CAM 状态应在该CCB 中被返回。
12 . 1 目标设备方式概述
    有两种不同方式的目标设备操作,按路经查询CCB 中目标设备方式支持标记的定义SIM /HA 可能支持其中一种方式或两种方式都支持:
——阶段一认知方式
——主机目标设备方式
    对于阶段一认知方式和土机目标设备方式,CDB 组码为6 和7 (售方专用),每个组码仅有一种大小(如:组码6 其大小为20 ,组码7 其大小为15 )。
    当SIM 接收一个SCSI命令时,阶段一认知方式允许一个目标设备外围驱动程序严格控制所发生的一切。当阶段一认知应用进行了自身注册并接收一个命令时,XPT / SIM 在把该SCSI 命令放入一个可用的CCB 中之后立即完成回调。阶段一认知外围驱动程序负责建立数据、消息、状态字段和CCB 中的CAM 标记。随后重新发出带有执行目标设备I/0 函数码的CCB 以使XPT / SIM 了解它应执行的阶段。“同调一重新发出CCB ”周期在一个命令完成执行之前可能发生多次。
    阶段一认知方式仅应用于SCSI互锁协议互连。该限制是阶段一认知方式设计的结果和它的总线阶段的显式控制。
    总之,接收SCSI 命令块之后,阶段一认知外围驱动程序立即获得一个回调,并期望构造通过执行该命令定相的XPT/SIM 。

主机目标设备方式允许外围驱动程序自身作为一个LUN 注册并提供一组或多组SIM / HA 能为目标设备方式命令处理使用的接受目标设备I/O CCB 。在这种方式中,当选择了适配器并且XPT/SIM 为作为主目标设备LUN 己注册的LUN 接收一个识别消息时,依据本部分规定的条件,SIM/HA 可能接受任何目标设备方式命令。利用一种可用的接受目标设备I/O CCB , SIM / HA 应把接收的主机目标设备方式命令送到接收完成功能的外围驱动程序CDB 。外围驱动程序应解释该命令并依据它的内部知识决定如何响应该命令。SIM/HA 应以一个或多个继续目标设备I/O CCB 的形式响应。SIM/HA 应按外围驱动程序的规定为每个完成的继续目标设备I/0 CCB 回调。
    有些SCSI 总线消息处理和事件通知在SIM/HA 和主机目标设备方式外围驱动程序中处理。例如中止消息。其它消息由SIM/HA透明地处理,例如同步数据传送请求消息。对于需要来自SIM/HA 通知的任选消息.外围驱动程序决定它应支持的任选消息。若主机目标设备方式外围驱动程序己指示该消息不被支持,SIM/HA 应拒绝该消息。接受一个未被透明地处理的支持的目标设备消息时,SIM/HA 应利用立即通知CCB 提供的机制立即通知主机目标设备方式外围驱动程序,在LUN 不再允许之前,立即通知CCB 消息的所有权通常归SIM / HA 。
    总之,主机目标设备方式外围驱动程序对由SIM / HA 接收的命令能够回调多次,实现每个接收的命令和取决于该命令的附加数以及主机目标设备方式外围驱动程序。为仿真设备控制,除了允许有足够功能的外围驱动程序外,该模型还允许处理的所有阶段和被SIM / HA 执行的有细微差别处理的SCSI 命令。

12.2 阶段一认知方式
阶段一认知方式不支持下列SCSI-3 功能:
——标签排队的命令
下列SCSI-2 消息由SIM/HA 透明地处理:
——中止标记
——清除排队
——命令完成
——断开
——识别
——消息奇偶校验错
——消息拒绝(对指定条件)
——无操作
——排队标记消息
——保存数据指针(对指定条件)
——同步数据传送请求
——宽数据传送请求
下列SCSI 一2 消息应由SIM / HA 接收并通过该标准规定的机制提供目标设备外围驱动程序。

——中止
——总线设备复位
——终止I/O 处理
——启动设备检出错误
对于SIM / HA 接收的下列消息,因为一个允许的阶段一认知LUN,SIM /HA应发出一个消息拒绝作为响应:
——中止标记
——清除排队
——全部排队标记消息

12.2 .1阶段认知方式的ENABLE LUN

对于HA ,指定的月标设备ID 应与HA路径查询功能返回的值匹配。指定的LUN 允许选择“1”。若HA 响应一个附加的LUN ,则需要另外允许的LUN 。
    XPT 的供给者定义ENABLE LUN CCB 结构如下:
typedef struc ccb _ enable _ lun3
{

CCB  HEADER3 ccb _ header3                 / *标题信息字段*/
CAM  U16 cam grp6 _ length                 / *组6 售方专用CDB 长度*/

 CAM  U16 cam _ grp7 _ length               / *组7 售方专用CDB 长度*/

 CAM  U8 * cam _ immed notify _ list        / *指向立即通知CCB 表的指针*/

 CAM  U32 cam _ immed notify cnt            / *立即通知CCB号*/

 CAM_U8 * cam  accept _ targ - - list       / *指向接受目标设备I/0 CCB 表的指针*/

 CAM  U32 cam _ acccpt _ targ _ cnt         / *接受目标设备I/0 CCB 号*/ 

 } CCB _ ENABLE _ LUN3 :
12.2.1.1 ENABLE LUM 的组成说明

n             请求CCB 的发送者设置的CCB  EADER3 组成的信息。
cam func _ code
该组成应包含XPT CAM 3 CCB 函数代码。
cam3 _ func _ code
该组成应包含XPT _ ENLUN 函数代码。
port _ id :
该组成应包含一个端口号(如:SCSI 总线号)。
addr _ specl
该组成应包含SCSI 目标设备说明符。
addr spec2
该组成应包含SCSI 逻辑单元说明符。
cam_sim _ generation :
该组成应反映为当前连接操作返回的SIM 连接生成号。
cam _ sim _ bhandle
该组成应反映为当前连接操作返回的SIM 连接处理。
一一cam _ flags ;
以下是该函数有效的cam _ flags , cam  flags 位的完成描述在11.8.1.1 中。
· 阶段-认知方式(CAM TGT  PHASE MODE )应被置“1”
——cam _ grp6 _ length
若目标设备外围驱动程序支持具有组码为“6”的售方专用,那么CCB 的CDB 长度字段应反映支持的最长CDB 。

——cam _ grp7 _ length :
若目标设备外围驱动程序支持具有组码为“7 ”的售方专用,那么CCB 的CDB 长度字段应反映支持的最长CDB
——cam _ immed _ notify _ list
该组成不按阶段一认知方式使用并被置为“空”。
——cam _ immed_notify_cnt
该组成不按阶段一认知方式使用并被置为“O”。
——cam _ accept _ targ list :

该组成或者指向CAM一3 执行目标设备I/0 CCB 表(CCB EXEC TARGET3 )或者为“空”。——cam _ accept _ targ _ cnt :
该组成或者被置为cam _ accept _ targ list 指向的CAM-3 执行目标设备I/O CCB 号或者为“O”。若目标设备CCB 号为“0” ,那么禁止目标设备方式,另外指向CAM-3 执行目标设备I/0 CCB 表(cam_accept _ targ list 组成)的指针见被传送数据的CCB 地址表(见表14 )。

表14 CAM-3 执行目标设备I/0 CCB 表

CAM-3 执行目标设备I/0 CCB 表

CCB EXEC TARGET3*

CCB EXEC TARGET3*

·

·

CCB EXEC TARGET3*

12.2.1.2 ENABLE LUN 返回
ENABLE LUN 函数应返回CAM 状态:
——无错误完成的请求表示允许LUN 成功完成。
——己允许的LUN 表示该LUN 已被允许。
——终止I/0 处理表示具有被首先终止的启动设备建立的一个当前联系。
——无效的请求表示供给的一个或多个CCB 无效。
——无效的路径ID 表示该路径ID 无效。
——无效的目标设备功表示该目标设备ID 不与由路径ID 字段规定的队使用的匹配。

——无效的LUN 表示指定的LUN 在支持的SCSI 总线范围之外。
——未实现的函数表示阶段认知目标设备方式不由该SIM /HA支持。 1888
国家标准下载

下载说明:
1.请先分享,再下载
2.直接单击下载地址,不要使用“目标另存为”
3.压缩文件请先解压
4.PDF文件,请用PDF专用软件打开查看
5.如果资料不能下载,请联系本站
最新评论
发表评论
大名:
联络: QQ 或者 邮箱
内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。

验证码: 6362