Page 98 - 《软件学报》2020年第9期
P. 98
张雯雯 等:SDN 数据平面软件一致性测试用例生成方法 2719
Fig.12 SDN data plane software conformance test case generation algorithm map for P4 programming language
图 12 面向 P4 编程语言的 SDN 数据平面软件一致性测试用例生成算法映射图
匹配 动作
表名 动作名 表名
字段 参数
生成表
生成表项 查询命令
增加命令
表名 匹配 动作名 动作
字段 参数 表名
生成表
生成表项 删除命令
修改命令
Fig.13 Procedure of generating commands
图 13 命令生成流程
Table 1 Reference parameters
表 1 参考参数
参数 位数 默认参数
match_field 8 00
match_field 16 00:00
match_field 24 00:00:00
match_field 32 00:00:00:00
match_field 40 00:00:00:00:00
match_field 48 00:00:00:00:00:00
action_params 9 0
• 单个测试用例示例
本节设计了测试用例实体结构,每个测试用例实体分为 4 部分:命令格式 CF(CommandFormat)、前提条件
PC(Precondition)、测试用例 TC(TestCase)、期望输出结果 EO(ExpectedOutput).设计该结构的目的在于规范测
试用例实体,使测试用例实体信息更加清晰明了,方便面向 P4 编程语言的 SDN 数据平面软件一致性测试实际
结果与预期结果比对过程.前提条件 PC 和期望输出结果 EO 为测试系统初期部署过程所作工作,本文不作赘述.
图 14 所示为一个测试用例实例,其中,
• 命令格式 CF 为“table_add ipv4_lpm myTunnel_ingress 0xffffffff/32⇒0x0 0x0”;
• 前提条件 PC 为“The entity to be added should not be duplicate”;
• 测试用例 TC 为“table_add ipv4_lpm myTunnel_ingress 0xffffffff/32⇒0x0 0x0”;
• 期望输出结果 EO 为“Entry has been added with handle N”.
TC 中,table_add 和 ipv4_lpm 代表向 ipv4_lmp 表插入表项,0xffffffff/32 代表匹配字段是 32 位的 0xffffffff,匹
配成功则向表中插入参数为 0x0 和 0x0 的动作 myTunnel_ingress.