diff options
author | 2016-10-25 20:28:00 +0300 | |
---|---|---|
committer | 2016-10-25 20:28:00 +0300 | |
commit | 9c6e6d4b3789bfc2260a5d14355d588756318711 (patch) | |
tree | 86c595f715fa3a73dfc012a6641e5b628d0ed4ac /scripts/automation | |
parent | 5088a5b481cf50d1030be3e204c71dc993a25f13 (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>
Diffstat (limited to 'scripts/automation')
-rwxr-xr-x | scripts/automation/regression/CPlatform.py | 88 | ||||
-rwxr-xr-x | scripts/automation/regression/platform_cmd_link.py | 14 | ||||
-rw-r--r-- | scripts/automation/regression/setups/trex-dan/config.yaml | 4 |
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: |