当前位置:文档之家› fc光纤通道协议总结

fc光纤通道协议总结

1 FC结构和概念

1.1 概述

FC-4 映射层

FC-3 通用服务

FC-2 信号协议

FC-1 传输协议

FC-0 接口/介质

FC逻辑上是一个高性能的双向点到点的串行数据传输通道,在物理上

它可以通过交换网互联连接多个通讯节点也就是N端口,也可以以点

到点的形式连接。FC协议由一系列的功能层组成,FC-PH由相关的功

能层FC-0,FC-1,FC-2组成。

FC-0层(物理层)由传输介质、发送机和接收机及接口组成。物

理层规定了多种介质在不同速率下工作的驱动接收能力。

FC-1层(编码层)进行8B10B编码。

FC-2规定了端到端数据块的传输机制。FC-2层协议应管理下列内

容:

a)交换的激活和终止

b)序列的启动和终止

c)X_ID分配和重新分配

d)序列主动权

e)SEQ_ID的分配

f)分段和重组

g)序列

h)帧的序列计数SEQ_CNT

i)帧序列错误的检测

j)帧序列错误的报告(3类服务除外)

FC-3层提供了一组FC节点上多个N端口的通用服务(基本链路服务,扩展的链路服务,F4层链路服务)

FC-4层ULP到FC的映射组成FC-4层,是FC中的最高层

FC节点

一个FC节点node如上图所示,节点可支持一个或多个N端口和一个或多个FC-4层协议,每个N端口包括FC-0,FC-1,FC-2层

的功能,FC-3层选择性的为多个N端口和FC-4层提供通用服务。

1.2 拓扑结构

点到点结构

交换网结构

仲裁环结构

NL端口:具有仲裁功能的N端口

FL端口:具有仲裁功能的F端口

1.3 交换网

交换网的主要功能是从源N端口中接收帧,并按帧中给出的地址标识

符寻找目的N端口。每个N端口通过链路连接到交换网上。每个N端

口都有一个唯一的N端口地址标识符。FC-2层定义了交换网与所连接

的N端口间的协议。

连接交换子

无连接交换

子网

R x

T x

R x T x

……..……..

交换网F 端口

F 端口

F 端口

F 端口

BUFFER

BUFFER

交换网包括两个或更多的F 端口,每个F 端口可连接到一个N 端口上。 连接交换子网用于在F 端口间和F 端口与N 端口间建立专用连接。 无连接交换子网用于在F 端口间和F 端口与N 端口间进行多路复用。

1.4 构造块

FC-2层中定义的构造块有:帧,序列,交换,协议。

序列由一个或多个数据帧及其响应组成。交换由一个或多个序列组成。交换可以单向的,也可以是双向的。ULP 使用FC 进行数据交换之前须完成登录,登录完成后,ULP 就可以使用FC 直到登录实效为止。

帧:分为数据帧和链路控制帧

序列:由一组数据帧和链路控制帧组成,序列单向发送。序列级

的错误恢复由FC-2层以上的层完成。每个序列都分配了一个SEQ_ID 。

交换:由一个或多个非并发序列组成。交换可以在一个1类专用

连接中完成,也可以跨多个1类连接。交换的双方都分配了一个

交换标识符OX_ID ,RX_ID。

协议:提供的协议如下

a)原语序列协议

b)交换网登录协议

c)N端口登录协议

d)数据传输协议

e)N端口登出协议

2 FC-0/FC-1层

2.1 FC-0

FC-0层包括多种介质及能以不同速度工作的发送机和接收机。

100 – SM – LL - L

速度

100 50 25 12100MB/S 50MB/S 25MB/S 12MB/S

介质

SM M5 M6 TV 单模

多模50微米

多模62.5微米视频电缆

MI TP 细电缆

TP

距离

L

I

S

长距离

中距离

短距离

发送机

LL

SL

LE

EL

长波长激光

短波长激光

长波LED

FC-0层发送机接口

FC-0层接收机接口

2.2 FC-1

FC-1层为编码层,FC采用8b10b编码,编码后产生传输字符。

