一种SASSwitch整机柜上抓取SASSwitch寄存器数据的方法与流程

文档序号:11233975阅读:464来源:国知局

本发明涉及测试方法技术领域,具体涉及一种sasswitch整机柜上抓取sasswitch寄存器数据的方法,能够实现自动化抓取sasswitch寄存器数据的方法。



背景技术:

sasswitch节点每个端口包含4个物理phy,共17个端口,68个phy值。

通常情况下,可通过sasswitch的命令行界面读取每个phy对应的值。但是在测试过程中,经常会需要不停地对每个phy值进行大量的反复读取来监控对应寄存器的状态,因此我们可以通过基于expect工具编写的脚本在linux系统下快速简便的利用telnet访问sasswitch命令行并同时进行大量的反复读取。这种方法能够实现对sasswitch节点各个端口的phy值进行反复读取并对对应的寄存器进行长时间监控,从而确保测试效率。

phy指物理层,osi的最底层。



技术实现要素:

本发明要解决的技术问题是:本发明针对以上问题,提供一种sasswitch整机柜上抓取sasswitch寄存器数据的方法,针对基于cpu芯片为pm8056的sasswitch节点各个端口的phy值大量不间断的读取,提供更加高效、节约时间同时对sasswitch端口各个phy值进行长时间自动化读取的方法。

本发明所采用的技术方案为:

一种sasswitch整机柜上抓取sasswitch寄存器数据的方法,所述方法在linux系统下,利用telnet协议访问sasswitch命令行,并对sasswitch端口各个phy值进行读取。

所述方法实现步骤如下:

1)前置工作:使用整机柜存储服务器中的某一个计算节点作为测试控制节点,这个测试控制节点安装支持telnet协议的linux系统,并且此系统内安装expect库;

2)整机柜内sasswitch节点与测试控制节点在同一个网段,sasswitch节点ip与测试控制节点ip互相ping通;

3)在控制端通过telnet协议远程访问sasswitch的cli界面,在cli界面下执行相关操作;

4)通过对应关系计算每个phy值中对应寄存器的地址,向这些地址发送进制数获取这些寄存器当前的状态。

在测试过程中对sasswitch端口各个phy值对应的中断寄存器及中断事件寄存器写入1来读取当前寄存器的数据,可以加入循环反复读取。

在测试之前或在多次读取数据之后,向sasswitch端口各个phy值对应的中断寄存器及中断事件寄存器写入0xffffffff(即每个比特位全置1)来清除寄存器中的中断向量,实现定时读取。

所述方法通过编写脚本,对寄存器的读写实现自动化,同时监控寄存器当前的状态。

本发明的有益效果为:

本发明方法是一种更加高效、节约时间同时对sasswitch端口各个phy值进行长时间自动化读取的方法。此方法不仅在测试工作中提高了工作效率,对sasswitch的工作监控也提供了便捷,实用性强。

附图说明

图1为本发明方法流程图。

具体实施方式

根据说明书附图,结合具体实施方式对本发明进一步说明:

实施例1

一种sasswitch整机柜上抓取sasswitch寄存器数据的方法,所述方法在linux系统下,利用telnet协议访问sasswitch命令行,并对sasswitch端口各个phy值进行读取。

实施例2

如图1所示,在实施例1的基础上,本实施例所述方法实现步骤如下:

1)前置工作:使用整机柜存储服务器中的某一个计算节点作为测试控制节点,这个测试控制节点安装支持telnet协议的linux系统,并且此系统内安装expect库;

2)整机柜内sasswitch节点与测试控制节点在同一个网段,sasswitch节点ip与测试控制节点ip互相ping通;

3)在控制端通过telnet协议远程访问sasswitch的cli界面,在cli界面下执行相关操作;

4)通过对应关系计算每个phy值中对应寄存器的地址,向这些地址发送简单的进制数获取这些寄存器当前的状态。

实施例3

在实施例2的基础上,本实施例在测试过程中对sasswitch端口各个phy值对应的中断寄存器及中断事件寄存器写入1来读取当前寄存器的数据,可以加入循环反复读取。

实施例4

在实施例3的基础上,本实施例在测试之前或在多次读取数据之后,向sasswitch端口各个phy值对应的中断寄存器及中断事件寄存器写入0xffffffff(即每个比特位全置1)来清除寄存器中的中断向量,实现定时读取。

实施例5

在任一实施例1-4的基础上,本实施例所述方法通过编写脚本,对寄存器的读写实现自动化,同时监控寄存器当前的状态。

具体server端执行的相关脚本内容主要由四部分组成:

1)一部分为脚本ss_cmd.sh,即可对某一个phy值对应的中断事件寄存器读取数据标志位,详细内容为:

#/usr/local/bin/expect

setsub_ip[lindex$argv0]

setop_cmd[lindex$argv1]

spawntelnet$sub_ip

expect"*user*"

send"admin\r"

expect"*password*"

send"admin\r"/*自动登录sasswitchcli界面*/

expect"*0x00000000:0000>*"

send"rd_32$op_cmd1\r"/*从寄存器的地址中读取数据*/

sleep1

expect"*0x00000000:0000>*"

send"exit\r"/*自动退出sasswitchcli界面*/

sleep1

expecteof;

2)一部分为ss_clear_cmd.sh,即可对某一个phy值对应的中断事件寄存器清除中断向量,详细内容为:

#/usr/local/bin/expect

setsub_ip[lindex$argv0]

setop_cmd[lindex$argv1]

spawntelnet$sub_ip

expect"*user*"

send"admin\r"

expect"*password*"

send"admin\r"/*自动登录sasswitchcli界面*/

expect"*0x00000000:0000>*"

send"wr_32$op_cmd0xffffffff\r"/*清除寄存器中的中断向量*/

sleep1

expect"*0x00000000:0000>*"

send"exit\r"/*自动退出sasswitchcli界面*/

sleep1

expecteof;

3)一部分为clear_event_reg_test.sh,即可批量对68个phy值对应的中断事件寄存器清除中断向量,详细内容为:

#/bin/bash

foriin{1..68}

do

ab=cat./reg.list|awk''nr==$i'{print$5}'/*调用reg.list文件中寄存器的地址并赋值给变量ab*/

echo"interrupteventofphy$[$i-1]"/*打印中断事件寄存器对应的phy值*/

echo$ab/*打印出变量ab所代表的寄存器地址*/

./ss_clear_cmd.sh$1$ab/*$1取的是sasswitch节点ip地址,清除寄存器中中断向量*/

done/*清除并打印出68个phy值对应中断事件寄存器中的中断向量*/

4)一部分为cat_event_reg_test.sh,即可批量对68个phy值对应的中断事件寄存器读取数据标志位,详细内容为:

#!/bin/bash

foriin{1..68}

do

ab=catreg.list|awk''nr==$i'{print$5}'/*调用reg.list文件中寄存器的地址并赋值给变量ab*/

echo"interrupteventregofphy$[$i-1]"/*打印中断事件寄存器对应的phy值*/

echo$ab/*打印出变量ab所代表的寄存器地址*/

./ss_cmd.sh$1$ab/*$1取的是sasswitch节点ip地址,抓取寄存器中的数据标志位*/

done/*抓取并打印出68个phy值对应中断事件寄存器中的数据标志位*/;

程序结束。

实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1