-| TG can route to TG through DUT1 and DUT2
-| | TG interface "${nodes['TG']['interfaces']['port3']['name']}" can route to node "${nodes['TG']}" interface "${nodes['TG']['interfaces']['port5']['name']}" "2" hops away using IPv4
-| | Vpp dump stats table | ${nodes['DUT1']}
-| | Check ipv4 interface counter | ${nodes['DUT1']} | ${nodes['DUT1']['interfaces']['port1']['name']} | ${1}
-| | Check ipv4 interface counter | ${nodes['DUT1']} | ${nodes['DUT1']['interfaces']['port3']['name']} | ${1}
-| | Vpp dump stats table | ${nodes['DUT2']}
-| | Check ipv4 interface counter | ${nodes['DUT2']} | ${nodes['DUT2']['interfaces']['port3']['name']} | ${1}
-| | Check ipv4 interface counter | ${nodes['DUT2']} | ${nodes['DUT2']['interfaces']['port1']['name']} | ${1}
+| TC05: DUT1 and DUT2 route IPv4 between TG interfaces
+| | [Documentation]
+| | ... | Make TG send ICMPv4 Echo Req between its interfaces across DUT1\
+| | ... | and DUT2. Make TG verify ICMPv4 Echo Replies are correct.
+| | [Tags] | 3_NODE_SINGLE_LINK_TOPO | VM_ENV
+| | Append Nodes | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']}
+| | Compute Path
+| | ${src_port} | ${src_node}= | First Interface
+| | ${dst_port} | ${dst_node}= | Last Interface
+| | ${hops}= | Set Variable | ${2}
+| | Node "${src_node}" interface "${src_port}" can route to node "${dst_node}" interface "${dst_port}" ${hops} hops away using IPv4
+| | ${port} | ${node}= | Next Interface
+| | ${port} | ${node}= | Next Interface
+| | ${exp_counter_val}= | Set Variable | ${1}
+| | Vpp dump stats table | ${node}
+| | Check ipv4 interface counter | ${node} | ${port} | ${exp_counter_val}
+| | ${port} | ${node}= | Next Interface
+| | Check ipv4 interface counter | ${node} | ${port} | ${exp_counter_val}
+| | ${port} | ${node}= | Next Interface
+| | Vpp dump stats table | ${node}
+| | Check ipv4 interface counter | ${node} | ${port} | ${exp_counter_val}
+| | ${port} | ${node}= | Next Interface
+| | Check ipv4 interface counter | ${node} | ${port} | ${exp_counter_val}