数据流转换示意图

3 有序集

FC-1层使用8b10b编码,通过光纤发送的信息应把一组8位数据转换

为10位传输字符。数据值可以统一的表示为或,其中D表示为数据代

码,K表示为特殊的命令代码。传输字由4个连续传输字符组成,这

四个字符传输前和接收后应视为一个整体。

把4个特定的传输字符进行组合形成有序集,有序集由4个专用字符

和数据字符组成,FC-PH 定义了如下有特殊意义的有序集:

LR 链路复位负

LRR 链路复位

响应

帧定界符:放在帧内容之前或之后的有序集。SOF是放在帧内容之前的有序集;EOF是放在CRC之后的有序集,表示序列内容的结束。

原语信号:

Idle 表示端口已做好帧传输和接收的准备。在没有发送数据帧、R_RDY或原语序列是应发送Idle。

R_RDY:表示收到一个1类服务请求帧、2类或3类帧,而且还可以接收更多的帧。R_RDY之前和之后应至少有2两个Idle,帧之间应至少有6个原语信号。

原语序列:原语序列是一个连续重复发送的序列集,当端口或一个端口的接收机逻辑遇到了特殊情况,应发送原语序列。当条件存在,原语序列应不断地发送。当收到一组原语序列,应根据端口的状态,回送相应的原语或Idle。原语序列识别需要连续检测3个同样的原语序列,原语序列之间不能有其他数据。原语序列协议规定如下:

a)链路初始化

b)在线到离线转换

c)链路失效

d)链路复位

发送条件响应

发送原语序

NOS 无操作检测到链路失效:OLS

4 帧

帧分类

4.1 帧格式

SOF 帧头数据CRC EOF...Idle...

...Idle...

可选帧头

节数

帧内容

通用帧格式

N端口发送机发送帧之间最少有6个原语信号,接收机接收帧之前需接收到2个Idle,交换网可以插入或除去Idle。

SOF:SOF是帧内容之前的一个有序集。

SOF类别描述

SOFc1用于请求一个1类连接

SOFi11类服务序列的第一帧

SOFn11类服务正常帧起始

SOFi22类服务序列的第一帧

SOFn22类服务正常帧起始

SOFi33类服务序列的第一帧

SOFn33类服务正常帧起始

SOFf交换网起始帧

帧头:是帧内容的第一个字段,24个字节,紧跟着SOF。帧头

用于控制链路操作、控制设备传输协议和检测丢失或无序的帧。

数据字段:数据字段在帧头之后。长度等于四字节的倍数。FC-0

型帧数据段长度为零,FC-1型帧长度等于四字节的倍数,范围

为0字节到2112个字节。ULP的有效载荷不能被4整除,应进

行填充。

CRC:为紧跟着数据字段的四个字节字段,用于检测帧头和数据

字段的数据完整性。CRC校验中不包括SOF,EOF

EOF :为紧跟着CRC 后的一个有序集。指明了帧内容的结束。

EOF 类别

描述

帧内容有效 EOFn 帧内容结束

EOFdt 撤销1类专用连接 EOFt 表明该序列结束

帧内容无效 EOFni 交换网检测出错误,用其替代EOFn 或EOFt 表明帧内容无效

EOFdti 交换网检测出错误,用其替代EOFdt 表明帧内容无效

帧内容遭破坏

EOFa N 端口/F 端口用于表明内部故障

4.2 帧头

Bit31~24

Bit23~16

Bit15~8Bit7~0

R_CTL D_ID S_ID rrrrrrrr TYPE F_CTL

SEQ_ID

DF_CTL SEQ_CNT RX_ID

0X_ID

参数字段

字0字1字2字3字4字5

帧头

R_CTL 路由控制

R_CRL 是一个对帧功能进行分类的一个单字节字段,包括路由选择字段和信息字段。

Bit31~bit28 路由选择字段 帧类型

Bit31~bit28 信息字段 描述 备注

0000 FC4层设备数

据帧

0000 未分类信息

0001 请求数据Solicited Data

0010

自发控制Unsolicited Control

0011请求控制Solicited

