summaryrefslogtreecommitdiffstats
path: root/scripts/automation/regression/hltapi_example.py
diff options
context:
space:
mode:
authorYaroslav Brustinov <ybrustin@cisco.com>2016-02-23 08:34:35 -0500
committerYaroslav Brustinov <ybrustin@cisco.com>2016-02-23 08:34:35 -0500
commitee91690697d026c168de223f0b6b61c2e59e76ad (patch)
treeffcb938bea2951c52392dda84c53c740d04a40a3 /scripts/automation/regression/hltapi_example.py
parenta420b4c469c49c01c5de6756e2955beb4c714728 (diff)
hltapi: optimization to utilize similar variables for several fields, fix incorrect size from l3_length, add profiles
Diffstat (limited to 'scripts/automation/regression/hltapi_example.py')
-rwxr-xr-xscripts/automation/regression/hltapi_example.py155
1 files changed, 0 insertions, 155 deletions
diff --git a/scripts/automation/regression/hltapi_example.py b/scripts/automation/regression/hltapi_example.py
deleted file mode 100755
index 5695d32f..00000000
--- a/scripts/automation/regression/hltapi_example.py
+++ /dev/null
@@ -1,155 +0,0 @@
-#!/router/bin/python
-
-import outer_packages
-from trex_stl_lib.trex_stl_hltapi import CTRexHltApi, CStreamsPerPort
-import traceback
-import sys, time
-from pprint import pprint
-import argparse
-
-def error(err = None):
- if not err:
- raise Exception('Unknown exception, look traceback')
- if type(err) is str and not err.startswith('[ERR]'):
- err = '[ERR] ' + err
- print err
- sys.exit(1)
-
-def check_res(res):
- if res['status'] == 0:
- error('Encountered error:\n%s' % res['log'])
- return res
-
-def print_brief_stats(res):
- title_str = ' '*3
- tx_str = 'TX:'
- rx_str = 'RX:'
- for port_id, stat in res.iteritems():
- if type(port_id) is not int:
- continue
- title_str += ' '*10 + 'Port%s' % port_id
- tx_str += '%15s' % res[port_id]['aggregate']['tx']['total_pkts']
- rx_str += '%15s' % res[port_id]['aggregate']['rx']['total_pkts']
- print(title_str)
- print(tx_str)
- print(rx_str)
-
-def wait_with_progress(seconds):
- for i in range(0, seconds):
- time.sleep(1)
- sys.stdout.write('.')
- sys.stdout.flush()
- print('')
-
-if __name__ == "__main__":
- try:
- parser = argparse.ArgumentParser(description='Example of using stateless TRex via HLT API.', formatter_class=argparse.RawTextHelpFormatter)
- parser.add_argument('-v', dest = 'verbose', default = 0, help='Stateless API verbosity:\n0: No prints\n1: Commands and their status\n2: Same as 1 + ZMQ in&out')
- parser.add_argument('--device', dest = 'device', default = 'localhost', help='Address of TRex server')
- args = parser.parse_args()
- hlt_client = CTRexHltApi(verbose = int(args.verbose))
-
- print('Connecting to %s...' % args.device)
- res = check_res(hlt_client.connect(device = args.device, port_list = [0, 1], username = 'danklei', break_locks = True, reset = True))
- port_handle = res['port_handle']
- print('Connected, got port handles %s' % port_handle)
- ports_streams_dict = CStreamsPerPort(port_handle)
-
- print('Imix should create 3 streams (forth ratio is 0)')
- res = check_res(hlt_client.traffic_config(mode = 'create', l2_encap = 'ethernet_ii_vlan', bidirectional = True, length_mode = 'imix',
- port_handle = port_handle, save_to_yaml = '/tmp/d1.yaml'))
- ports_streams_dict.add_streams_from_res(res)
-
- #print ports_streams_dict
- #print hlt_client.trex_client._STLClient__get_all_streams(port_id = port_handle[0])
- res = check_res(hlt_client.traffic_config(mode = 'modify', port_handle = port_handle[0], stream_id = ports_streams_dict[0][0],
- mac_src = '1-2-3:4:5:6', l4_protocol = 'udp', save_to_yaml = '/tmp/d2.yaml'))
- #print hlt_client.trex_client._STLClient__get_all_streams(port_id = port_handle[0])
- #print hlt_client._streams_history
- res = check_res(hlt_client.traffic_config(mode = 'modify', port_handle = port_handle[0], stream_id = ports_streams_dict[0][0],
- mac_dst = '{ 7 7 7-7:7:7}', save_to_yaml = '/tmp/d3.yaml'))
- #print hlt_client.trex_client._STLClient__get_all_streams(port_id = port_handle[0])
- check_res(hlt_client.traffic_config(mode = 'reset', port_handle = port_handle))
-
- res = check_res(hlt_client.traffic_config(mode = 'create', bidirectional = True, length_mode = 'fixed', port_handle = port_handle,
- transmit_mode = 'single_burst', pkts_per_burst = 100, rate_pps = 100,
- mac_src = '1-2-3-4-5-6',
- mac_dst = '6:5:4:4:5:6',
- save_to_yaml = '/tmp/imix.yaml'))
- ports_streams_dict.add_streams_from_res(res)
-
- print('Create single_burst 100 packets rate_pps=100 on port 0')
- res = check_res(hlt_client.traffic_config(mode = 'create', port_handle = port_handle[0], transmit_mode = 'single_burst',
- pkts_per_burst = 100, rate_pps = 100))
- ports_streams_dict.add_streams_from_res(res)
-
- # playground - creating various streams on port 1
- res = check_res(hlt_client.traffic_config(mode = 'create', port_handle = port_handle[1], save_to_yaml = '/tmp/hlt2.yaml',
- tcp_src_port_mode = 'decrement',
- tcp_src_port_count = 10, tcp_dst_port_count = 10, tcp_dst_port_mode = 'random'))
- ports_streams_dict.add_streams_from_res(res)
-
- res = check_res(hlt_client.traffic_config(mode = 'create', port_handle = port_handle[1], save_to_yaml = '/tmp/hlt3.yaml',
- l4_protocol = 'udp',
- udp_src_port_mode = 'decrement',
- udp_src_port_count = 10, udp_dst_port_count = 10, udp_dst_port_mode = 'random'))
- ports_streams_dict.add_streams_from_res(res)
-
- res = check_res(hlt_client.traffic_config(mode = 'create', port_handle = port_handle[1], save_to_yaml = '/tmp/hlt4.yaml',
- length_mode = 'increment',
- #ip_src_addr = '192.168.1.1', ip_src_mode = 'increment', ip_src_count = 5,
- ip_dst_addr = '5.5.5.5', ip_dst_mode = 'random', ip_dst_count = 2))
- ports_streams_dict.add_streams_from_res(res)
-
- res = check_res(hlt_client.traffic_config(mode = 'create', port_handle = port_handle[1], save_to_yaml = '/tmp/hlt5.yaml',
- length_mode = 'decrement', frame_size_min = 100, frame_size_max = 3000,
- #ip_src_addr = '192.168.1.1', ip_src_mode = 'increment', ip_src_count = 5,
- #ip_dst_addr = '5.5.5.5', ip_dst_mode = 'random', ip_dst_count = 2
- ))
- ports_streams_dict.add_streams_from_res(res)
-
- # remove the playground
- check_res(hlt_client.traffic_config(mode = 'reset', port_handle = port_handle[1]))
-
- print('Create continuous stream for port 1, rate_pps = 1')
- res = check_res(hlt_client.traffic_config(mode = 'create', port_handle = port_handle[1], save_to_yaml = '/tmp/hlt1.yaml',
- #length_mode = 'increment', l3_length_min = 200,
- ip_src_addr = '192.168.1.1', ip_src_mode = 'increment', ip_src_count = 5,
- ip_dst_addr = '5.5.5.5', ip_dst_mode = 'random', ip_dst_count = 2))
-
- check_res(hlt_client.traffic_control(action = 'run', port_handle = port_handle))
- wait_with_progress(1)
- print('Sample after 1 seconds (only packets count)')
- res = check_res(hlt_client.traffic_stats(mode = 'all', port_handle = port_handle))
- print_brief_stats(res)
- print ''
-
- print('Port 0 has finished the burst, put continuous instead with rate 1000. No stopping of other ports.')
- check_res(hlt_client.traffic_control(action = 'stop', port_handle = port_handle[0]))
- check_res(hlt_client.traffic_config(mode = 'reset', port_handle = port_handle[0]))
- res = check_res(hlt_client.traffic_config(mode = 'create', port_handle = port_handle[0], rate_pps = 1000))
- ports_streams_dict.add_streams_from_res(res)
- check_res(hlt_client.traffic_control(action = 'run', port_handle = port_handle[0]))
- wait_with_progress(5)
- print('Sample after another 5 seconds (only packets count)')
- res = check_res(hlt_client.traffic_stats(mode = 'aggregate', port_handle = port_handle))
- print_brief_stats(res)
- print ''
-
- print('Stop traffic at port 1')
- res = check_res(hlt_client.traffic_control(action = 'stop', port_handle = port_handle[1]))
- wait_with_progress(5)
- print('Sample after another %s seconds (only packets count)' % 5)
- res = check_res(hlt_client.traffic_stats(mode = 'aggregate', port_handle = port_handle))
- print_brief_stats(res)
- print ''
- print('Full HLT stats:')
- pprint(res)
-
- check_res(hlt_client.cleanup_session())
- except Exception as e:
- print(traceback.print_exc())
- print(e)
- raise
- finally:
- print('Done.')