SONiC testbed

article/2025/10/23 11:41:31

熟悉一下如何测试,并且查看一些测试配置。文章参照Ansible Playbooks for Testing SONiC。

物理拓扑

avatar

  • 上图中的各个硬件介绍
    • testbed servers是用来跑测试用例的。
    • root fanout switch是根交换机。
    • leaf fanout switches是用来连接被测试交换机。
    • DUTs是指被测试的交换机。
  • DUT端口和leaf是一一对应的。
  • 每个leaf都有一个唯一的VLAN tag
  • root fanout交换机使用802.1Q trunks
  • 这就意味着任何testbed server能通过发送带有vlan的报文到达任意DUT端口。

testbed setup

这块就略过了,详细请查看Testbed Setup。

主要是拓扑部署命令:

  • 部署拓扑,比如T1拓扑:./testbed-cli.sh add-topo vms-t1 ~/.password,password文件为空就可以。
  • 删除拓扑,./testbed-cli.sh remove-topo vms-t1 ~/.password
  • 拓扑配置存在于文件sonic-mgmt/ansible/testbed.csv

testbed.csv文件配置解释:

  • conf-name是拓扑的名字,标识拓扑关键字
  • group-name是internal name,表示用vm还是ptf还是啥
  • topo是指定部署的拓扑
  • ptf_image_name指定ptf docker类型
  • ptf_ip指定容器的管理IP
  • server指定服务器名称,与ansible/veos中定义的服务器名称匹配
  • vm_base指定vm编号
  • dut指定连接到测试品台的DUT名称
  • comment注释字段

逻辑拓扑

  • testbed拓扑的配置定义可见testbed.csv。
  • 一键运行所有testbeds的脚本可见testbed-cli.sh。
  • 灵活的拓扑允许使用VM_SET和PTF container作为实体。
  • 所有的VM管理IP都放在一个地方veos。
  • PTF container是通用的,并且每个拓扑都会使用。
  • 能自动配置fanout switch

补充

VMs

VM使用Arista vEOS。用于建立协议测试,比如BGP、LACP、LLDP,使用testbed-cli.sh start-vms创建。每个VM使用2G RAM并具有10个网络接口

PTF

PTF container用于向可用的DUT数据平面收发报文。

PTF with direct port

avatar

 

PTF with direct port

DUT前面板端口直接连接一个PTF container端口。通常是PTF container的eth0口连接DUT的Ethernet0,PTF container的eth1口连接DUT的Ethernet4端口等等。

PTF with injected port

avatar

PTF with injected port

DUT前面板端口直接连接一个VM的端口。报文从屋里端口发送到VM和PTF docker;报文从VM和PTF docker发送到屋里端口。

t1

avatar

t1

  • 需要32个VMs
  • 所有的DUT端口都连接到VMs

t1-lag

avatar

t1-lag

  • 需要24个VMs
  • 所有的DUT端口都连接到VMs

ptf32

avatar

ptf32

  • 不需要VM
  • 所有的DUT端口都直连PTF container

ptf64

avatar

ptf64

  • 不需要VM
  • 所有的DUT端口都直连PTF container

t0

avatar

t0

  • 需要4个VM
  • 4个DUT端口连接到VM
  • PTF container 连接到DUT 28个端口

生成和部署minigraph

根据创建的拓扑,运行playbook为SONiC DUT生成minigraph.xml,已匹配新拓扑。使用命令如下:

ansible-playbook -i lab config_sonic_basedon_testbed.yml -l sonic_dut_name -e vm_base=VM0300 -e topo=t0 [-e deploy=true -e save=true]-l str-msn2700-01          - 指定DUT的名字,与上面testbed.csv对应
-e vm_base=VM0300          - VM的起始名称,也是与testbed.csv对应
-e topo=t0                 - 拓扑名称,对应testbed.csv
-e deploy=True             - 不指定默认是false
-e save=True               - 是否保存为开机启动,不指定默认是false

运行测试用例

所有的测试用例名称和调用变量以及应用拓扑都定义在ansible/roles/test/vars/testcases.yml

运行测试用例的时候,根据testbed_name,能获取与testbed相关的信息(比如pf_host testbed_type, VMs info)。testbed_name继承了ansible/testbed.csv文件。每行的第一列是测试平台的唯一名称,在运行测试用例的时候使用。

ansible-playbook -i lab -l str-sonic-1 test_sonic.yml -e testbed_name={TESTBED_NAME} -e testcase_name={TESTCASE_NAME}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


http://chatgpt.dhexx.cn/article/N0qI5ygy.shtml

相关文章

软测工具Testbed的使用以及动态测试实例

基于大连理工大学软件测试与质量保证实验 1,软件与环境安装 由于该版本的Testbed是测试版本,有一定的使用期限。所以最好是下载到虚拟机里面然后使用之前用快照还原状态。当然直接下载到电脑里可以,但注意在使用期限内完成实验。 下载如图…

testbed常见问题及处理(1)

1.序列名不规范 为了工程化的管理测试用例,单元测试时,建议为每个被测函数(uut)创建一个序列,而序列名使用函数名,以便后期维护管理。 2.未确认代码是否编译通过,就开始测试 应当在确定代码编译…

Testbed静态分析

使用testbed进行代码的静态分析主要有四个步骤: 选择分析对象 分析前的设置 分析项的选择与分析过程 查看分析结果 1、选择分析对象 可通过两种方式选择被分析对象:单个文件分析、以集(set)的形式分析,其中以set…

Testbed单元测试

