市场动态

手把手带你玩转以太网Switch测试
 

随着无人驾驶以及影音娱乐域在汽车领域应用的不断发展,汽车以太网越来越被汽车行业熟知与应用。汽车以太网和传统的CAN总线有很大的不同,其中最为直观的差别体现在网络拓扑上,CAN的拓扑形式为总线型,而以太网大多采用的是以交换机为中心的星型或树型拓扑。因此相比传统的CAN测试,就多了一种需要测试的设备类型——Switch。本文将教大家如何进行Switch测试。

在讲Switch的测试之前,首先来了解一下什么是Switch。

Switch,即交换机,Switch在传统以太网中是一个必不可少的设备,主要工作在OSI模型的第二层,即数据链路层,基本功能如下:

▲基于MAC地址完成报文的转发和过滤
▲ 基于端口完成MAC地址表的学习
▲ 支持VLAN(虚拟局域网络)

 

测试内容&测试规范

现在大家已经了解了Switch的基本功能,那Switch的测试究竟需要测什么内容呢,我们接下来继续聊一下Switch的具体测试内容和其测试规范。

Switch测试主要包括Switch功能测试和Switch性能测试。其中Switch功能测试在Open Alliance TC8和Open Alliance TC11中定义,Switch性能测试在RFC2544和RFC2889中定义。具体测试规范如下表所示。    

本文以TC8 Layer2为例,来介绍Switch测试。下表为TC8 Layer2 Switch功能测试项。


 

测试对象&测试前提准备

并不是所有的以太网节点都需要进行Switch的测试,下面我们介绍一下Switch测试针对的测试对象是什么。

Switch测试对象为集成了Switch的ECU,如网关,AVM,HU等。现在如果我们手里有了一个以太网节点,我们就能根据它是否集成了Switch来判断它是否需要进行Switch测试。那么如果该节点集成了Switch,我们就可以直接进行测试了吗?答案是否定的,TC8 Layer2的测试中,涉及到了针对Switch的一些配置操作。在Switch测试之前,需要了解待测件的如下配置方式,方可正常进行测试。

▲ Switch端口认证以及取消端口认证的方式
▲ Switch的port disable实现方式
▲ Switch ARL表的读取、写入和删除方式
▲ Switch的帧过滤计数器(Frame Filter Counter)的读取方式

 

测试工具

现在我们来介绍一下Switch测试的测试工具。

Switch测试硬件为Spirent C50,即下图这个大家伙。

图1 SpirentC50

 

Spirent C50提供四至十六个10/100 BroadR-Reach或1/10GbE端口,支持二层802.3, Ethernet II, 802.1Q, 802.1ad, 802.1ah, 1722和三-四层IPv4, IPv6, UDP, TCP的数据封装,以及一些定制化的PDU创建。

与Spirent C50相配合的测试软件Spirent Testcenter(以下简称STC)也是必不可少的。STC可进行流量的产生和流量包的分析,并且可以针对Switch的每一个端口进行流量的发送和接收流量包的分析,极大程度方便了Switch功能的测试。

STC可支持同时测试Switch的多个端口,如图所示为端口预留界面,可显示端口的占用状态和以太网链路的Link up状态。

图2 STC端口配置界面

 

STC中包含基础软件包流量发生器和分析仪,用于基于每个端口生成流量并进行流量分析。

流量发生器支持的功能包括:

▲ 基于端口(每端口的速率)、Burst、流(每个流的速率)、定时的帧传输模式
▲ 从60-10240的最小/最大帧大小(w/CRC)
▲ 每3.43秒1包至线速的101%最小/最大Tx速率
▲ 实时Tx流调整,更改速率和帧长设置,而无需停止流量发生器或分析仪的真正互动、因果分析

如图所示,为STC流量创建界面。

图3 STC流量创建

 

STC流量分析仪支持的功能包括:

▲ 高级实时按流统计功能,实时跟踪每个接收到的数据流35次以上,其中包括:
1、实时丢失和高级排序
2、时延:平均值,最小值,最大值和短期平均值;第一/最后一帧到达时间戳
3、时延模式:LILO(RFC 4689定义的转发延迟),LIFO(RFC 1242定义的存储与转发设备)和FIFO(RFC1242定义的位转发设备)
4、数据完整性:IP校验和,TCP / UDP校验和,帧CRC,嵌入式CRC和PRBS位错误

▲ 数据包捕获
1、每个端口4 MB(通过CPU RAM每个帧的前128字节)
2、用于扩展协议支持的有状态捕获/回放

如图所示,为STC流量分析仪界面。

图4 STC流量分析仪

 

测试执行

讲到这里,我们已经基本了解Switch测试的测试内容、测试对象以及测试工具,那么接下来我们就可以正式的进行Switch的测试了。此处我们以TC8测试项Port_Disabling为例,来介绍一下Switch测试执行的具体步骤。

下图为测试规范中Port_Disabling测试项的测试步骤。

图5 测试步骤

分析此测试项测试规范,在测试执行过程中,需要分以下几步进行测试:
1、在STC中构建流量(需注意此流量目标IP和目标MAC不能为Switch内部ECU的对应地址,不然无法在其他端口进行转发)发送到PortA中
2、使用STC流量分析仪观察PortB是否收到此流量,测试结果显示正确收到了此流量

图6 测试结果1

 

3、禁用端口B,并在STC中观察PortB是否依然Link up
4、再次在STC中构建流量(需注意此流量源MAC应为Switch各个端口的ARL表中都不存在的MAC)发送到PortA
5、使用STC流量分析仪观察PortB是否接收到此流量,测试结果显示此流量并没有被转发到PortB。

图7 测试结果2

 

本次测试待测件不具有泛洪功能,若具有泛洪功能的样件,可继续按照以上规范中的测试步骤进行最后两步的测试。

在此测试项中需注意,了解清楚待测样件的端口禁用如何实现,是测试的必要前提。