Control

0100自发数据Unsolicited

Data

0101数据描述符Data

Descriptor

0110自发命令Unsolicited

Command

0111命令状态Command

Status

其他未指定

0100视频数据帧同上同上

0011FC4层链路数

据帧

同上同上

0010扩展链路数

据帧

(TPYE应为

0000 0001)

同上同上

1000基本链路数

据帧

(TPYE应为

0000 0000)0000NOP 无操作基

令0001ABTS 中止序列

0010RMC 结束连接

0011保留

0100BA_ACC 基本接受

0101BA_RJC 基本拒绝

其他保留

1100链路控制帧

出F_BSY外

TPYE 保留0000ACK_1链

码0001ACK_0/ACK_N

0010P_RTJ

0011F_RTJ

0100P_BSY

0101F_BSY 对数据帧忙

0110F_BSY 对链路控制帧忙0111LCR 链路信用复位

其他保留

F_CTL字段

F_CTL字段是一个与帧内容相关的包含控制信息的3字节字段

相对偏移30:参数字段无意义

1:参数字段为相对偏移

交换重组2为交换重组保留

填充数据字节1~000:表示填充0个字节

01:表示填充1个字节

10:表示填充2个字节

11:表示填充3个字节

D_ID是目的N端口或F端口内的包含地址标识符的3个字节字段

S_ID是源N端口或F端口内的包含地址标识符的3个字节字段

TYPE字段是一个单字节字段,表示了数据帧的帧内容类型。在

F_BSY帧中TYPE字段表示原因码。

SEQ_ID是一个由序列启动方分配的一个单字节字段。当序列开放

时,每对D_ID S_ID都由唯一的SEQ_ID。

DF_CTL是一个单字节字段,该字段规定了在设备数据帧或视频数

据帧的数据帧的开始部分是否有可选帧头。

SEQ_CNT是一个两个字节字段,表示在同一个交换中的一个序列或

多个连续序列中数据帧的传输顺序。

OX_ID由交换启动方分配的交换标识符,两个字节。

RX_ID由交换接收放分配的交换标识符,两个字节。

参数字段是一个四字节字段,对于链路控制帧,参数字段表示特

定信息。

对于数据帧,参数字段用来规定相对偏移。

5 链路响应

链路控制帧提供如下功能:

a)交付成功提示

b)交付不成功提示

c)流控制和缓冲区管理反馈

d)到N端口的底层控制命令

成功交付的数据帧响应如下:

对1类数据帧成功交付使用ACK_0, ACK_1, ACK_N;

对2类数据帧成功交付使用ACK_0, ACK_1, ACK_N;

对3类数据帧成功交付无响应。

不成功交付的数据帧响应如下:

对1类数据帧不成功交付使用F_BSY、P_BSY、F_RJT、P_RJT 相应;

对2类数据帧不成功交付使用F_BSY、P_BSY、F_RJT、P_RJT 相应;

对3类数据帧不成功交付无响应。

R_RDY :

表示接收到一个帧,且接收帧的接口缓冲区还可接收到更多的帧。对于所有2类3类和1类连接请求帧端口间应发送R_RDY,R_RDY无响应。ACK帧:ACK_0 优先于 ACK_N优先于ACK_1

1)ACK_1帧所有N端口都支持ACK_1,ACK_1的SEQ_CNT应与确认帧

的相匹配,参数字段ACK_CNT为1 R_CTL信息字段为0;

2)ACK_0帧表示序列中的所有数据帧都已经确认。参数字段ACK_CNT

为0 R_CTL信息字段为1,ACK_0不参与EE_Credit控制

3)ACK_N 接收方确认N个连续数据帧,参数字段ACK_CNT为所确认

数据帧的个数,SEQ_CNT为确认的最后一个数据帧的SEQ_CNT。F_BSY:

1类服务中 F_BSY只能响应1类SOFc1帧,在2类服务中F_BSY 可响应任何数据帧和ACK帧,在3类服务中不能使用忙响应。

对链路控制帧不能响应P_BSY,2类服务中,如果收到响应ACK 帧的F_BSY,则应丢弃F_BSY。