在testbed中C代码中的"单元"指的是一个函数,单元测试就是针对每个函数进行测试。 在使用testbed进行单元测试前需要先确认当前使用的编译器是否正确,且current compiler和default compiler是否是一致的。如果当前编译器不正确,可点…

中山大学2019年研究生复试机试题目(数据科学与计算机学院)

\qquad 本人在2019年9月参加了中山大学数据科学与计算机学院的推免面试,将模拟机试的题目记录如下。(正式机试时有原题出现) 小伙伴们复试加油哇!!!!! \qquad 详细内容已放进网盘&am…

关于我考研的这一年随记 —— 2022暨南大学电子信息计算机技术专业初试第三复试第一

出成绩了,初试第三,复试第一,成功圆梦。这一刻,我与17岁的自己和解。四年前的遗憾终于在今天得到了圆满。这一路走来,我迷茫、焦虑、惶恐与不安,似乎对自己的执念有一股莫名的冲动和那么一丝后怕。出成绩前…

中山大学软件工程专硕考研经验(双非跨考)

我是一名双非医科大学的本科生,因为不是很喜欢这个专业,并且对计算机感兴趣(喜欢写代码),最后就决定跨考计算机了。为什么选择中大呢?说来话长,很多人可能觉得我自不量力,双非跨考还…

2023中山大学计算机考研经验分享

最新数据见:中山大学考研经验分享历年真题_N诺计算机考研 中山大学数据科学与计算机学院官网 中山大学人工智能学院:http://sai.sysu.edu.cn/ 中山大学软件学院:http://sse.sysu.edu.cn/ 中山大学系统科学与工程学院 :http://sss…

【计算机考研院校推荐】广东地区汇总-22考研版

本篇文章由皮皮灰收集 数据来源21考研,仅供22考研参考 收集招生081200 计算机科学与技术、083500 软件工程、083900 网络空间安全、085400 电子信息-计算机方向的院校 更为详细的院校信息可在后台回复获取 广东地区院校目录 1.(10558)中山大学【985/211】 2…

2023 暨南大学计算机专硕(电子信息计算机技术方向)考研经验分享

文章目录 前言数学二专业课 848英语二政治复试杂七杂八考试地点与考试方式作息坐姿群848 资料 总结 前言 2023 年暨南大学计算机专硕考生(电子信息计算技术方向),初试成绩 392 分(复试线 344 分)。非常感谢前人的经验…

2020暨南大学计算机考研经验分享

前言: 主要介绍了今年暨南大学计算机考研的相关情况、848真题的部分回忆内容、自己的一些经验教训,还有复试名单拟录取名单等第一手资料,文章很长,可以只看自己目标专业的情况和真题部分。 一、个人情况介绍 报考的是暨南大学电子…

2022年中山大学计算机考研复试分数线预测

中山大学属于34所自划线院校之一,考研复试分数线分国家线和院校自划线,院校自划线公布时间一般早于国家线,报考中山大学计算机研究生的考生,复试分数线请以院校官网公布的分数线为准! 2021年中山大学计算机考研复试分数线公布日期…

中山大学计算机考研资料汇总

中山大学数据科学与计算机学院官网 中山大学(Sun Yat-sen University, SYSU),简称“中大”,由孙中山先生创办,有着一百多年办学传统,是中国南方科学研究、文化学术与人才培养的重镇。中山大学是教育部和广…

考研 | 2020中山大学软件工程/计算机考研初试经验分享

考完很久了,心血来潮写个经验贴,由于今年线上复试,与往年形式差异很大,而且题目难易程度差异很大,抽到什么题全看运气,所以不太想写复试的经验贴,如果有小伙伴想看的话可以留言~ 1 关于我 1.1 …

321分排第二?985中山大学计算机考研超级爆冷?

大家都知道,今年计算机考研超级火爆,前所未有的爆炸,400的高分到处都是: 神仙打架!今年计算机考研爆炸实况! 但是这么爆炸的计算机考研,有没有学校爆冷呢? 网上流传这么两张图&#…

2024中山大学计算机考研信息汇总

中山大学数据科学与计算机学院官网 中山大学(Sun Yat-sen University, SYSU),简称“中大”,由孙中山先生创办,有着一百多年办学传统,是中国南方科学研究、文化学术与人才培养的重镇。中山大学是教育部和广…

2021年一战上岸中山大学计算机专硕考研经验(详细时间规划)

2021年7月29日上午11点25分,从公布拟录取名单起,等了四个月,终于从快递员手中接到了我的录取通知书,悬了一年半的心也终于踏实了,不会有差错了,是的,中山大学,我来了! 之…

Spfa算法总结(C/C++)

文章目录 一: Spfa算法分析二: 代码分析 一: Spfa算法分析 1. 问题介绍:  2. 问题分析:  当我们遇到单源最短路边权为负值问题时这时候该如何处理呢?  其实我们现在就可以使用Floyd()算法了,我们可以从两个方面来理解这个算法…

第十八章 SPFA算法以及负环问题(利用dijkstra推导出该算法,超级详细!!)

第十八章 SPFA算法以及负环问题 一、dijkstra算法的弊端二、dijkstra算法的优化1、SPFA算法(1)算法思路:(2)算法模板:问题:模板:逐行分析: 三、SFPA解决负环问题&#xf…

SPFA算法理论体系终极论证

SPFA相关详细论证 历史事件Bellman-Ford算法简述和证明SPFA的正确代码段凡丁的贡献正确复杂度分析 历史事件 众所周知,SPFA是一种对Bellman-Ford算法的优化。国内业界首次提出是1994年西南交通大学的段凡丁在学报上发表的论文。但实际上早在1956年Bellman-Ford算法…