Zone协议
1. zone manager:
1) 定义:zone manager 具备访问End Device的能力,该End Device的SAS port所属的zone Group能访问Zone Group 2,Zone Group 2常用来做管理Zone,配置ZPT(Zone Permission Table), PHY Info,Zone Lock/Unlock,Enable/Disable Zoning, Zone password.
2) 若Expander1连接到Expander2,并且两个Expander都在一个ZPSDS,那么zone manager可以指定任何expander1连接expander2的PHY构成zone group1,换句话说expander之间连接的phy一般都指定为ZG1,其他在IZ=0边界上的PHY的可以指定为其他ZG,在ZPSDS之外(如另外一个ZPSDS)的都被认为是同一个ZG
3)
2. Zone Group: One or more phy(s) 构成一个Group, 这个组组成一个Zone。 Zone Group 个数从0到255(256个)或者0到127(128个). 所有的Wide Port phy(s)属于同一个zoneGroup
3. 每一个zoning expander device都包含一个ZPT,它用来控制ZG之间是否能建立连接。
4. 对于Zone Manager password而言,expander device 将会维护一个当前值(current value),保存值(saved value)和默认值(default value)。
对于zoning enabled, ZPT,ZPI, expander device 将会维护一个当前值(current value),影印值(shadow value),保存值(saved value)和默认值(default value)。
5. Zoning expander device 的特殊性
1)包含一个RT(Router Table)
2)包含ZPT,该zpt支持128或者256个ZG
3)为每一个PHY保存当前和影印ZPI(zone phy info)
6. ZPI(Zone Phy Information)
1) 定义:zoning expander device 的每一个PHY都能有一个ZPI域
2) ZPI域:
a) IZ(INSIDE ZPSDS):该PHY是否在ZPSDS的内部或者边界上(IZ=0 在边界,IZ=1 在内部)
b) REQUESTED INSIDE ZPSDS:用来建立该PHY要不要落在ZPSDS边界上
c) INSIDE ZPSDS PERSISTENT:link reset 后,据此位决定该PHY的IZ值0/1
d) ZONE GROUP PERSISTENT: 若IZ=0(在边界),link reset 后,决定该PHY的ZG
e) ZONE GROUP: 决定该PHY落在那个ZG。
3) 特点:
a) expander Wide Port上的所有PHY都含有相同的ZPI,可用一个ZPI来维护。
b) IZ=0有以下几层含义:
i) zoning 没被使能
ii)该PHY连接到End Device
iii)该PHY链接到一个不支持zoning的expander device
iv) 该PHY链接到一个没有使能zoning的expander device
iiv)该PHY连接到另外一个ZPSDS的使能zoning的expander device
c) link reset 后,IZ的值才会发生改变,它的变化受到ZPI其他位的影响。
d) link reset 后,REQUESTED INSIDE ZPSDS bit决定该PHY ZPI其他位的值。
e) expander之间互联的PHY,ZG指定为ZG1.
7. ZONE Groups
1) 定义:Zone Group: One or more phy(s) 构成一个Group, 这个组组成一个Zone。 Zone Group 个数从0到255(256个)或者0到127(128个). 所有的Wide Port phy(s)属于同一个zoneGroup
2) 特点:
SDK FW判断该PHY属于哪个ZG,再根据该ZG做他能对应的事情如下:
a) ZG0:特殊zone group,只能访问ZG1,
b) ZG1:该group能访问所有的ZG,包括ZG0.
c) ZG2:管理ZG, 用来(SMP)配置ZPT(Zone Permission Table), PHY Info,Zone Lock/Unlock,Enable/Disable Zoning, Zone password
d) ZG3: 用来执行同zone相关的SMP命令,比如smp zone broadcast
e) ZG4-7: Reserved
f) ZG8-255: 用 ZG2 来配置
8. ZPT(Zone Permission Table)
ZG之间使能与关闭访问的表格
9. ZONING Expander Route Table
1) 该路由表格是基于expander的ERT(Expander Rout Table)
10.源ZG和目的ZG值确定策略:
源ZG确定方法:
1) 若接收到OPEN Frame的expander phy的IZ等于0,源ZG取该phy的ZG值
2) 若接收到OPEN Frame的expander phy的IZ等于1,源ZG的值由 OPEN FRAME里面的SOURCE ZONE GROUP域决定
目的ZG确定方法:
1) 若到目的expander phy的路由方法为direct:目的ZG取该目的expander PHY 的ZG。
2) 若到目的expander phy的路由方法为subtractive:
此时如果该目的SAS address落在zoning expander RT,目的ZG取RT里面的ZG值
此时如果该目的SAS address没落在zoning expander RT而需要substractive,目的ZG取substractive对应PHY的ZG值
3) 若到目的expander phy的路由方法为table: 目的ZG取RT里面的ZG值
11. 理解 SPL2r04 TABLE 43:
link reset 后,REQUESTED IZ 和 IZ PERSISTENT 对ZPI的改变关系:
1) 若REQUESTED INSIDE ZPSDS位为0,表示不请求IZ位,IZ为0
2) 若REQUESTED INSIDE ZPSDS发送时为1,接收时为0,表示请求IZ失败,IZ=0
3) 若REQUESTES INSIDE ZPSDS 发收一致,
a) 如果IZ PERSISTENT 发收0,表示不作PERSISTENT,IZ的值受到链路复位前后的SAS ADDRESS 或者REQUESTE IZ的影响,如果两个值(sas address or REQUESTED IZ)不一,IZ=0,若相同IZ=1
b) 如果IZ PERSISTENT 发收不一致, 如a)
c) 如果IZ PERSISTENT 发收1,IZ=1
12. 在zoning expander devie 中的BC 处理
1) BPP 如何决定源ZG
a) BPP 受到 BC event notify后,谁触发了BC的那个expander的PHY ZG就作为源ZG
b) SMP ZONED BROADCAST通过ZG3发出后,源ZG就用该命令的smp request的ZG值
2) BPP会提交BC primitive给每一个expander phy,但是不会提交该BC给一个曾经收到过该BC的expander phy,产生这种情形有一下集中情况:
a) 任何源ZG都访问了一个ZG
b) Zone Activate了,zone expander locked, IZ=1,同时源ZG已经访问过ZG2了。
c) Zone Activate了,zone expander unlocked,任何源ZG都访问了一个ZG
3) BPP 提交BC 给另一个expnader port的过程
a) 若IZ=1, BPP会请求一次SMP ZONED BROADCAST 请求给另一个expander,用来说明源ZG
b) 若IZ=0, BPP会发送BC primitive给这个IZ 边界END device.
13. Zone Configuration.
Zone 配置四步走:
lock, load, activate, unlock
1) lock step:
使用SMP ZONE LOCK request来锁住zoning expander device. SMP REPORT GENERAL 响应可也指示该设备是否被锁ZONE LOCKED bit. Expander 被锁住后,device server可以做SMP ZONE 配置请求,SMP ZONE ACTIVATE激活,SMP ZONE UNLOCK解锁请求。
a) 出现ZONE LOCK VIOLATION function result 有两种情况,一种是expander device 没有被锁,但这个时候做了SMP Zone configuration 或者SMP UNLOCK 或者SMP ACTIVATE; 一种是expander device 上锁了,但这个时候从一个非活跃的Zone Manager处做了SMP Zone configuration 或者SMP UNLOCK 或者SMP ACTIVATE.
2) load step:
用来存储zoning expander 的zone 配置信息给影印值. 相关的几个重要SMP配置函数如下:
SMP CONFIGURE ZONE PHY INFORMATIN
SMP CONFIGURA ZONE PERMISSION TABLE
SMP ENABLE DISABLE ZONING
一旦被锁定的expander devicd处理SMP zone配置请求时,ZONE CONFIGURING 会被设置为1,SMP REPORT GENERAL可以读取这个值。此时如果ZONE CONFIGURING 已被设置为1,SMP zone的请求就会被OPEN_REJECT。
这个阶段只会影响影印值,不会影响当前值,让影印值生效要在activate步骤。
当SMP zone 配置时,FUNCTION RESULT返回为ZONE LOCK VILATION时, zone manager会解锁所有已经锁定的zoning expandr devices.
load 步骤可能会因为zone lock inactivity timer expire而被跳过。
3) activate step
激活步骤有以下几个过程要完成:
a) 如果请求保存,则保存影印值
b) 拷贝影印ZPT给当前ZPT
c) 若PHY的IZ为0, 拷贝影印ZPI给当前的ZPI
d) 若PHY的IZ为1, 设置当前ZG=1,其他的ZPI域用影印ZPT替代当前ZPI。
激活步骤会让Zone Manager产生BC(Zone Activate)或者一个对所有已锁定zoning expander devices的SMP ZONE ACTIVATE 请求
一旦一个被锁定的zoning expander device收到了一个BC(Zone Activate)或者收到一个SMP ZONE ACTIVATE request,那么zoning expander device 将会:
a) 拷贝影印ZPT给当前ZPT
b) 若PHY的IZ为0, 拷贝影印ZPI给当前的ZPI
c) 若PHY的IZ为1, 设置当前ZG=1,其他的ZPI域用影印ZPT替代当前ZPI
一旦有效的zone Manager收到一个携带ZONE LOCK VIOLATION 的SMP ZONE ACTIVATE 响应, Zone Manager 将会解锁所有锁定的zoning expander devices.
load 步骤可能会因为zone lock inactivity timer expire而被跳过。
4) Unlock step:
解锁步骤确保有效的zone Manager 解锁已锁的zoning expander devicews或者保证在超时时解锁。
14. 使能一个zoning expander device 的方法:
1) 检查REPORT GENERAL的响应,查看ZONING SUPPORTED 位和ZONING ENABLED位,然后用zong 配置过程配置它
2) 在激活阶段用SMP ENABLE DISABLE ZONNING command 来改变
浙公网安备 33010602011771号