R_CTL 信息字段为0110时表示对链路控制帧忙,信息字段为

0101表示对数据帧忙。TYPE字段表示了原因码。

P_BSY:

表示接收N端口被临时占用,不能接收帧,1类服务中 P_BSY 只能响应1类SOFc1帧,在2类服务中P_BSY可响应任何数据

帧和ACK帧,在3类服务中不能使用忙响应。

对链路控制帧不能响应P_BSY,参数字段包含4个字节的动作码和原因码。

拒绝帧P_RJT\F_RJT:

表示帧的交付被拒绝,参数字段包含4个字节的拒绝动作码和原因码。

在1类2类服务中,端口检测到数据帧错误,则应发送一个拒

绝帧。交换网在下列情况下可以发送拒绝帧:

a)服务类不支持

b)无效的S_ID或D_ID

c)N端口临时或永久不可用

N端口只有在收不到期望的ACK时才拒绝链路控制帧;在有效

交换中检测到链路控制帧错误,则应启动中止序列协议;对无

效交换忽略错误。

6 链路服务(FC-3层)

6.1 基本链路服务

基本链路服务命令有单个基本链路数据帧组成,使用基本链路服务命

令之前不需要登录

ABTS:

用于序列启动方请求序列接收方中止一个或多个序列

序列启动方或序列接收方请求ABTS接收方中止交换,SEQ_ID,X_ID

与最后一个序列的相同,该命令无有效载荷。

ABTS帧的SEQ_CNT应比最后一个序列的SEQ_CNT大1

下列情况下ABTS启动方可发送ABTS帧:

a)没有EECredit可使用

b)没有序列主动权

c)序列没有开放

d)并发序列已达到了所支持的最大数目

BA_ACC:通知链路服务请求方请求已完成,如果ABTS发送方有序列主

动权,则应转化主动权。SEQ_ID重新分配,X_ID与ABTS匹配。

基本接受有效载荷

BA_RJT:通知链路服务请求方请求被拒绝,SEQ_ID重新分配,X_ID

与ABTS匹配。有效载荷的前4个字节标示了拒绝原因码。

NOP:可以代替正常数据帧启动1类连接,启动序列,中止序列,结束

1类连接。无确认序列。

RMC:用于请求立即撤销一个1类连接。响应时请发送由EOFdt结束

的ACK帧。使用RMC撤销连接,所有的开放的序列都异常终止,因此

不能把该方法当作撤销连接的正常方式。无确认序列。

6.2 扩展链路服务

扩展链路服务要求目的端口实现一个功能或服务。每个请求或确认都

由单独的序列构成。有效载荷的前4个字节表示了LS命令码

0000 0111--RCS读当前专

用连接状

了解其他N端口连接状态

0000 1000--RES读交换状

0000 1001--RSS读序列状

0000 1010--RSI请求序列

主动权

转换交换双方序列主动权0000 1011--ESTS建立流用于EE_Credit信用评估0000 1100--ESTC评估信用

0000 1101--ADVC建议信用

0000 1110--RTV读超时值返回R-A-TOV E-D-TOV 0000 1111--RLS读链路状

返回链路错误状态块

0001 0000--ECHO回送应答有效载荷与ECHO相

0001 0001--TEST测试无确认序列

0001 0010--RRQ复位恢复

限定符恢复S_ID,D_ID,OX_ID,RX_ID, SEQ_CNT低位和高位之间的SEQ_CNT

其他--保留

6.3 总结

基本链路服务命名由单个基本链路数据帧组成,作为交换的一部

分。

扩展链路服务仅在单个交换内部执行。大多数扩展服务协议都是

两个序列的交换。

基本和扩展确认帧和确认序列应按与请求一样的服务类。

如果登录不成功,因并发序列限制为1,所以不能发起第二个交换

来执行扩展的链路服务。因此中止序列协议时恢复动作的首选。

如果登录不成功,则不能尝试ESTC,ESTS,ADVC(EE_Credit评估)。

相关主题
文本预览
相关文档 最新文档