diff --git a/ansible/doc/README.testbed.VsSetup.md b/ansible/doc/README.testbed.VsSetup.md
index a3a1a78ca06..041e52ecbff 100644
--- a/ansible/doc/README.testbed.VsSetup.md
+++ b/ansible/doc/README.testbed.VsSetup.md
@@ -123,12 +123,6 @@ $ ./testbed-cli.sh -m veos.vtb start-vms server_1 password.txt
```
- please note: Here "password.txt" is the ansible vault password file name/path. Ansible allows user use ansible vault to encrypt password files. By default, this shell script require a password file. If you are not using ansible vault, just create an empty file and pass the filename to the command line. The file name and location is created and maintained by user.
-## Deploy T0 topology
-
-```
-$ ./testbed-cli.sh -t vtestbed.csv -m veos.vtb add-topo vms-kvm-t0 password.txt
-```
-
Check that all VMs are up and running:
```
$ ansible -m ping -i veos.vtb server_1
@@ -154,6 +148,13 @@ VM0100 | SUCCESS => {
}
```
+
+## Deploy T0 topology
+
+```
+$ ./testbed-cli.sh -t vtestbed.csv -m veos.vtb add-topo vms-kvm-t0 password.txt
+```
+
## Deploy minigraph on the DUT
```
diff --git a/ansible/lab b/ansible/lab
index 07cdc533b53..b81d370587c 100644
--- a/ansible/lab
+++ b/ansible/lab
@@ -15,6 +15,7 @@ iface_speed='40000'
[sonic_s6100]
lab-s6100-01 ansible_host=10.251.0.190
+vlab-02 ansible_host=10.250.0.102
[sonic_s6100:vars]
hwsku="Force10-S6100"
@@ -35,7 +36,7 @@ sonic_a7260
[ptf]
ptf_ptf1 ansible_host=10.255.0.188 ansible_ssh_user=root ansible_ssh_pass=root
ptf_vms1-1 ansible_host=10.255.0.178 ansible_ssh_user=root ansible_ssh_pass=root
-ptf_vms6-1 ansible_host=10.250.0.102 ansible_ssh_user=root ansible_ssh_pass=root
+ptf_vms6-1 ansible_host=10.250.0.100 ansible_ssh_user=root ansible_ssh_pass=root
[lab:children]
sonic
diff --git a/ansible/roles/vm_set/tasks/start_sonic_vm.yml b/ansible/roles/vm_set/tasks/start_sonic_vm.yml
index b176b563b58..b4804359775 100644
--- a/ansible/roles/vm_set/tasks/start_sonic_vm.yml
+++ b/ansible/roles/vm_set/tasks/start_sonic_vm.yml
@@ -21,6 +21,10 @@
copy: src={{ src_disk_image }} dest={{ disk_image }} remote_src=True
when: not file_stat.stat.exists
+- name: Get DUT port alias
+ port_alias: hwsku={{ hostvars[dut_name].hwsku }}
+ connection: local
+
- name: Define vm {{ dut_name }}
virt: name={{ dut_name }}
command=define
diff --git a/ansible/roles/vm_set/templates/sonic.xml.j2 b/ansible/roles/vm_set/templates/sonic.xml.j2
index 4838566d7c5..c793a747eb2 100644
--- a/ansible/roles/vm_set/templates/sonic.xml.j2
+++ b/ansible/roles/vm_set/templates/sonic.xml.j2
@@ -2,7 +2,7 @@
{{ dut_name }}
2048000
2048000
- 1
+ 2
/machine
@@ -33,102 +33,11 @@
+{% for i in range(port_alias|length) %}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+{% endfor %}
diff --git a/ansible/veos.vtb b/ansible/veos.vtb
index 4ea5a7af40e..1aff57b17aa 100644
--- a/ansible/veos.vtb
+++ b/ansible/veos.vtb
@@ -29,4 +29,5 @@ server_1
topologies=['t1', 't1-lag', 't1-64-lag', 't0', 't0-16', 't0-56', 't0-52', 'ptf32', 'ptf64', 't0-64', 't0-64-32', 't0-116']
[sonic]
-vlab-01 ansible_host=10.250.0.101 type=kvm
+vlab-01 ansible_host=10.250.0.101 type=kvm hwsku=Force10-S6000
+vlab-02 ansible_host=10.250.0.102 type=kvm hwsku=Force10-S6100
diff --git a/ansible/vtestbed.csv b/ansible/vtestbed.csv
index 7a6f4ff385e..b6a15a9f72a 100644
--- a/ansible/vtestbed.csv
+++ b/ansible/vtestbed.csv
@@ -1,2 +1,3 @@
# conf-name,group-name,topo,ptf_image_name,ptf_ip,server,vm_base,dut,comment
vms-kvm-t0,vms6-1,t0,docker-ptf-brcm,10.250.0.102/24,server_1,VM0100,vlab-01,Tests virtual switch vm
+vms-kvm-t0-64,vms6-1,t0-64,docker-ptf-brcm,10.250.0.102/24,server_1,VM0100,vlab-02,Tests virtual switch vm