SONiC testbed
熟悉一下如何测试,并且查看一些测试配置。文章参照Ansible Playbooks for Testing SONiC。
物理拓扑
- 上图中的各个硬件介绍
- 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
PTF with direct port
DUT前面板端口直接连接一个PTF container端口。通常是PTF container的eth0口连接DUT的Ethernet0,PTF container的eth1口连接DUT的Ethernet4端口等等。
PTF with injected port
PTF with injected port
DUT前面板端口直接连接一个VM的端口。报文从屋里端口发送到VM和PTF docker;报文从VM和PTF docker发送到屋里端口。
t1
t1
- 需要32个VMs
- 所有的DUT端口都连接到VMs
t1-lag
t1-lag
- 需要24个VMs
- 所有的DUT端口都连接到VMs
ptf32
ptf32
- 不需要VM
- 所有的DUT端口都直连PTF container
ptf64
ptf64
- 不需要VM
- 所有的DUT端口都直连PTF container
t0
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}
SONiC testbed相关推荐
- 如何使用vs来运行box2d中Testbed的案例
0 环境 vs: vs2012 box2d: Box2D_v2.1.2 1 得到box2d编译版本 可以参考: https://blog.csdn.net/sty945/article/details ...
- 比较零知识证明算法zkSNARK,zkSTARKs,zkBoo,Sonic,BulletProofs
本文分为两部分,第一部分说明零知识能干什么,为什么它这么强大,在区块链中这么火:第二部分比较零知识证明的算法zkSNARK, zkSTARKs, zkBoo, Sonic和BulletProofs的特 ...
- 手机QQ会员H5加速方案——sonic技术内幕
2019独角兽企业重金招聘Python工程师标准>>> 版权声明:本文由况鹰原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/communit ...
- 思维导图 - 测试技术扩展:Postman接口测试、Sonar白盒测试、Sonic移动测试、Python操作FTP服务器
给大家整理了下测试技术扩展相关的学习文档. 第一章: Postman 接口测试工具 测试工具 - Postman 接口测试入门使用手册,Postman 如何进行数据关联.自动更新 cookies.简单 ...
- Sonic 开源移动端云真机测试平台 - 设备中心接入安卓设备实例演示,Agent端服务部署过程详解
Sonic 开源移动端云真机测试平台 - Agent端服务部署与安卓设备接入演示 一加8手机连接效果图展示 第一章:环境准备 ① agent-sources 资源包下载 ② Android SDK安装 ...
- Sonic 开源移动端云真机测试平台 - windows系统下的sonic快速部署演示
Sonic 开源移动端云真机测试平台快速部署演示 第一章:Sonic 平台的准备工作与快速部署 ① Docker 的安装 ② MySQL 的安装 ③ docker-compose.yml 文件配置 ④ ...
- CNCF推出云原生网络功能(CNF)Testbed
开源计划验证了在Kubernetes上运行ONAP网络功能对电信运营商的好处 巴塞罗那,2019年2月25日 - 移动世界大会 - 支持Kubernetes®和Prometheus™等开源技术的的CN ...
- Angular jasmine TestBed.configureTestingModule的工作原理
TestBed.compileComponents 一次性异步编译所有组件.返回一个promise,可以等其完成时,执行更多的额外任务. 调试入口: 单元测试代码里定义的imports和provide ...
- Angular jasmine单元测试框架TestBed.inject的执行原理
单步调试这段代码: TestBed用于单元测试代码里创建Component和service实例. injectionToken即传入TestBed.inject的function: 还是delegat ...
- 使用TestBed测试具有依赖关系的Angular服务
具有依赖关系的Service源代码: import { Injectable } from '@angular/core';@Injectable() export class MasterServi ...
最新文章
- 解决PyCharm中报出 “Shadows built-in name xxx“ 的警告
- Spaly_Tree 模版
- 代价敏感多标签主动学习的代码开发跟踪
- 每个前端工程师都应该懂的前端性能优化总结:
- Win7 32位下DebugView和DriverMinitor不能打印调试信息的问题
- c语言jam的随机数,c – 如何重置随机数引擎?
- java有关问题,Java常见有关问题和解决方法
- ehcache 实现缓存共享
- MyEclipse中的ant初识
- Node.js框架之Egg.js
- Atitit mybatis 翻页解决法 目录 1.1. 翻页模式还有js翻页前端翻页更加简单	1 1.2. 逻辑分页使用类RowBounds vs 物理分页 offset模式	1 1.3.
- VirtualBox下安装Windows Server 2008
- 大庆金桥:基于 SpreadJS 开发实现计量器具检定证书的在线生成与打印
- 解决导入protobuf源代码Unity报错的问题
- hadoop中HDFS的NameNode原理
- TCP 三次握手和四次挥手,中间失败了会发生什么?
- 《NFL橄榄球》:田纳西泰坦·橄榄1号位
- 经典网络命令(搜集、概括)
- OpenCV 最小二乘+距离最小拟合圆
- 1-1 medium vs. modality笔记