from robot.api import logger
from resources.libraries.python.Constants import Constants
-from resources.libraries.python.InterfaceUtil import InterfaceUtil
+from resources.libraries.python.InterfaceUtil import InterfaceUtil, \
+ InterfaceStatusFlags
from resources.libraries.python.IPUtil import IPUtil
-from resources.libraries.python.PapiExecutor import PapiExecutor
+from resources.libraries.python.PapiExecutor import PapiSocketExecutor
from resources.libraries.python.topology import Topology
from resources.libraries.python.VatExecutor import VatExecutor
ip=src_ip,
ip_len=128 if src_ip.version == 6 else 32))
commands.append(
- 'vxlan_add_del_tunnel src {src_ip} dst {dst_ip} vni {vni}\n'
- .format(src_ip=src_ip, dst_ip=dst_ip,
+ 'vxlan_add_del_tunnel src {srcip} dst {dstip} vni {vni}\n'\
+ .format(srcip=src_ip, dstip=dst_ip,
vni=vni_start + i))
commands.append(
- 'create_vlan_subif sw_if_index {sw_idx} vlan {vlan}\n'
+ 'create_vlan_subif sw_if_index {sw_idx} vlan {vlan}\n'\
.format(sw_idx=Topology.get_interface_sw_index(
node, node_vlan_if), vlan=i + 1))
VatExecutor().write_and_execute_script(node, tmp_fn, commands)
cmd1 = 'sw_interface_add_del_address'
args1 = dict(
sw_if_index=InterfaceUtil.get_interface_index(node, node_vxlan_if),
- is_add=1,
- is_ipv6=1 if src_ip_addr_start.version == 6 else 0,
- del_all=0,
- address_length=128 if src_ip_addr_start.version == 6 else 32,
- address=None)
+ is_add=True,
+ del_all=False,
+ prefix=None
+ )
cmd2 = 'vxlan_add_del_tunnel'
args2 = dict(
is_add=1,
mcast_sw_if_index=Constants.BITWISE_NON_ZERO,
encap_vrf_id=0,
decap_next_index=Constants.BITWISE_NON_ZERO,
- vni=None)
+ vni=None
+ )
cmd3 = 'create_vlan_subif'
args3 = dict(
sw_if_index=InterfaceUtil.get_interface_index(
node, node_vlan_if),
- vlan_id=None)
- err_msg = 'Failed to create VXLAN and VLAN interfaces on host {host}'.\
- format(host=node['host'])
+ vlan_id=None
+ )
- with PapiExecutor(node) as papi_exec:
+ with PapiSocketExecutor(node) as papi_exec:
for i in xrange(0, vxlan_count):
try:
src_ip = src_ip_addr_start + i * ip_step
"has been reached.")
vxlan_count = i
break
- args1['address'] = src_ip.packed
- args2['src_address'] = src_ip.packed
- args2['dst_address'] = dst_ip.packed
+ args1['prefix'] = IPUtil.create_prefix_object(
+ src_ip, 128 if src_ip_addr_start.version == 6 else 32)
+ args2['src_address'] = getattr(src_ip, 'packed')
+ args2['dst_address'] = getattr(dst_ip, 'packed')
args2['vni'] = int(vni_start) + i
args3['vlan_id'] = i + 1
history = False if 1 < i < vxlan_count else True
papi_exec.add(cmd1, history=history, **args1).\
add(cmd2, history=history, **args2).\
add(cmd3, history=history, **args3)
- if i > 0 and i % (Constants.PAPI_MAX_API_BULK / 3) == 0:
- papi_exec.get_replies(err_msg).verify_replies(
- err_msg=err_msg)
- papi_exec.get_replies().verify_replies()
+ papi_exec.get_replies()
return vxlan_count
cmd = 'sw_interface_set_flags'
args1 = dict(
sw_if_index=None,
- admin_up_down=1)
+ flags=InterfaceStatusFlags.IF_STATUS_API_FLAG_ADMIN_UP.value
+ )
args2 = dict(
sw_if_index=None,
- admin_up_down=1)
- err_msg = 'Failed to put VXLAN and VLAN interfaces up on host {host}'. \
- format(host=node['host'])
+ flags=InterfaceStatusFlags.IF_STATUS_API_FLAG_ADMIN_UP.value
+ )
- with PapiExecutor(node) as papi_exec:
+ with PapiSocketExecutor(node) as papi_exec:
for i in xrange(0, vxlan_count):
vxlan_subif_key = Topology.add_new_port(node, 'vxlan_tunnel')
vxlan_subif_name = 'vxlan_tunnel{nr}'.format(nr=i)
history = False if 1 < i < vxlan_count else True
papi_exec.add(cmd, history=history, **args1). \
add(cmd, history=history, **args2)
- if i > 0 and i % (Constants.PAPI_MAX_API_BULK / 2) == 0:
- papi_exec.get_replies(err_msg).verify_replies(
- err_msg=err_msg)
papi_exec.add(cmd, **args1).add(cmd, **args2)
- papi_exec.get_replies().verify_replies()
+ papi_exec.get_replies()
@staticmethod
def vpp_put_vxlan_and_vlan_interfaces_to_bridge_domain(
shg=0,
port_type=0,
enable=1)
- err_msg = 'Failed to put VXLAN and VLAN interfaces to bridge domain ' \
- 'on host {host}'.format(host=node['host'])
- with PapiExecutor(node) as papi_exec:
+ with PapiSocketExecutor(node) as papi_exec:
for i in xrange(0, vxlan_count):
dst_ip = dst_ip_addr_start + i * ip_step
args1['neighbor']['ip_address'] = str(dst_ip)
add(cmd2, history=history, **args2). \
add(cmd3, history=history, **args3). \
add(cmd3, history=history, **args4)
- if i > 0 and i % (Constants.PAPI_MAX_API_BULK / 4) == 0:
- papi_exec.get_replies(err_msg).verify_replies(
- err_msg=err_msg)
- papi_exec.get_replies().verify_replies()
+ papi_exec.get_replies()