You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-*PTF docker*: A docker container that has 32 ports with pre-installed PTF tools. See https://github.com/Azure/sonic-buildimage/tree/master/dockers/docker-ptf
47
-
-*Vlan ports*: 32 vlan ports are created on top of physical port, e.g., eth0, inside the Linux host
48
-
-*Openvswitch*: Connect 32 vlan ports to the 32 docker ports inside the Linux host. Openvswitch forwards the packet to the corresponding output port based on the incoming port. No L2/L3 forwarding is enabled in the Openvswitch.
84
+
-*Vlan ports*: 32 vlan ports are created on top of a physical port, e.g., eth0, inside the Linux host. After creation the vlan ports are injected directly to a ptf docker host.
49
85
-*Fanout switch*: A physical switch which enables VLAN trunking. Et33 is a vlan trunking port and is connected to the eth0 port of the linux host. Et1-Et32 are vlan access ports and are connect to DUT.
50
86
87
+
### Deploy testbed with one ptf container
88
+
1. clone sonic-mgmt repo to local directory
89
+
2. Edit 'ansible/group_vars/vm_host'. Put your credentials to reach the server
90
+
3. Check, that you can reach the server by running command 'ansible -i veos -m ping vm_host_1' from ansible directory. The output should contain 'pong'
91
+
4. Edit 'ansible/group_vars/vm_host/main.yml'.
92
+
* 'http_proxy': your http_proxy
93
+
* 'http_proxy': your https_proxy
94
+
5. Edit 'ansible/host_vars/STR-ACS-SERV-01.yml'. It contains settings for STR-ACS-SERV-01. STR-ACS-SERV-02 contains similar settings which are applied to STR-ACS-SERV-02
95
+
* 'mgmt_gw': ip address of gateway for management interfaces of ptf_container
96
+
* 'mgmt_bridge': the bridge which is used to connect the management network
97
+
* 'externel_iface': the interface which is connected to the fanout switch
98
+
* 'ptf_X_enabled': true, if you want to run X ptf container
99
+
* 'ptf_X_mgmt_ip': which ip is used inside of the container for the management network
100
+
* 'ptf_X_vlan_base': vlan number which is used for connection to first port of DUT
101
+
7. Edit 'ansible/vars/docker_registry.yml'. You need put your docker registry server here
102
+
8. Start ptf container with command 'ansible-playbook -i veos start_ptf_containers.yml --vault-password-file=~/.password --limit server_1 -e ptf_1=true'. See start_ptf_containers.yml for more examples
103
+
9. Stop ptf container with command 'ansible-playbook -i veos stop_ptf_containers.yml --vault-password-file=~/.password --limit server_1 -e ptf_1=true'. See stop_ptf_containers.yml for more examples
# dns-* options are implemented by the resolvconf package, if installed
214
-
dns-search SOMECOMPANY
246
+
In this testbed, we have 32 VMs and 1 PTF docker. The VMs use Arista vEOS. Each VM has 10 network interfaces:
247
+
1. 8 front panel ports. These ports are connected to openvswitch bridges, which are connected to vlan interfaces. The vlan interfaces are connected to the fanout switch (through physical port).
248
+
2. 1 back panel port. All testbed VMs connected to each other using this port (it isn't shown on the figure above).
249
+
3. 1 management port. This port is used to connect to the VMs
215
250
216
-
auto br1
217
-
iface br1 inet manual
218
-
bridge_ports em2
219
-
bridge_stp on
220
-
bridge_maxwait 0
221
-
bridge_fd 0
251
+
The ptf docker container connects to the bridges which connect the VMs frontpanel ports and physical vlans. Each bridge has three ports:
252
+
1. Frontpanel port from a VM
253
+
2. Physical vlan port
254
+
3. PTF container port
222
255
223
-
auto p4p1
224
-
iface p4p1 inet manual
225
-
up ip link set p4p1 up
226
-
```
256
+
Packets coming from the physical vlan interface are sent to both the VMs and the PTF docker. Packets from the VM and PTF docker are
257
+
sent to the vlan interface. It allows us to inject packets from the PTF host to DUT and maintain a BGP session between VM and DUT at the same time.
227
258
228
259
### Deploy testbed with one VM set
229
260
1. clone sonic-mgmt repo to local directory
@@ -240,8 +271,10 @@ up ip link set p4p1 up
240
271
6. Edit 'ansible/host_vars/STR-ACS-SERV-01.yml'. It contains settings for STR-ACS-SERV-01. STR-ACS-SERV-02 contains similar settings which are applied to STR-ACS-SERV-02
241
272
* 'mgmt_gw': ip address of gateway for management interfaces of VM. See 3.2
242
273
* 'vm_X_enabled': true, if you want to run X vm set
243
-
* 'vm_X_external_iface': name of interface which connected to DUT. See 3.3
244
274
* 'vm_X_vlan_base': vlan number which is used for connection to first port of DUT.
245
-
7. Edit 'ansible/vars/configurations/*.yml' files. You need to adjust 'minigraph_mgmt_interface' to settings of your network See 3.2
275
+
* 'vlans': list of vlan offsets for the VM FP ports. For example: if vlans equal to "5,6" it means that the VM frontpanel port 0 will be connected to vlan {{ vm_X_vlan_base + 5 - 1 }} and VM frontpanel port 1 will be connected to vlan {{ vm_X_vlan_base + 6 - 1 }}
276
+
7. Edit 'ansible/minigraph/*.xml' files. You need to adjust following xml nodes to settings of your network:
0 commit comments