summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIdo Barnea <ibarnea@cisco.com>2016-10-25 20:28:00 +0300
committerIdo Barnea <ibarnea@cisco.com>2016-10-25 20:28:00 +0300
commit9c6e6d4b3789bfc2260a5d14355d588756318711 (patch)
tree86c595f715fa3a73dfc012a6641e5b628d0ed4ac
parent5088a5b481cf50d1030be3e204c71dc993a25f13 (diff)
Added support for router IP based config in regression, and changed TRex Dan to use it
Signed-off-by: Ido Barnea <ibarnea@cisco.com>
-rwxr-xr-xscripts/automation/regression/CPlatform.py88
-rwxr-xr-xscripts/automation/regression/platform_cmd_link.py14
-rw-r--r--scripts/automation/regression/setups/trex-dan/config.yaml4
3 files changed, 63 insertions, 43 deletions
diff --git a/scripts/automation/regression/CPlatform.py b/scripts/automation/regression/CPlatform.py
index dc5418cb..bc9d3c4b 100755
--- a/scripts/automation/regression/CPlatform.py
+++ b/scripts/automation/regression/CPlatform.py
@@ -121,18 +121,21 @@ class CPlatform(object):
if mode == 'config':
conf_t_command_set.append('set ip next-hop {next_hop}'.format(
next_hop = server_net_next_hop) )
+ conf_t_command_set.append('exit')
# config global arp to interfaces net address and vrf
- conf_t_command_set.append('{mode}arp vrf {dup} {next_hop} {dest_mac} arpa'.format(
- mode = unconfig_str,
- dup = dual_if.get_vrf_name(),
- next_hop = server_net_next_hop,
- dest_mac = dual_if.client_if.get_dest_mac()))
- conf_t_command_set.append('{mode}arp vrf {dup} {next_hop} {dest_mac} arpa'.format(
- mode = unconfig_str,
- dup = dual_if.get_vrf_name(),
- next_hop = client_net_next_hop,
- dest_mac = dual_if.server_if.get_dest_mac()))
+ if dual_if.client_if.get_dest_mac():
+ conf_t_command_set.append('{mode}arp vrf {dup} {next_hop} {dest_mac} arpa'.format(
+ mode = unconfig_str,
+ dup = dual_if.get_vrf_name(),
+ next_hop = server_net_next_hop,
+ dest_mac = dual_if.client_if.get_dest_mac()))
+ if dual_if.server_if.get_dest_mac():
+ conf_t_command_set.append('{mode}arp vrf {dup} {next_hop} {dest_mac} arpa'.format(
+ mode = unconfig_str,
+ dup = dual_if.get_vrf_name(),
+ next_hop = client_net_next_hop,
+ dest_mac = dual_if.server_if.get_dest_mac()))
else:
# config interfaces with relevant route-map
client_if_command_set.append ('{mode}ip policy route-map {p1}_to_{p2}'.format(
@@ -155,16 +158,19 @@ class CPlatform(object):
if mode == 'config':
conf_t_command_set.append('set ip next-hop {next_hop}'.format(
next_hop = server_net_next_hop) )
+ conf_t_command_set.append('exit')
# config global arp to interfaces net address
- conf_t_command_set.append('{mode}arp {next_hop} {dest_mac} arpa'.format(
- mode = unconfig_str,
- next_hop = server_net_next_hop,
- dest_mac = dual_if.client_if.get_dest_mac()))
- conf_t_command_set.append('{mode}arp {next_hop} {dest_mac} arpa'.format(
- mode = unconfig_str,
- next_hop = client_net_next_hop,
- dest_mac = dual_if.server_if.get_dest_mac()))
+ if dual_if.client_if.get_dest_mac():
+ conf_t_command_set.append('{mode}arp {next_hop} {dest_mac} arpa'.format(
+ mode = unconfig_str,
+ next_hop = server_net_next_hop,
+ dest_mac = dual_if.client_if.get_dest_mac()))
+ if dual_if.server_if.get_dest_mac():
+ conf_t_command_set.append('{mode}arp {next_hop} {dest_mac} arpa'.format(
+ mode = unconfig_str,
+ next_hop = client_net_next_hop,
+ dest_mac = dual_if.server_if.get_dest_mac()))
# assign generated config list to cache
cache.add('IF', server_if_command_set, dual_if.server_if.get_name())
@@ -247,16 +253,18 @@ class CPlatform(object):
next_hop = server_net_next_hop))
# config global arp to interfaces net address and vrf
- conf_t_command_set.append('{mode}arp vrf {dup} {next_hop} {dest_mac} arpa'.format(
- mode = unconfig_str,
- dup = dual_if.get_vrf_name(),
- next_hop = server_net_next_hop,
- dest_mac = dual_if.client_if.get_dest_mac()))
- conf_t_command_set.append('{mode}arp vrf {dup} {next_hop} {dest_mac} arpa'.format(
- mode = unconfig_str,
- dup = dual_if.get_vrf_name(),
- next_hop = client_net_next_hop,
- dest_mac = dual_if.server_if.get_dest_mac()))
+ if dual_if.client_if.get_dest_mac():
+ conf_t_command_set.append('{mode}arp vrf {dup} {next_hop} {dest_mac} arpa'.format(
+ mode = unconfig_str,
+ dup = dual_if.get_vrf_name(),
+ next_hop = server_net_next_hop,
+ dest_mac = dual_if.client_if.get_dest_mac()))
+ if dual_if.server_if.get_dest_mac():
+ conf_t_command_set.append('{mode}arp vrf {dup} {next_hop} {dest_mac} arpa'.format(
+ mode = unconfig_str,
+ dup = dual_if.get_vrf_name(),
+ next_hop = client_net_next_hop,
+ dest_mac = dual_if.server_if.get_dest_mac()))
# assign generated interfaces config list to cache
cache.add('IF', server_if_command_set, dual_if.server_if.get_name())
@@ -275,14 +283,16 @@ class CPlatform(object):
next_hop = client_net_next_hop))
# config global arp to interfaces net address
- conf_t_command_set.append('{mode}arp {next_hop} {dest_mac} arpa'.format(
- mode = unconfig_str,
- next_hop = server_net_next_hop,
- dest_mac = dual_if.client_if.get_dest_mac()))
- conf_t_command_set.append('{mode}arp {next_hop} {dest_mac} arpa'.format(
- mode = unconfig_str,
- next_hop = client_net_next_hop,
- dest_mac = dual_if.server_if.get_dest_mac()))
+ if dual_if.client_if.get_dest_mac():
+ conf_t_command_set.append('{mode}arp {next_hop} {dest_mac} arpa'.format(
+ mode = unconfig_str,
+ next_hop = server_net_next_hop,
+ dest_mac = dual_if.client_if.get_dest_mac()))
+ if dual_if.server_if.get_dest_mac():
+ conf_t_command_set.append('{mode}arp {next_hop} {dest_mac} arpa'.format(
+ mode = unconfig_str,
+ next_hop = client_net_next_hop,
+ dest_mac = dual_if.server_if.get_dest_mac()))
# bump up to the next client network address
client_net = misc_methods.get_single_net_client_addr(client_net, stat_route_obj.net_increment)
@@ -510,12 +520,14 @@ class CPlatform(object):
p1 = 'p'+str(idx), p2 = 'p'+str(idx+1) ) )
# config global arp to interfaces net address and vrf
- conf_t_command_set.append('{mode}ipv6 neighbor {next_hop} {intf} {dest_mac}'.format(
+ if dual_if.client_if.get_dest_mac():
+ conf_t_command_set.append('{mode}ipv6 neighbor {next_hop} {intf} {dest_mac}'.format(
mode = unconfig_str,
next_hop = server_net_next_hop,
intf = dual_if.client_if.get_name(),
dest_mac = dual_if.client_if.get_dest_mac()))
- conf_t_command_set.append('{mode}ipv6 neighbor {next_hop} {intf} {dest_mac}'.format(
+ if dual_if.server_if.get_dest_mac():
+ conf_t_command_set.append('{mode}ipv6 neighbor {next_hop} {intf} {dest_mac}'.format(
mode = unconfig_str,
next_hop = client_net_next_hop,
intf = dual_if.server_if.get_name(),
diff --git a/scripts/automation/regression/platform_cmd_link.py b/scripts/automation/regression/platform_cmd_link.py
index 72295c7a..8162e29d 100755
--- a/scripts/automation/regression/platform_cmd_link.py
+++ b/scripts/automation/regression/platform_cmd_link.py
@@ -308,22 +308,30 @@ class CIfManager(object):
tmp_ipv4_addr = self.__get_ipv4_net_client_addr (next(CIfManager._ipv4_gen)[0])
tmp_ipv6_addr = self.__get_ipv6_net_client_addr (next(CIfManager._ipv6_gen))
+ if 'dest_mac_addr' in intf_pair['client']:
+ client_dest_mac = intf_pair['client']['dest_mac_addr']
+ else:
+ client_dest_mac = 0
client_obj = CIfObj(if_name = intf_pair['client']['name'],
ipv4_addr = tmp_ipv4_addr,
ipv6_addr = tmp_ipv6_addr,
src_mac_addr = intf_pair['client']['src_mac_addr'],
- dest_mac_addr = intf_pair['client']['dest_mac_addr'],
+ dest_mac_addr = client_dest_mac,
if_type = IFType.Client)
# generate network addresses for server side, and initialize server if object
tmp_ipv4_addr = self.__get_ipv4_net_client_addr (next(CIfManager._ipv4_gen)[0])
tmp_ipv6_addr = self.__get_ipv6_net_client_addr (next(CIfManager._ipv6_gen))
-
+
+ if 'dest_mac_addr' in intf_pair['server']:
+ server_dest_mac = intf_pair['server']['dest_mac_addr']
+ else:
+ server_dest_mac = 0
server_obj = CIfObj(if_name = intf_pair['server']['name'],
ipv4_addr = tmp_ipv4_addr,
ipv6_addr = tmp_ipv6_addr,
src_mac_addr = intf_pair['server']['src_mac_addr'],
- dest_mac_addr = intf_pair['server']['dest_mac_addr'],
+ dest_mac_addr = server_dest_mac,
if_type = IFType.Server)
dual_intf_obj = CDualIfObj(vrf_name = intf_pair['vrf_name'],
diff --git a/scripts/automation/regression/setups/trex-dan/config.yaml b/scripts/automation/regression/setups/trex-dan/config.yaml
index c95dfa37..be972001 100644
--- a/scripts/automation/regression/setups/trex-dan/config.yaml
+++ b/scripts/automation/regression/setups/trex-dan/config.yaml
@@ -54,11 +54,11 @@ router:
- client :
name : GigabitEthernet0/0/1
src_mac_addr : 0000.0001.0000
- dest_mac_addr : 0000.0001.0000
+# dest_mac_addr : 0000.0001.0000
server :
name : GigabitEthernet0/0/2
src_mac_addr : 0000.0001.0000
- dest_mac_addr : 0000.0001.0000
+# dest_mac_addr : 0000.0001.0000
vrf_name : null
tftp: