技术领域
[0001] 本发明涉及计算机通信技术领域,具体为一种光纤通道超时故障识别及处理正确性的自动测试方法。
相关背景技术
[0002] 光纤通道作为新一代飞行器的主干网络为机载各分系统提供高速互连通信支持,当检测到被测设备的光纤通道通信端口的链路超时信号(即E_D_TOV超时信号)时,需执行
链路复位协议;当检测到光纤通道通信端口的链路故障超时信号(即R_T_TOV超时信号)时,
需执行链路故障协议。此时,如果检测设备对光纤通道中通信端口的链路超时相关故障识
别和处理不正确,会导致链路出现无法恢复到有效状态的问题。
具体实施方式
[0045] 下面结合具体实施例来进一步描述本发明,本发明的优点和特点将会随着描述而更为清楚。但这些实施例仅是范例性的,并不对本发明的范围构成任何限制。本领域技术人
员应该理解的是,在不偏离本发明的精神和范围下可以对本发明技术方案的细节和形式进
行修改或替换,但这些修改和替换均落入本发明的保护范围内。
[0046] 在本实施例的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明创造和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解
为对本发明创造的限制。
[0047] 此外,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明创造的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0048] 本具体实施方式设计了一种光纤通道超时故障识别及处理正确性的自动测试方法,将测试端口PORT_TEST与被测端口N/F_Port连接,使测试端口PORT_TEST与被测端口N/
F_Port进行数据帧和原语的交互与控制,采用在测试端口PORT_TEST和被测端口N/F_Port
之间建立的链路超时场景,对光纤通道链路复位协议执行的正确性进行自动测试;和/或采
用在测试端口PORT_TEST和被测端口N/F_Port之间建立的链路故障超时场景,对光纤通道
链路故障协议执行的正确性进行自动测试。
[0049] 在第一个实施例中,用建立的链路超时场景对光纤通道链路复位协议执行的正确性进行自动测试的方法,包括以下步骤:
[0050] S1、测试端口PORT_TEST上电或复位时进入初始化状态,进行初始化。
[0051] S2、初始化完成后,经测试选择状态进入测试使能状态,对链路超时进行使能测试,输出使能测试结果。
[0052] S21、链路超时使能测试正常时,则进入与其对应的链路复位协议测试,输出链路复位协议测试结果。
[0053] S211、链路复位协议测试正常,则将链路超时测试完成标志设为有效。
[0054] S212、链路复位协议测试错误,则输出链路超时测试错误信号。
[0055] S22、链路超时使能测试错误,则向测试选择状态输出链路超时测试错误信号。
[0056] S3、依据链路超时测试结果,输出光纤通道链路复位协议执行结果。
[0057] 进一步的,步骤S2中,链路超时的使能测试方法为:控制被测端口N/F_Port向测试端口PORT_TEST依据最大信用值N发送N个3类数据帧,PORT_TEST接收到N个3类数据帧后,在
E_D_TOV时间内一直不返回R_RDY原语。
[0058] 若检测被测端口N/F_Port能够检查到链路超时错误,并发送LR原语,则链路超时使能正确;否则链路超时使能错误,返回测试使能状态,并向测试选择状态上报链路超时测
试错误信号。
[0059] 进一步的,步骤S21中,链路复位协议测试的方法为:
[0060] 被测端口N/F_Port发送LR原语,控制测试端口PORT_TEST发送LRR原语,若N/F_Port端口发送IDLE原语,则上报链路超时测试正常信号,将链路超时测试完成标志置为有
效,PORT_TEST端口返回测试选择状态;否则报链路复位协议测试异常信号,将链路超时测
试完成标志置为有效,PORT_TEST端口返回测试使能状态。
[0061] 在第二个实施例中,用建立的链路故障超时场景对光纤通道链路故障协议执行的正确性进行自动测试的方法,包括以下步骤:
[0062] 步骤1、测试端口PORT_TEST上电或复位时进入初始化状态,进行初始化。
[0063] 步骤2、初始化完成后,进入链路故障超时测试选择状态,对链路故障超时进行使能测试和链路故障协议测试,输出链路故障超时测试结果。
[0064] 步骤3、依据链路故障超时测试结果,输出光纤通道链路故障协议执行结果。
[0065] 进一步的,步骤2中,链路故障超时包括信号丢失状态、同步丢失状态、端口处于LR1使能状态、端口处于LR2使能状态、端口处于LR3使能状态共五种状态。
[0066] 其中,链路故障超时使能测试和链路故障协议测试包括:
[0067] 步骤21、进入五种状态中与各状态对应的使能状态,分别对五种状态进行使能测试。
[0068] 步骤211、若端口处于LR1使能状态、端口处于LR2使能状态、端口处于LR3使能状态的使能测试均正常,则输出链路故障超时使能正确信号并进行链路故障协议测试。
[0069] 步骤2111、若链路故障协议测试正常,则输出链路故障协议执行正确信号。
[0070] 步骤2112、若链路故障协议测试错误,则输出链路故障协议执行错误信号。
[0071] 步骤212、若端口处于LR1使能状态、端口处于LR2使能状态、端口处于LR3使能状态中某项使能测试错误,则输出对应状态的链路故障超时使能错误信号。
[0072] 步骤22、若五种状态下的使能测试中存在错误,则输出链路故障超时使能错误信号。
[0073] 具体的,步骤21中,信号丢失使能测试方法为:控制测试设备的PORT_TEST停止信号发送,持续时间为R_T_TOV限定值以上,如果N/F_Port端口能够检查到链路故障超时错
误,并发送NOS原语,则上报信号丢失链路故障超时使能正确信号,PORT_TEST端口进入链路
故障超时状态下链路故障协议测试状态;否则,PORT_TEST端口返回其测试使能状态,上报
信号丢失测试错误信号,并将信号丢失测试完成标志置为有效。
[0074] 同步丢失使能测试方法为:控制测试设备的PORT_TEST改变端口速率并保持该状态持续时间大于R_T_TOV限定值,如果N/F_Port端口能够检查到链路故障超时错误,并发送
NOS(即不可操作原语序列)原语,则PORT_TEST端口进入链路故障超时状态下链路故障协议
测试状态,上报同步丢失链路故障超时使能正确信号;否则,PORT_TEST端口返回其测试使
能状态,上报同步丢失测试错误信号,并将同步丢失测试完成标志置为有效。
[0075] 端口处于LR1使能状态使能测试方法为:控制N/F_Port端口向测试设备的PORT_TEST端口依据最大信用值N发送N个3类数据帧,PORT_TEST在收到N个3类数据帧后,在E_D_
TOV时间内一直不返回R_RDY原语,如果检测到DUT的N/F_Port端口能够检查到链路超时错
误,并发送LR原语,则PORT_TEST端口进入端口处于LR1测试状态,上报端口处于LR1使能正
确信号;否则,PORT_TEST端口返回其测试使能状态,上报端口处于LR1使能错误信号,并将
端口处于LR1状态测试完成标志置为有效。
[0076] 端口处于LR2使能状态使能测试方法为:N/F_Port端口向测试设备的PORT_TEST端口依据最大信用值N发送N个3类数据帧,PORT_TEST在收到N个3类数据帧后,在E_D_TOV时间
内一直不返回R_RDY原语,PORT_TEST在收到N_Port发送的LR原语后发送LR原语。如果检测
到N_Port发送的LRR原语,则PORT_TEST端口进入端口处于LR2测试状态,上报端口处于LR2
使能正确信号;否则,PORT_TEST端口返回其测试使能状态,上报端口处于LR2使能错误信
号,并将端口处于LR2状态测试完成标志置为有效。
[0077] 端口处于LR3使能状态使能测试方法为:N/F_Port端口向测试设备的PORT_TEST端口依据最大信用值N发送N个3类数据帧,PORT_TEST在收到N个3类数据帧后,在E_D_TOV时间
内一直不返回R_RDY原语,PORT_TEST在收到N_Port发送的LR原语后发送LRR原语。如果检测
到N_Port发送的IDLE原语,则PORT_TEST端口进入端口处于LR3测试状态,上报端口处于LR3
使能正确信号;否则,PORT_TEST端口返回其测试使能状态,上报端口处于LR3使能错误信
号,并将端口处于LR3状态测试完成标志置为有效。
[0078] 具体的,步骤211中,端口处于LR1的链路故障协议测试方法为:控制N/F_Port端口发送LR原语,控制保持该状态持续时间大于R_T_TOV限定值,在此期间测试设备PORT_TEST
端口不发送任何原语信号,如果N/F_Port端口能够检查到端口处于LR1状态超时错误,并发
送NOS原语,则PORT_TEST端口进入链路故障超时状态下链路故障协议测试状态,上报端口
处于LR1状态超时使能正确信号;否则,PORT_TEST端口返回其测试使能状态,上报端口处于
LR1状态测试错误信号,并将端口处于LR1状态测试完成标志置为有效。
[0079] 端口处于LR2的链路故障协议测试方法为:N/F_Port端口发送LRR原语,控制保持该状态持续时间大于R_T_TOV限定值,在此期间测试设备PORT_TEST端口不发送任何原语信
号,如果N/F_Port端口能够检查到端口处于LR2状态超时错误,并发送NOS原语,则PORT_
TEST端口进入链路故障超时状态下链路故障协议测试状态,上报端口处于LR2状态超时使
能正确信号;否则,PORT_TEST端口返回其测试使能状态,上报端口处于LR2状态测试错误信
号,并将端口处于LR2状态测试完成标志置为有效。
[0080] 端口处于LR3的链路故障协议测试方法为:N/F_Port端口发送IDLE原语,控制保持该状态持续时间大于R_T_TOV限定值,在此期间测试设备PORT_TEST端口不发送任何原语信
号,如果N/F_Port端口能够检查到端口处于LR3状态超时错误,并发送NOS原语,则PORT_
TEST端口进入链路故障超时状态下链路故障协议测试状态,上报端口处于LR3状态超时使
能正确信号;否则,PORT_TEST端口返回其测试使能状态,上报端口处于LR3状态测试错误信
号,将端口处于LR3状态测试完成标志置为有效。
[0081] 进一步的,步骤211中链路故障超时状态下链路故障协议测试的方法为:
[0082] N/F_Port端口一直发送NOS原语,测试设备的PORT_TEST端口发送OLS原语,待N/F_Port端口返回LR原语后PORT_TEST端口发送LRR原语,如果N/F_Port端口在收到LRR原语后
发送IDLE原语,则PORT_TEST端口返回链路故障超时测试选择状态,上报链路故障超时状态
下链路故障协议执行正确信号;否则,PORT_TEST端口返回返回测试使能状态,上报链路故
障超时状态下链路故障协议执行错误正确信号,并将链路故障超时测试完成标志置为有
效。
[0083] 在第三个实施例中,用建立的链路超时场景对光纤通道链路复位协议执行的正确性进行自动测试和采用在测试端口PORT_TEST和被测端口N/F_Port之间建立的链路故障超
时场景,对光纤通道链路故障协议执行的正确性进行自动测试的方法,包括以下步骤:
[0084] 步骤一、测试端口PORT_TEST上电或复位时进行初始化;
[0085] 步骤二、初始化完成后,测试端口PORT_TEST进入测试选择状态,分别对链路超时和链路故障超时进行测试;
[0086] 步骤二一、对链路超时进行使能测试和光纤通道链路复位协议测试,输出链路超时测试结果;
[0087] 步骤二二、对链路故障超时进行使能测试和光纤通道链路故障协议测试,输出链路故障超时测试结果;
[0088] 步骤三、基于链路超时测试结果和链路故障超时测试结果,输出光纤通道超时故障识别及处理正确性结果。
[0089] 本实施例中,本实施例是为了实现能够同时对光纤通道超时故障中超时和故障超时进行判断,其与第一个实施例和第二个实施例的区别在于在初始化完成后,首先进行超
时和故障超时的选择,然后在对其一一进行检测和判断。
[0090] 且本实施例中,步骤二一中链路超时的使能测试和光纤通道链路复位协议的测试与第一个实施例相同;步骤二二中链路故障超时的使能测试和光纤通道链路故障协议的测
试与第二个实施例相同。
[0091] 在上述第一个至第三个实施例中,在完成初始化后且进入使能测试前,以及在初始化状态后由任意一个子状态返回至测试使能状态时,都需要对测试端口PORT_TEST和被
测端口进行恢复,测试端口PORT_TEST和被测端口恢复至测试使能态的实现方法为:将测试
端口PORT_TEST与被测端口N/F_Port达到Active状态,将E_D_TOV(错误检测超时值)恢复为
默认值,将R_T_TOV(接收传输超时值)恢复为默认值。
[0092] 参见图1所示,以下通过具体的示例,对上述光纤通道超时故障识别及处理正确性的自动测试进行说明:
[0093] 进行“初始化”:初始化上电或复位时进入该状态。在该状态下,测试设备的FC测试端口PORT_TEST与DUT的FC端口N/F_Port进行同步操作,若达到Active状态,则PORT_TEST端
口进入“测试使能状态”;否则,停留在“初始状态”。
[0094] 进行“测试使能”:将测试设备的PORT_TEST端口与DUT的N/F_Port端口复位并达到Active状态,将E_D_TOV(错误检测超时值)恢复为默认值,将R_T_TOV(接收传输超时值)恢
复为默认值,PORT_TEST端口进入“测试选择状态”。
[0095] 进行“测试选择”:判断链路超时(E_D_TOV超时)和链路故障超时(R_T_TOV超时)状态所对应的测试完成标志,依次开展两种状态下的测试;若链路超时状态测试未进行,则
PORT_TEST端口进入“链路超时测试状态”;若链路故障超时状态测试未进行,则PORT_TEST
端口进入“链路故障超时测试选择状态”;若链路超时和链路故障超时状态均测试完成,则
PORT_TEST端口进入“测试完成状态”。
[0096] 进入“链路超时测试状态”:控制DUT的N/F_Port端口向测试设备的PORT_TEST端口依据最大信用值N发送N个3类数据帧,PORT_TEST在收到N个3类数据帧后,在E_D_TOV时间内
一直不返回R_RDY原语;如果检测到DUT的N/F_Port端口能够检查到链路超时错误,并发送
LR原语,则PORT_TEST端口进入“链路复位协议测试状态”,上报链路超时使能正确;否则,
PORT_TEST端口返回“测试使能状态”,上报链路超时测试错误,将链路超时测试完成标志置
为有效。
[0097] 进行“链路复位协议测试”:DUT的N/F_Port端口发送LR原语,控制测试设备的PORT_TEST端口发送LRR原语,若DUT的N/F_Port端口发送IDLE原语,则PORT_TEST端口返回
“测试选择状态”,上报链路超时测试正常,将链路超时测试完成标志置为有效;否则,PORT_TEST端口返回“测试使能状态”,报链路复位协议测试异常,将链路超时测试完成标志置为
有效。
[0098] 进行“链路故障超时测试选择”:判断信号丢失、同步丢失、端口处于LR1状态、端口处于LR2状态、端口处于LR3状态测试所对应的测试完成标志,依次开展五种状态下的测试。
若信号丢失测试未进行,则PORT_TEST端口进入“信号丢失测试状态”;若同步丢失测试未进
行,则PORT_TEST端口进入“同步丢失测试状态”;若端口处于LR1状态测试未进行,则PORT_
TEST端口进入“端口处于LR1使能状态”;若端口处于LR2状态测试未进行,则PORT_TEST端口
进入“端口处于LR2使能状态”;若端口处于LR3状态测试未进行,则PORT_TEST端口进入“端
口处于LR3使能状态”;若信号丢失、同步丢失、端口处于LR1状态、端口处于LR2状态、端口处于LR3状态五种测试均已完成,则PORT_TEST端口返回“测试选择状态”,将链路故障超时测
试完成标志置为有效。
[0099] 进行“信号丢失测试”:控制测试设备的PORT_TEST停止信号发送,持续时间为R_T_TOV限定值以上,如果N/F_Port端口能够检查到链路故障超时错误,并发送NOS原语,则
PORT_TEST端口进入“链路故障超时状态下链路故障协议测试状态”,上报信号丢失链路故
障超时使能正确;否则,PORT_TEST端口返回“测试使能状态”,上报信号丢失测试错误,将信号丢失测试完成标志置为有效。
[0100] 进行“同步丢失测试”:控制测试设备的PORT_TEST改变端口速率并保持该状态持续时间大于R_T_TOV限定值,如果N/F_Port端口能够检查到链路故障超时错误,并发送NOS
原语,则PORT_TEST端口进入“链路故障超时状态下链路故障协议测试状态”,上报同步丢失
链路故障超时使能正确;否则,PORT_TEST端口返回“测试使能状态”,上报同步丢失测试错
误,将同步丢失测试完成标志置为有效。
[0101] 进行“端口处于LR1使能”:控制DUT的N/F_Port端口向测试设备的PORT_TEST端口依据最大信用值N发送N个3类数据帧,PORT_TEST在收到N个3类数据帧后,在E_D_TOV时间内
一直不返回R_RDY原语,如果检测到DUT的N/F_Port端口能够检查到链路超时错误,并发送
LR原语,则PORT_TEST端口进入“端口处于LR1测试状态”,上报端口处于LR1使能正确;否则,PORT_TEST端口返回“测试使能状态”,上报端口处于LR1使能错误,将端口处于LR1状态测试
完成标志置为有效。
[0102] 进行“端口处于LR1测试”:控制DUT的N/F_Port端口发送LR原语,控制保持该状态持续时间大于R_T_TOV限定值,在此期间测试设备PORT_TEST端口不发送任何原语信号,如
果N/F_Port端口能够检查到端口处于LR1状态超时错误,并发送NOS原语,则PORT_TEST端口
进入“链路故障超时状态下链路故障协议测试状态”,上报端口处于LR1状态超时使能正确;
否则,PORT_TEST端口返回“测试使能状态”,上报端口处于LR1状态测试错误,将端口处于
LR1状态测试完成标志置为有效。
[0103] 进行“端口处于LR2使能”:DUT的N/F_Port端口向测试设备的PORT_TEST端口依据最大信用值N发送N个3类数据帧,PORT_TEST在收到N个3类数据帧后,在E_D_TOV时间内一直
不返回R_RDY原语,PORT_TEST在收到N_Port发送的LR原语后发送LR原语。如果检测到N_
Port发送的LRR原语,则PORT_TEST端口进入“端口处于LR2测试状态”,上报端口处于LR2使
能正确;否则,PORT_TEST端口返回“测试使能状态”,上报端口处于LR2使能错误,将端口处
于LR2状态测试完成标志置为有效。
[0104] 进行“端口处于LR2测试”:DUT的N/F_Port端口发送LRR原语,控制保持该状态持续时间大于R_T_TOV限定值,在此期间测试设备PORT_TEST端口不发送任何原语信号,如果N/
F_Port端口能够检查到端口处于LR2状态超时错误,并发送NOS原语,则PORT_TEST端口进入
“链路故障超时状态下链路故障协议测试状态”,上报端口处于LR2状态超时使能正确;否
则,PORT_TEST端口返回“测试使能状态”,上报端口处于LR2状态测试错误,将端口处于LR2
状态测试完成标志置为有效。
[0105] 进行“端口处于LR3使能状态”:DUT的N/F_Port端口向测试设备的PORT_TEST端口依据最大信用值N发送N个3类数据帧,PORT_TEST在收到N个3类数据帧后,在E_D_TOV时间内
一直不返回R_RDY原语,PORT_TEST在收到N_Port发送的LR原语后发送LRR原语。如果检测到
N_Port发送的IDLE原语,则PORT_TEST端口进入“端口处于LR3测试状态”,上报端口处于LR3
使能正确;否则,PORT_TEST端口返回“测试使能状态”,上报端口处于LR3使能错误,将端口
处于LR3状态测试完成标志置为有效。
[0106] 进行“端口处于LR3测试”:DUT的N/F_Port端口发送IDLE原语,控制保持该状态持续时间大于R_T_TOV限定值,在此期间测试设备PORT_TEST端口不发送任何原语信号,如果
N/F_Port端口能够检查到端口处于LR3状态超时错误,并发送NOS原语,则PORT_TEST端口进
入“链路故障超时状态下链路故障协议测试状态”,上报端口处于LR3状态超时使能正确;否
则,PORT_TEST端口返回“测试使能状态”,上报端口处于LR3状态测试错误,将端口处于LR3
状态测试完成标志置为有效。
[0107] 进行“链路故障超时状态下链路故障协议测试”:DUT的N/F_Port端口一直发送NOS原语,测试设备的PORT_TEST端口发送OLS原语,待N/F_Port端口返回LR原语后PORT_TEST端
口发送LRR原语,如果N/F_Port端口在收到LRR原语后发送IDLE原语,则PORT_TEST端口返回
“链路故障超时测试选择状态”,上报链路故障超时状态下链路故障协议执行正确;否则,
PORT_TEST端口返回返回“测试使能状态”,上报链路故障超时状态下链路故障协议执行错
误正确,将链路故障超时测试完成标志置为有效。
[0108] “测试完成”:判断链路超时和链路故障超时测试完成标志以及链路超时和链路故障超时情况下相关状态测试完成标志,输出对应测试结果。若收到启动测试信号,将相关测
试完成标志置为无效,PORT_TEST端口返回“测试使能状态”;否则,状态机留在“测试完成状态”。
[0109] 本发明设计的一种光纤通道超时故障识别及处理正确性的自动测试方法具有以下优点:
[0110] 1.自动化检测光纤通道超时故障识别和处理的正确性;
[0111] 2.光纤通道端口故障测试核心功能,适用于对各型设备FC端口链路超时故障执行情况的测试;
[0112] 3.状态机控制明确,易于硬件逻辑实现;
[0113] 4.标准逻辑设计,可应用于各种FC端口测试设备当中。
[0114] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
[0115] 此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当
将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员
可以理解的其他实施方式。