Skip to content

Commit 9a2c400

Browse files
dypetgshemesh2
authored andcommitted
Add support for sonic-vpp DUT. (sonic-net#17892)
What is the motivation for this PR? Support for sonic-vpp is being added to sonic-mgmt as an alternative virtual platform. How did you do it? Updated testbed files with new DUT. How did you verify/test it? Ran sonic management using a sonic-vpp image and the vms-kvm-vpp-t1-lag, vms-kvm-vpp-t1 topology names. Signed-off-by: Guy Shemesh <gshemesh@nvidia.com>
1 parent f67407e commit 9a2c400

File tree

6 files changed

+86
-1
lines changed

6 files changed

+86
-1
lines changed

ansible/lab

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,9 @@ sonic_s6000:
127127
ansible_host: 10.250.0.122
128128
ansible_hostv6: fec0::ffff:afa:12
129129
card_type: supervisor
130+
vlab-vpp-01:
131+
ansible_host: 10.250.0.92
132+
ansible_hostv6: fec0::ffff:afa:70
130133

131134
sonic_s6100:
132135
vars:

ansible/roles/vm_set/tasks/start_sonic_vm.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,17 @@
99
- "{{ sonic_vm_storage_location }}/disks"
1010

1111
- set_fact:
12-
src_disk_image: "{{ sonic_vm_storage_location }}/images/sonic-vs.img"
1312
disk_image: "{{ sonic_vm_storage_location }}/disks/sonic_{{ dut_name }}.img"
1413
mgmt_ip_address: " {{ hostvars[dut_name]['ansible_host'] }}"
1514
mgmt_gw: "{{ vm_mgmt_gw | default(mgmt_gw) }}"
1615
serial_port: "{{ hostvars[dut_name]['serial_port'] }}"
1716
hwsku: "{{ hostvars[dut_name].hwsku }}"
1817
num_asic: "{{ hostvars[dut_name]['num_asics'] | default(1) }}"
1918
card_type: "{{ hostvars[dut_name]['card_type'] | default('pizzabox') }}"
19+
asic_type: "{{ hostvars[dut_name].asic_type | default('') }}"
20+
21+
- set_fact:
22+
src_disk_image: "{{ sonic_vm_storage_location }}/images/sonic-{{ 'vpp' if 'vpp' == asic_type else 'vs' }}.img"
2023

2124
- name: Remove arp entry for {{ dut_name }}
2225
shell: arp -d {{ mgmt_ip_address }}

ansible/roles/vm_set/templates/sonic.xml.j2

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,14 @@
2929
<model fallback='forbid'/>
3030
<topology sockets='1' dies='1' cores='5' threads='2'/>
3131
</cpu>
32+
{% elif asic_type == 'vpp' %}
33+
<memory unit='GiB'>8</memory>
34+
<currentMemory unit='GiB'>8</currentMemory>
35+
<vcpu placement='static'>6</vcpu>
36+
<cpu mode='host-model'>
37+
<model fallback='forbid'/>
38+
<topology sockets='1' dies='1' cores='6' threads='1'/>
39+
</cpu>
3240
{% else %}
3341
<memory unit='GiB'>6</memory>
3442
<currentMemory unit='GiB'>6</currentMemory>
@@ -68,12 +76,20 @@
6876
</serial>
6977
<interface type='ethernet'>
7078
<target dev='{{ dut_name }}-0' />
79+
{% if asic_type == 'vpp' %}
80+
<model type='virtio-net-pci' />
81+
{% else %}
7182
<model type='e1000' />
83+
{% endif %}
7284
</interface>
7385
{% for i in range(port_alias|length) %}
7486
<interface type='ethernet' >
7587
<target dev='{{ dut_name }}-{{ i + 1 }}' />
88+
{% if asic_type == 'vpp' %}
89+
<model type='virtio-net-pci' />
90+
{% else %}
7691
<model type='e1000' />
92+
{% endif %}
7793
<mtu size='{{ fp_mtu_size }}' />
7894
</interface>
7995
{% endfor %}

ansible/veos_vtb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ all:
8080
vlab-t2-1-2:
8181
vlab-t2-1-sup:
8282
vlab-c-02:
83+
vlab-vpp-01:
8384
ptf:
8485
hosts:
8586
ptf-01:
@@ -328,6 +329,15 @@ all:
328329
ansible_user: admin
329330
ansible_ssh_user: admin
330331
ansible_altpassword: admin
332+
vlab-vpp-01:
333+
ansible_host: 10.250.0.92
334+
ansible_hostv6: fec0::ffff:afa:70
335+
type: kvm
336+
hwsku: Force10-S6000
337+
asic_type: vpp
338+
serial_port: 9001
339+
ansible_password: password
340+
ansible_user: admin
331341

332342
# The groups below are helpers to limit running playbooks to a specific server only
333343
server_1:

ansible/vtestbed.yaml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,3 +442,33 @@
442442
inv_name: veos_vtb
443443
auto_recover: 'False'
444444
comment: Tests virtual force vs vm with 7 nodes
445+
446+
- conf-name: vms-kvm-vpp-t1-lag
447+
group-name: vms6-2
448+
topo: t1-lag
449+
ptf_image_name: docker-ptf
450+
ptf: ptf-02
451+
ptf_ip: 10.250.0.106/24
452+
ptf_ipv6: fec0::ffff:afa:6/64
453+
server: server_1
454+
vm_base: VM0104
455+
dut:
456+
- vlab-vpp-01
457+
inv_name: veos_vtb
458+
auto_recover: 'False'
459+
comment: Tests virtual vpp switch vm
460+
461+
- conf-name: vms-kvm-vpp-t1
462+
group-name: vms6-2
463+
topo: t1
464+
ptf_image_name: docker-ptf
465+
ptf: ptf-02
466+
ptf_ip: 10.250.0.106/24
467+
ptf_ipv6: fec0::ffff:afa:6/64
468+
server: server_1
469+
vm_base: VM0104
470+
dut:
471+
- vlab-vpp-01
472+
inv_name: veos_vtb
473+
auto_recover: 'False'
474+
comment: Tests virtual vpp switch vm

docs/testbed/README.testbed.VPP.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Running Sonic-mgmt with Sonic-VPP as DUT
2+
To set up a testbed with a Sonic-VPP DUT follow the [VS testbed setup](README.testbed.VsSetup.md), and use the following commands during bringup. All of the following commands are to be run from the sonic-mgmt container.
3+
4+
### Add topology:
5+
```
6+
cd /data/sonic-mgmt/ansible
7+
./testbed-cli.sh -t vtestbed.yaml -m veos_vtb -k ceos add-topo vms-kvm-vpp-t1-lag password.txt
8+
```
9+
### Deploy minigraph:
10+
```
11+
cd /data/sonic-mgmt/ansible
12+
./testbed-cli.sh -t vtestbed.yaml -m veos_vtb deploy-mg vms-kvm-vpp-t1-lag veos_vtb password.txt
13+
```
14+
### Example test run:
15+
```
16+
cd /data/sonic-mgmt/tests
17+
./run_tests.sh -n vms-kvm-vpp-t1-lag -d vlab-vpp-01 -O -u -l debug -e -s -e "--disable_loganalyzer --skip_sanity --mark-conditions-files common/plugins/conditional_mark/tests_mark_conditions.yaml" -e "--mark-conditions-files common/plugins/conditional_mark/tests_mark_conditions_sonic_vpp.yaml" -m individual -f vtestbed.yaml -i ../ansible/veos_vtb -p <log> -c <tests>
18+
```
19+
### Remove topology:
20+
```
21+
cd /data/sonic-mgmt/ansible
22+
./testbed-cli.sh -t vtestbed.yaml -m veos_vtb -k ceos remove-topo vms-kvm-vpp-t1-lag password.txt
23+
```

0 commit comments

Comments
 (0)