diff --git a/ansible/group_vars/vm_host/main.yml b/ansible/group_vars/vm_host/main.yml
index feff1bee253..edbd360ef4c 100644
--- a/ansible/group_vars/vm_host/main.yml
+++ b/ansible/group_vars/vm_host/main.yml
@@ -7,3 +7,6 @@ skip_image_downloading: false
vm_console_base: 7000
memory: 2097152
max_fp_num: 4
+
+ptf_bp_ip: 10.10.246.254/24
+ptf_bp_ipv6: fc0a::ff/64
diff --git a/ansible/roles/eos/templates/t0-leaf.j2 b/ansible/roles/eos/templates/t0-leaf.j2
index 1614085b662..51982e57863 100644
--- a/ansible/roles/eos/templates/t0-leaf.j2
+++ b/ansible/roles/eos/templates/t0-leaf.j2
@@ -32,55 +32,6 @@ ip route vrf MGMT 0.0.0.0/0 {{ vm_mgmt_gw }}
ip route vrf MGMT 0.0.0.0/0 {{ mgmt_gw }}
{% endif %}
!
-route-map DEFAULT_ROUTES permit
-!
-{# #}
-{# NOTE: Using large enough values (e.g., podset_number = 200, #}
-{# us to overflow the 192.168.0.0/16 private address space here. #}
-{# This should be fine for internal use, but may pose an issue if used otherwise #}
-{# #}
-{% for podset in range(0, props.podset_number) %}
-{% for tor in range(0, props.tor_number) %}
-{% for subnet in range(0, props.tor_subnet_number) %}
-{# Skip tor 0 podset 0 #}
-{% if podset != 0 or tor != 0 %}
-{% set suffix = ( (podset * props.tor_number * props.max_tor_subnet_number * props.tor_subnet_size) +
- (tor * props.max_tor_subnet_number * props.tor_subnet_size) +
- (subnet * props.tor_subnet_size) ) %}
-{% set octet2 = (168 + (suffix // (256 ** 2))) %}
-{% set octet1 = (192 + (octet2 // 256)) %}
-{% set octet2 = (octet2 % 256) %}
-{% set octet3 = ((suffix // 256) % 256) %}
-{% set octet4 = (suffix % 256) %}
-{% set prefixlen_v4 = (32 - ((props.tor_subnet_size | log(2))) | int) %}
-ip route {{ octet1 }}.{{ octet2 }}.{{ octet3 }}.{{ octet4 }}/{{ prefixlen_v4 }} {{ props.nhipv4 }}
-ipv6 route {{ '20%02x' % octet1 }}:{{ '%02X%02X' % (octet2, octet3) }}:0:{{ '%02X' % octet4 }}::/64 {{ props.nhipv6 }}
-{% endif %}
-{% endfor %}
-{% endfor %}
-{% endfor %}
-!
-{% for podset in range(0, props.podset_number) %}
-{% for tor in range(0, props.tor_number) %}
-{# Skip tor 0 podset 0 #}
-{% if podset != 0 or tor != 0 %}
-{% set suffix = ( (podset * props.tor_number * props.max_tor_subnet_number * props.tor_subnet_size) +
- (tor * props.max_tor_subnet_number * props.tor_subnet_size) ) %}
-{% set octet2 = (168 + (suffix // (256 ** 2))) %}
-{% set octet1 = (192 + (octet2 // 256)) %}
-{% set octet2 = (octet2 % 256) %}
-{% set octet3 = ((suffix // 256) % 256) %}
-{% set octet4 = (suffix % 256) %}
-{% set prefixlen_v4 = (32 - (((props.max_tor_subnet_number * props.tor_subnet_size) | log(2)) | int) ) %}
-{% set prefixlen_v6 = (64 - (((props.max_tor_subnet_number * props.tor_subnet_size) | log(2)) | int) ) %}
-ip prefix-list test_ipv4_{{ podset}}_{{ tor }} seq 10 permit {{ octet1 }}.{{ octet2 }}.{{ octet3 }}.{{ octet4 }}/{{ prefixlen_v4 }} ge {{ prefixlen_v4 }}
-ipv6 prefix-list test_ipv6_{{ podset}}_{{ tor }}
- seq 10 permit {{ '20%02x' % octet1 }}:{{ '%02X%02X' % (octet2, octet3) }}:0:{{ '%02X' % octet4 }}::/{{ prefixlen_v6 }} ge {{ prefixlen_v6 }}
-exit
-{% endif %}
-{% endfor %}
-{% endfor %}
-!
interface Management 1
description TO LAB MGMT SWITCH
vrf forwarding MGMT
@@ -126,31 +77,6 @@ interface {{ bp_ifname }}
{% endif %}
no shutdown
!
-{% for podset in range(0, props.podset_number) %}
-{% if range(0, 1000)|random() >= props.failure_rate %}
-{% for tor in range(0, props.tor_number) %}
-{% set leafasn = props.leaf_asn_start + podset %}
-{% set torasn = props.tor_asn_start + tor %}
-route-map PREPENDAS permit {{ 2 * (podset * props.tor_number + tor + 1) }}
- match ip address prefix-list test_ipv4_{{ podset }}_{{ tor }}
-{% if podset == 0 %}
- set as-path prepend {{ torasn }}
-{% else %}
- set as-path prepend {{ props.spine_asn }} {{ leafasn }} {{ torasn }}
-{% endif %}
-!
-route-map PREPENDAS permit {{ 2 * (podset * props.tor_number + tor + 1) + 1 }}
- match ipv6 address prefix-list test_ipv6_{{ podset }}_{{ tor }}
-{% if podset == 0 %}
- set as-path prepend {{ torasn }}
-{% else %}
- set as-path prepend {{ props.spine_asn }} {{ leafasn }} {{ torasn }}
-{% endif %}
-!
-{% endfor %}
-{% endif %}
-{% endfor %}
-!
router bgp {{ host['bgp']['asn'] }}
router-id {{ host['interfaces']['Loopback0']['ipv4'] | ipaddr('address') }}
!
@@ -158,7 +84,6 @@ router bgp {{ host['bgp']['asn'] }}
{% for remote_ip in remote_ips %}
neighbor {{ remote_ip }} remote-as {{ asn }}
neighbor {{ remote_ip }} description {{ asn }}
- neighbor {{ remote_ip }} default-originate route-map DEFAULT_ROUTES
{% if remote_ip | ipv6 %}
address-family ipv6
neighbor {{ remote_ip }} activate
@@ -166,6 +91,13 @@ router bgp {{ host['bgp']['asn'] }}
{% endif %}
{% endfor %}
{% endfor %}
+ neighbor {{ props.nhipv4 }} remote-as {{ host['bgp']['asn'] }}
+ neighbor {{ props.nhipv4 }} description exabgp_v4
+ neighbor {{ props.nhipv6 }} remote-as {{ host['bgp']['asn'] }}
+ neighbor {{ props.nhipv6 }} description exabgp_v6
+ address-family ipv6
+ neighbor {{ props.nhipv6 }} activate
+ exit
!
{% for name, iface in host['interfaces'].items() if name.startswith('Loopback') %}
{% if iface['ipv4'] is defined %}
@@ -175,7 +107,6 @@ router bgp {{ host['bgp']['asn'] }}
network {{ iface['ipv6'] }}
{% endif %}
{% endfor %}
- redistribute static route-map PREPENDAS
!
management api http-commands
no protocol https
@@ -183,4 +114,3 @@ management api http-commands
no shutdown
!
end
-s
diff --git a/ansible/roles/vm_set/library/vm_topology.py b/ansible/roles/vm_set/library/vm_topology.py
index 830f48d0bba..6e39410081c 100644
--- a/ansible/roles/vm_set/library/vm_topology.py
+++ b/ansible/roles/vm_set/library/vm_topology.py
@@ -52,6 +52,8 @@
- vm_base: which VM consider the first VM in the current vm set
- ptf_mgmt_ip_addr: ip address with prefixlen for the injected docker container
- ptf_mgmt_ip_gw: default gateway for the injected docker container
+ - ptf_bp_ip_addr: ipv6 address with prefixlen for the injected docker container
+ - ptf_bp_ipv6_addr: ipv6 address with prefixlen for the injected docker container
- mgmt_bridge: a bridge which is used as mgmt bridge on the host
- dut_fp_ports: dut ports
- dut_mgmt_port: dut mgmt port
@@ -74,6 +76,8 @@
vm_base: "{{ VM_base }}"
ptf_mgmt_ip_addr: "{{ ptf_ip }}"
ptf_mgmt_ip_gw: "{{ mgmt_gw }}"
+ ptf_bp_ip_addr: "{{ ptf_ip }}"
+ ptf_bp_ipv6_addr: "{{ ptf_ip }}"
mgmt_bridge: "{{ mgmt_bridge }}"
dut_mgmt_port: "{{ dut_mgmt_port }}"
dut_fp_ports: "{{ dut_fp_ports }}"
@@ -85,21 +89,21 @@
DEFAULT_MTU = 0
NUM_FP_VLANS_PER_FP = 4
VM_SET_NAME_MAX_LEN = 8 # used in interface names. So restricted
-MGMT_BR_NAME = 'mgmt'
+MGMT_PORT_NAME = 'mgmt'
+BP_PORT_NAME = 'backplane'
CMD_DEBUG_FNAME = "/tmp/vmtopology.cmds.%s.txt"
EXCEPTION_DEBUG_FNAME = "/tmp/vmtopology.exception.%s.txt"
OVS_FP_BRIDGE_REGEX = 'br-%s-\d+'
OVS_FP_BRIDGE_TEMPLATE = 'br-%s-%d'
OVS_FP_TAP_TEMPLATE = '%s-t%d'
-OVS_BRIDGE_BACK_TEMPLATE = 'br-%s-back'
+OVS_BP_TAP_TEMPLATE = '%s-back'
INJECTED_INTERFACES_TEMPLATE = 'inje-%s-%d'
PTF_NAME_TEMPLATE = 'ptf_%s'
PTF_MGMT_IF_TEMPLATE = 'ptf-%s-m'
+PTF_BP_IF_TEMPLATE = 'ptf-%s-b'
ROOT_BACK_BR_TEMPLATE = 'br-b-%s'
PTF_FP_IFACE_TEMPLATE = 'eth%d'
-BACK_ROOT_END_IF_TEMPLATE = 'veth-bb-%s'
-BACK_VM_END_IF_TEMPLATE = 'veth-bv-%s'
RETRIES = 3
cmd_debug_fname = None
@@ -145,6 +149,8 @@ def init(self, vm_set_name, topo, vm_base, dut_fp_ports, ptf_exists=True):
else:
self.pid = None
+ self.bp_bridge = ROOT_BACK_BR_TEMPLATE % self.vm_set_name
+
self.update()
return
@@ -154,7 +160,7 @@ def update(self):
i = 0
while i < 3:
try:
- self.host_br_to_ifs, self.host_if_to_br = VMTopology.brctl('brctl show')
+ self.host_br_to_ifs, self.host_if_to_br = VMTopology.brctl_show()
self.host_ifaces = VMTopology.ifconfig('ifconfig -a')
if self.pid is not None:
self.cntr_ifaces = VMTopology.ifconfig('nsenter -t %s -n ifconfig -a' % self.pid)
@@ -181,13 +187,11 @@ def create_bridges(self):
for vm in self.vm_names:
for fp_num in xrange(self.max_fp_num):
fp_br_name = OVS_FP_BRIDGE_TEMPLATE % (vm, fp_num)
- self.create_bridge(fp_br_name, self.fp_mtu)
- bport_br_name = OVS_BRIDGE_BACK_TEMPLATE = 'br-%s-back' % vm
- self.create_bridge(bport_br_name, self.fp_mtu)
+ self.create_ovs_bridge(fp_br_name, self.fp_mtu)
return
- def create_bridge(self, bridge_name, mtu):
+ def create_ovs_bridge(self, bridge_name, mtu):
if bridge_name not in self.host_ifaces:
VMTopology.cmd('ovs-vsctl add-br %s' % bridge_name)
@@ -202,13 +206,11 @@ def destroy_bridges(self):
for vm in self.vm_names:
for ifname in self.host_ifaces:
if re.compile(OVS_FP_BRIDGE_REGEX % vm).match(ifname):
- self.destroy_bridge(ifname)
- bport_br_name = OVS_BRIDGE_BACK_TEMPLATE = 'br-%s-back' % vm
- self.destroy_bridge(bport_br_name)
+ self.destroy_ovs_bridge(ifname)
return
- def destroy_bridge(self, bridge_name):
+ def destroy_ovs_bridge(self, bridge_name):
if bridge_name in self.host_ifaces:
VMTopology.cmd('ifconfig %s down' % bridge_name)
VMTopology.cmd('ovs-vsctl del-br %s' % bridge_name)
@@ -232,8 +234,15 @@ def add_veth_ports_to_docker(self):
return
def add_mgmt_port_to_docker(self, mgmt_bridge, mgmt_ip, mgmt_gw):
- self.add_br_if_to_docker(mgmt_bridge, PTF_MGMT_IF_TEMPLATE % self.vm_set_name, MGMT_BR_NAME)
- self.add_ip_to_docker_if(MGMT_BR_NAME, mgmt_ip, mgmt_gw)
+ self.add_br_if_to_docker(mgmt_bridge, PTF_MGMT_IF_TEMPLATE % self.vm_set_name, MGMT_PORT_NAME)
+ self.add_ip_to_docker_if(MGMT_PORT_NAME, mgmt_ip, mgmt_gw=mgmt_gw)
+
+ return
+
+ def add_bp_port_to_docker(self, mgmt_ip, mgmt_ipv6):
+ self.add_br_if_to_docker(self.bp_bridge, PTF_BP_IF_TEMPLATE % self.vm_set_name, BP_PORT_NAME)
+ self.add_ip_to_docker_if(BP_PORT_NAME, mgmt_ip, mgmt_ipv6)
+ VMTopology.iface_disable_txoff(BP_PORT_NAME, self.pid)
return
@@ -256,12 +265,15 @@ def add_br_if_to_docker(self, bridge, ext_if, int_if):
return
- def add_ip_to_docker_if(self, int_if, mgmt_ip_addr, mgmt_gw):
+ def add_ip_to_docker_if(self, int_if, mgmt_ip_addr, mgmt_ipv6_addr=None, mgmt_gw=None):
self.update()
if int_if in self.cntr_ifaces:
VMTopology.cmd("nsenter -t %s -n ip addr flush dev %s" % (self.pid, int_if))
VMTopology.cmd("nsenter -t %s -n ip addr add %s dev %s" % (self.pid, mgmt_ip_addr, int_if))
- VMTopology.cmd("nsenter -t %s -n ip route add default via %s dev %s" % (self.pid, mgmt_gw, int_if))
+ if mgmt_ipv6_addr:
+ VMTopology.cmd("nsenter -t %s -n ip -6 addr add %s dev %s" % (self.pid, mgmt_ipv6_addr, int_if))
+ if mgmt_gw:
+ VMTopology.cmd("nsenter -t %s -n ip route add default via %s dev %s" % (self.pid, mgmt_gw, int_if))
return
@@ -363,53 +375,30 @@ def unbind_fp_ports(self):
return
def bind_vm_backplane(self):
- root_back_bridge = ROOT_BACK_BR_TEMPLATE % self.vm_set_name
- if root_back_bridge not in self.host_ifaces:
- VMTopology.cmd('ovs-vsctl add-br %s' % root_back_bridge)
+ if self.bp_bridge not in self.host_ifaces:
+ VMTopology.cmd('brctl addbr %s' % self.bp_bridge)
+
+ VMTopology.iface_up(self.bp_bridge)
- VMTopology.iface_up(root_back_bridge)
+ self.update()
for attr in self.VMs.itervalues():
vm_name = self.vm_names[self.vm_base_index + attr['vm_offset']]
- br_name = OVS_BRIDGE_BACK_TEMPLATE % vm_name
+ bp_port_name = OVS_BP_TAP_TEMPLATE % vm_name
- back_int_name = BACK_ROOT_END_IF_TEMPLATE % vm_name
- vm_int_name = BACK_VM_END_IF_TEMPLATE % vm_name
+ if bp_port_name not in self.host_br_to_ifs[self.bp_bridge]:
+ VMTopology.cmd("brctl addif %s %s" % (self.bp_bridge, bp_port_name))
- if back_int_name not in self.host_ifaces:
- VMTopology.cmd("ip link add %s type veth peer name %s" % (back_int_name, vm_int_name))
-
- if vm_int_name not in VMTopology.get_ovs_br_ports(br_name):
- VMTopology.cmd("ovs-vsctl add-port %s %s" % (br_name, vm_int_name))
-
- if back_int_name not in VMTopology.get_ovs_br_ports(root_back_bridge):
- VMTopology.cmd("ovs-vsctl add-port %s %s" % (root_back_bridge, back_int_name))
-
- VMTopology.iface_up(vm_int_name)
- VMTopology.iface_up(back_int_name)
+ VMTopology.iface_up(bp_port_name)
return
def unbind_vm_backplane(self):
- root_back_bridge = ROOT_BACK_BR_TEMPLATE % self.vm_set_name
-
- if root_back_bridge in self.host_ifaces:
- VMTopology.iface_down(root_back_bridge)
- VMTopology.cmd('ovs-vsctl del-br %s' % root_back_bridge)
-
- for attr in self.VMs.itervalues():
- vm_name = self.vm_names[self.vm_base_index + attr['vm_offset']]
- br_name = OVS_BRIDGE_BACK_TEMPLATE % vm_name
-
- back_int_name = BACK_ROOT_END_IF_TEMPLATE % vm_name
- vm_int_name = BACK_VM_END_IF_TEMPLATE % vm_name
- self.unbind_ovs_port(br_name, vm_int_name)
-
- if back_int_name in self.host_ifaces:
- VMTopology.iface_down(back_int_name)
- VMTopology.cmd("ip link delete dev %s" % back_int_name)
+ if self.bp_bridge in self.host_ifaces:
+ VMTopology.iface_down(self.bp_bridge)
+ VMTopology.cmd('brctl delbr %s' % self.bp_bridge)
return
@@ -498,6 +487,13 @@ def iface_updown(iface_name, state, pid):
else:
return VMTopology.cmd('nsenter -t %s -n ip link set %s %s' % (pid, iface_name, state))
+ @staticmethod
+ def iface_disable_txoff(iface_name, pid=None):
+ if pid is None:
+ return VMTopology.cmd('ethtool -K %s tx off' % (iface_name))
+ else:
+ return VMTopology.cmd('nsenter -t %s -n ethtool -K %s tx off' % (pid, iface_name))
+
@staticmethod
def cmd(cmdline):
with open(cmd_debug_fname, 'a') as fp:
@@ -571,8 +567,8 @@ def get_pid(ptf_name):
return ctn.attrs['State']['Pid']
@staticmethod
- def brctl(cmdline):
- out = VMTopology.cmd(cmdline)
+ def brctl_show():
+ out = VMTopology.cmd("brctl show")
br_to_ifs = {}
if_to_br = {}
@@ -658,6 +654,8 @@ def main():
vm_base=dict(required=False, type='str'),
ptf_mgmt_ip_addr=dict(required=False, type='str'),
ptf_mgmt_ip_gw=dict(required=False, type='str'),
+ ptf_bp_ip_addr=dict(required=False, type='str'),
+ ptf_bp_ipv6_addr=dict(required=False, type='str'),
mgmt_bridge=dict(required=False, type='str'),
dut_fp_ports=dict(required=False, type='list'),
dut_mgmt_port=dict(required=False, type='str'),
@@ -693,6 +691,8 @@ def main():
'topo',
'ptf_mgmt_ip_addr',
'ptf_mgmt_ip_gw',
+ 'ptf_bp_ip_addr',
+ 'ptf_bp_ipv6_addr',
'mgmt_bridge',
'dut_fp_ports'], cmd)
@@ -719,12 +719,16 @@ def main():
net.add_mgmt_port_to_docker(mgmt_bridge, ptf_mgmt_ip_addr, ptf_mgmt_ip_gw)
+ ptf_bp_ip_addr = module.params['ptf_bp_ip_addr']
+ ptf_bp_ipv6_addr = module.params['ptf_bp_ipv6_addr']
+
if vms_exists:
net.add_veth_ports_to_docker()
if module.params['dut_mgmt_port']:
net.bind_mgmt_port(mgmt_bridge, module.params['dut_mgmt_port'])
net.bind_fp_ports()
net.bind_vm_backplane()
+ net.add_bp_port_to_docker(ptf_bp_ip_addr, ptf_bp_ipv6_addr)
if hostif_exists:
net.inject_host_ports()
@@ -763,6 +767,8 @@ def main():
'topo',
'ptf_mgmt_ip_addr',
'ptf_mgmt_ip_gw',
+ 'ptf_bp_ip_addr',
+ 'ptf_bp_ipv6_addr',
'mgmt_bridge',
'dut_fp_ports'], cmd)
@@ -789,6 +795,9 @@ def main():
net.add_mgmt_port_to_docker(mgmt_bridge, ptf_mgmt_ip_addr, ptf_mgmt_ip_gw)
+ ptf_bp_ip_addr = module.params['ptf_bp_ip_addr']
+ ptf_bp_ipv6_addr = module.params['ptf_bp_ipv6_addr']
+
if vms_exists:
net.unbind_fp_ports()
net.add_veth_ports_to_docker()
diff --git a/ansible/roles/vm_set/tasks/add_topo.yml b/ansible/roles/vm_set/tasks/add_topo.yml
index 227c6c479ef..11c47a0296f 100644
--- a/ansible/roles/vm_set/tasks/add_topo.yml
+++ b/ansible/roles/vm_set/tasks/add_topo.yml
@@ -23,7 +23,7 @@
image: "{{ docker_registry_host }}/{{ ptf_imagename }}:{{ ptf_imagetag }}"
pull: yes
state: started
- restart: yes
+ restart: no
network_mode: none
detach: True
capabilities:
@@ -55,6 +55,8 @@
vm_base: "{{ VM_base }}"
ptf_mgmt_ip_addr: "{{ ptf_ip }}"
ptf_mgmt_ip_gw: "{{ mgmt_gw }}"
+ ptf_bp_ip_addr: "{{ ptf_bp_ip }}"
+ ptf_bp_ipv6_addr: "{{ ptf_bp_ipv6 }}"
mgmt_bridge: "{{ mgmt_bridge }}"
dut_fp_ports: "{{ dut_fp_ports }}"
dut_mgmt_port: "{{ dut_mgmt_port }}"
diff --git a/ansible/roles/vm_set/tasks/start.yml b/ansible/roles/vm_set/tasks/start.yml
index 80b4db423b7..d0584ade0f4 100644
--- a/ansible/roles/vm_set/tasks/start.yml
+++ b/ansible/roles/vm_set/tasks/start.yml
@@ -62,8 +62,7 @@
disk_image: "{{ home_path }}/{{ root_path }}/disks/{{ vm_name }}_hdd.vmdk"
cdrom_image: "{{ home_path }}/{{ root_path }}/images/{{ cd_image_filename }}"
mgmt_tap: "{{ vm_name }}-m"
- port1_bridge: "br-{{ vm_name }}-back"
- port1_tap: "{{ vm_name }}-back"
+ backplane_tap: "{{ vm_name }}-back"
with_items: "{{ VM_hosts }}"
- name: Kickstart VMs
@@ -77,6 +76,5 @@
disk_image: "{{ root_path }}/disks/{{ vm_name }}_hdd.vmdk"
cdrom_image: "{{ root_path }}/images/{{ cd_image_filename }}"
mgmt_tap: "{{ vm_name }}-m"
- port1_bridge: "br-{{ vm_name }}-back"
- port1_tap: "{{ vm_name }}-back"
+ backplane_tap: "{{ vm_name }}-back"
with_items: "{{ VM_hosts }}"
diff --git a/ansible/roles/vm_set/tasks/start_sonic_vm.yml b/ansible/roles/vm_set/tasks/start_sonic_vm.yml
index 40d95e622eb..a44adbdefb8 100644
--- a/ansible/roles/vm_set/tasks/start_sonic_vm.yml
+++ b/ansible/roles/vm_set/tasks/start_sonic_vm.yml
@@ -26,7 +26,7 @@
port_alias: hwsku={{ hostvars[dut_name].hwsku }}
delegate_to: localhost
-- name: Define vm {{ dut_name }}
+- name: Define SONiC vm {{ dut_name }}
virt: name={{ dut_name }}
command=define
xml="{{ lookup('template', 'templates/sonic.xml.j2') }}"
@@ -34,12 +34,13 @@
when: dut_name not in vm_list_defined.list_vms
become: yes
-- name: Start vm {{ dut_name }}
+- name: Start SONiC vm {{ dut_name }}
virt: name={{ dut_name }}
state=running
uri=qemu:///system
when: dut_name not in vm_list_running.list_vms
become: yes
+ register: sonic_vm_start
- name: Wait until vm {{ dut_name }} is loaded
sonic_kickstart: telnet_port={{ serial_port }}
diff --git a/ansible/roles/vm_set/templates/arista.xml.j2 b/ansible/roles/vm_set/templates/arista.xml.j2
index 5fd1d357d53..ab2e8f623d3 100644
--- a/ansible/roles/vm_set/templates/arista.xml.j2
+++ b/ansible/roles/vm_set/templates/arista.xml.j2
@@ -45,11 +45,9 @@
{% endfor %}
-
+
-
-
-
+
diff --git a/ansible/roles/vm_set/vars/main.yml b/ansible/roles/vm_set/vars/main.yml
index 70e2ee8bcd3..b94aaff812b 100644
--- a/ansible/roles/vm_set/vars/main.yml
+++ b/ansible/roles/vm_set/vars/main.yml
@@ -1,7 +1,5 @@
tor_memory: 1572864
spine_memory: 2097152
-port1_bridge: br-port1-{{ id }}
-
fp_mtu_size: 9216
diff --git a/ansible/vars/topo_t0.yml b/ansible/vars/topo_t0.yml
index 217423e8796..6ac1e9562ff 100644
--- a/ansible/vars/topo_t0.yml
+++ b/ansible/vars/topo_t0.yml
@@ -56,17 +56,8 @@ configuration_properties:
dut_asn: 65100
dut_type: ToRRouter
swrole: leaf
- podset_number: 200
- tor_number: 16
- tor_subnet_number: 2
- max_tor_subnet_number: 16
- tor_subnet_size: 128
- spine_asn: 65534
- leaf_asn_start: 64600
- tor_asn_start: 65100
- failure_rate: 0
- nhipv4: 10.10.246.100
- nhipv6: FC0A::C9
+ nhipv4: 10.10.246.254
+ nhipv6: FC0A::FF
configuration:
ARISTA01T1:
@@ -89,7 +80,7 @@ configuration:
ipv6: fc00::72/126
bp_interface:
ipv4: 10.10.246.29/24
- ipv6: fc0a::3a/64
+ ipv6: fc0a::1d/64
ARISTA02T1:
properties:
@@ -111,7 +102,7 @@ configuration:
ipv6: fc00::76/126
bp_interface:
ipv4: 10.10.246.30/24
- ipv6: fc0a::3d/64
+ ipv6: fc0a::1e/64
ARISTA03T1:
properties:
@@ -133,7 +124,7 @@ configuration:
ipv6: fc00::7a/126
bp_interface:
ipv4: 10.10.246.31/24
- ipv6: fc0a::3e/64
+ ipv6: fc0a::1f/64
ARISTA04T1:
properties:
@@ -155,4 +146,4 @@ configuration:
ipv6: fc00::7e/126
bp_interface:
ipv4: 10.10.246.32/24
- ipv6: fc0a::41/64
+ ipv6: fc0a::20/64