diff options
author | imarom <imarom@cisco.com> | 2016-12-13 18:15:22 +0200 |
---|---|---|
committer | imarom <imarom@cisco.com> | 2016-12-13 18:15:22 +0200 |
commit | 0fdd81a94d62592b0ec9888022d793f670c8476f (patch) | |
tree | ec52cd0f090793e26f67bc017d402b737acd71b5 /scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_port.py | |
parent | 0c45815234abbb79b147b8093eb19e274ee65f52 (diff) |
Major refactor - L2 / L3 modes for ports
Signed-off-by: imarom <imarom@cisco.com>
Diffstat (limited to 'scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_port.py')
-rw-r--r-- | scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_port.py | 59 |
1 files changed, 30 insertions, 29 deletions
diff --git a/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_port.py b/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_port.py index 5ec1f852..e44fe801 100644 --- a/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_port.py +++ b/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_port.py @@ -519,39 +519,40 @@ class Port(object): return self.ok() - @owned - def set_source_addr (self, addr): + def set_l2_mode (self, dst_mac): if not self.is_service_mode_on(): - return self.err('port service mode must be enabled for configuring source address. Please enable service mode') + return self.err('port service mode must be enabled for configuring L2 mode. Please enable service mode') - return self.set_attr(ipv4 = addr) - + params = {"handler": self.handler, + "port_id": self.port_id, + "dst_mac": dst_mac} - @owned - def set_dest_addr (self, addr): - if not self.is_service_mode_on(): - return self.err('port service mode must be enabled for configuring destination address. Please enable service mode') - - return self.set_attr(dest = addr) + rc = self.transmit("set_l2", params) + if rc.bad(): + return self.err(rc.err()) + + return self.sync() @owned - def set_arp_resolution (self, ipv4, mac): - + def set_l3_mode (self, src_addr, dest_addr, resolved_mac = None): + if not self.is_service_mode_on(): + return self.err('port service mode must be enabled for configuring L3 mode. Please enable service mode') + params = {"handler": self.handler, "port_id": self.port_id, - "ipv4": ipv4, - "mac": mac} + "src_addr": src_addr, + "dst_addr": dest_addr} - rc = self.transmit("set_arp_resolution", params) + if resolved_mac: + params["resolved_mac"] = resolved_mac + + rc = self.transmit("set_l3", params) if rc.bad(): return self.err(rc.err()) - # instead of updating manualy - let's sync with the server return self.sync() - - @owned @@ -700,15 +701,6 @@ class Port(object): if kwargs.get('rx_filter_mode') is not None: json_attr['rx_filter_mode'] = {'mode': kwargs.get('rx_filter_mode')} - if kwargs.get('ipv4') is not None: - json_attr['ipv4'] = {'addr': kwargs.get('ipv4')} - - if kwargs.get('dest') is not None: - if not self.is_service_mode_on(): - return self.err('setting destination requires port to be in service mode') - - json_attr['dest'] = {'addr': kwargs.get('dest')} - params = {"handler": self.handler, "port_id": self.port_id, @@ -879,7 +871,7 @@ class Port(object): info['src_ipv4'] = attr['src_ipv4'] if info['src_ipv4'] is None: - info['src_ipv4'] = 'Not Configured' + info['src_ipv4'] = '-' # dest dest = attr['dest'] @@ -908,6 +900,14 @@ class Port(object): queue = rx_info['queue'] info['rx_queue'] = '[{0} / {1}]'.format(queue['count'], queue['size']) if queue['is_active'] else 'off' + # Grat ARP + grat_arp = rx_info['grat_arp'] + if grat_arp['is_active']: + info['grat_arp'] = grat_arp['interval_sec'] + else: + info['grat_arp'] = "off" + + return info @@ -991,6 +991,7 @@ class Port(object): "RX Filter Mode": info['rx_filter_mode'], "RX Queueing": info['rx_queue'], "RX sniffer": info['rx_sniffer'], + "Grat ARP": info['grat_arp'], } |