diff --git a/ansible/lab b/ansible/lab index 4d9f4a32338..8e8233a5809 100644 --- a/ansible/lab +++ b/ansible/lab @@ -127,6 +127,9 @@ sonic_s6000: ansible_host: 10.250.0.122 ansible_hostv6: fec0::ffff:afa:12 card_type: supervisor + vlab-vpp-01: + ansible_host: 10.250.0.92 + ansible_hostv6: fec0::ffff:afa:70 sonic_s6100: vars: diff --git a/ansible/roles/vm_set/tasks/start_sonic_vm.yml b/ansible/roles/vm_set/tasks/start_sonic_vm.yml index 40186d59871..318d22a3308 100644 --- a/ansible/roles/vm_set/tasks/start_sonic_vm.yml +++ b/ansible/roles/vm_set/tasks/start_sonic_vm.yml @@ -9,7 +9,6 @@ - "{{ sonic_vm_storage_location }}/disks" - set_fact: - src_disk_image: "{{ sonic_vm_storage_location }}/images/sonic-vs.img" disk_image: "{{ sonic_vm_storage_location }}/disks/sonic_{{ dut_name }}.img" mgmt_ip_address: " {{ hostvars[dut_name]['ansible_host'] }}" mgmt_gw: "{{ vm_mgmt_gw | default(mgmt_gw) }}" @@ -17,6 +16,10 @@ hwsku: "{{ hostvars[dut_name].hwsku }}" num_asic: "{{ hostvars[dut_name]['num_asics'] | default(1) }}" card_type: "{{ hostvars[dut_name]['card_type'] | default('pizzabox') }}" + asic_type: "{{ hostvars[dut_name].asic_type | default('') }}" + +- set_fact: + src_disk_image: "{{ sonic_vm_storage_location }}/images/sonic-{{ 'vpp' if 'vpp' == asic_type else 'vs' }}.img" - name: Remove arp entry for {{ dut_name }} shell: arp -d {{ mgmt_ip_address }} diff --git a/ansible/roles/vm_set/templates/sonic.xml.j2 b/ansible/roles/vm_set/templates/sonic.xml.j2 index 1c3743576f4..64f4e21051e 100644 --- a/ansible/roles/vm_set/templates/sonic.xml.j2 +++ b/ansible/roles/vm_set/templates/sonic.xml.j2 @@ -29,6 +29,14 @@ +{% elif asic_type == 'vpp' %} + 8 + 8 + 6 + + + + {% else %} 6 6 @@ -68,12 +76,20 @@ + {% if asic_type == 'vpp' %} + + {% else %} + {% endif %} {% for i in range(port_alias|length) %} + {% if asic_type == 'vpp' %} + + {% else %} + {% endif %} {% endfor %} diff --git a/ansible/veos_vtb b/ansible/veos_vtb index 362b4aff865..154a776883d 100644 --- a/ansible/veos_vtb +++ b/ansible/veos_vtb @@ -80,6 +80,7 @@ all: vlab-t2-1-2: vlab-t2-1-sup: vlab-c-02: + vlab-vpp-01: ptf: hosts: ptf-01: @@ -328,6 +329,15 @@ all: ansible_user: admin ansible_ssh_user: admin ansible_altpassword: admin + vlab-vpp-01: + ansible_host: 10.250.0.92 + ansible_hostv6: fec0::ffff:afa:70 + type: kvm + hwsku: Force10-S6000 + asic_type: vpp + serial_port: 9001 + ansible_password: password + ansible_user: admin # The groups below are helpers to limit running playbooks to a specific server only server_1: diff --git a/ansible/vtestbed.yaml b/ansible/vtestbed.yaml index 3c1493168cd..3680bd2b5f7 100644 --- a/ansible/vtestbed.yaml +++ b/ansible/vtestbed.yaml @@ -442,3 +442,33 @@ inv_name: veos_vtb auto_recover: 'False' comment: Tests virtual force vs vm with 7 nodes + +- conf-name: vms-kvm-vpp-t1-lag + group-name: vms6-2 + topo: t1-lag + ptf_image_name: docker-ptf + ptf: ptf-02 + ptf_ip: 10.250.0.106/24 + ptf_ipv6: fec0::ffff:afa:6/64 + server: server_1 + vm_base: VM0104 + dut: + - vlab-vpp-01 + inv_name: veos_vtb + auto_recover: 'False' + comment: Tests virtual vpp switch vm + +- conf-name: vms-kvm-vpp-t1 + group-name: vms6-2 + topo: t1 + ptf_image_name: docker-ptf + ptf: ptf-02 + ptf_ip: 10.250.0.106/24 + ptf_ipv6: fec0::ffff:afa:6/64 + server: server_1 + vm_base: VM0104 + dut: + - vlab-vpp-01 + inv_name: veos_vtb + auto_recover: 'False' + comment: Tests virtual vpp switch vm diff --git a/docs/testbed/README.testbed.VPP.md b/docs/testbed/README.testbed.VPP.md new file mode 100644 index 00000000000..81872b916e8 --- /dev/null +++ b/docs/testbed/README.testbed.VPP.md @@ -0,0 +1,23 @@ +# Running Sonic-mgmt with Sonic-VPP as DUT +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. + +### Add topology: +``` +cd /data/sonic-mgmt/ansible +./testbed-cli.sh -t vtestbed.yaml -m veos_vtb -k ceos add-topo vms-kvm-vpp-t1-lag password.txt +``` +### Deploy minigraph: +``` +cd /data/sonic-mgmt/ansible +./testbed-cli.sh -t vtestbed.yaml -m veos_vtb deploy-mg vms-kvm-vpp-t1-lag veos_vtb password.txt +``` +### Example test run: +``` +cd /data/sonic-mgmt/tests +./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 -c +``` +### Remove topology: +``` +cd /data/sonic-mgmt/ansible +./testbed-cli.sh -t vtestbed.yaml -m veos_vtb -k ceos remove-topo vms-kvm-vpp-t1-lag password.txt +```