+ tg_port3_src_mac = Topology.get_interface_mac_by_port_key(node, "port3")
+ _, adj_int = Topology.\
+ get_adjacent_node_and_interface_by_key(nodes_info, node, "port3")
+ tg_port3_dst_mac = adj_int['mac_address']
+
+ tg_port5_src_mac = Topology.get_interface_mac_by_port_key(node, "port5")
+ _, adj_int = Topology.\
+ get_adjacent_node_and_interface_by_key(nodes_info, node, "port5")
+ tg_port5_dst_mac = adj_int['mac_address']
+
+
+ if node['subtype'] == NodeSubTypeTG.TREX:
+ if traffic_type in ["3-node-xconnect", "3-node-bridge"]:
+ (ret, stdout, stderr) = ssh.exec_command(
+ "sh -c '/tmp/openvpp-testing/resources/tools/t-rex-stateless.py "
+ "-d {0} -r {1}% -s {2} "
+ "--p1_src_mac 52:00:00:00:00:01 "
+ "--p1_dst_mac 52:00:00:00:00:02 "
+ "--p1_src_start_ip 10.10.10.1 "
+ "--p1_src_end_ip 10.10.10.254 "
+ "--p1_dst_start_ip 20.20.20.1 "
+ "--p1_dst_end_ip 20.20.20.254 "
+ "--p2_src_mac 52:00:00:00:00:02 "
+ "--p2_dst_mac 52:00:00:00:00:01 "
+ "--p2_src_start_ip 20.20.20.1 "
+ "--p2_src_end_ip 20.20.20.254 "
+ "--p2_dst_start_ip 10.10.10.1 "
+ "--p2_dst_end_ip 10.10.10.254'".\
+ format(duration, rate, framesize), timeout=int(duration)+60)
+ elif traffic_type in ["3-node-IPv4"]:
+ (ret, stdout, stderr) = ssh.exec_command(
+ "sh -c '/tmp/openvpp-testing/resources/tools/t-rex-stateless.py "
+ "-d {0} -r {1}% -s {2} "
+ "--p1_src_mac {3} "
+ "--p1_dst_mac {4} "
+ "--p1_src_start_ip 10.10.10.2 "
+ "--p1_src_end_ip 10.10.10.254 "
+ "--p1_dst_start_ip 20.20.20.2 "
+ "--p1_dst_end_ip 20.20.20.2 "
+ "--p2_src_mac {5} "
+ "--p2_dst_mac {6} "
+ "--p2_src_start_ip 20.20.20.2 "
+ "--p2_src_end_ip 20.20.20.254 "
+ "--p2_dst_start_ip 10.10.10.2 "
+ "--p2_dst_end_ip 10.10.10.2'".\
+ format(duration, rate, framesize,\
+ tg_port3_src_mac, tg_port3_dst_mac,\
+ tg_port5_src_mac, tg_port5_dst_mac),\
+ timeout=int(duration)+60)
+ else:
+ raise NotImplementedError('Unsupported traffic type')
+
+ else:
+ raise NotImplementedError("TG subtype not supported")