-| Setup VXLAN tunnel on nodes
-| | [Arguments] | ${TG} | ${DUT1} | ${DUT2} | ${VNI}
-| | Append Nodes | ${TG} | ${DUT1} | ${DUT2} | ${TG}
-| | Compute Path
-| | ${tgs_to_dut1} | ${tg}= | Next Interface
-| | ${dut1s_to_tg} | ${dut1}= | Next Interface
-| | ${dut1s_to_dut2} | ${dut1}= | Next Interface
-| | ${dut2s_to_dut1} | ${dut2}= | Next Interface
-| | ${dut2s_to_tg} | ${dut2}= | Next Interface
-| | ${tgs_to_dut2} | ${tg}= | Next Interface
-| | Set Suite Variable | ${tgs_to_dut1}
-| | Set Suite Variable | ${dut1s_to_tg}
-| | Set Suite Variable | ${tgs_to_dut2}
-| | Set Suite Variable | ${dut2s_to_tg}
-| | Set Suite Variable | ${dut1s_to_dut2}
-| | Set Suite Variable | ${dut2s_to_dut1}
-# TODO: replace with address generator
-| | Set Suite Variable | ${dut1s_ip_address} | 172.16.0.1
-| | Set Suite Variable | ${dut2s_ip_address} | 172.16.0.2
-| | Set Suite Variable | ${duts_ip_address_prefix} | 24
-| | Set Interface State | ${TG} | ${tgs_to_dut1} | up
-| | Set Interface State | ${TG} | ${tgs_to_dut2} | up
-| | ${vxlan_dut1}= | Setup VXLAN on DUT | ${DUT1} | ${VNI} | ${dut1s_ip_address}
-| | ... | ${dut2s_ip_address} | ${dut1s_to_tg}
-| | ... | ${dut1s_to_dut2} | ${dut1s_ip_address}
-| | ... | ${duts_ip_address_prefix}
-| | Set Suite Variable | ${vxlan_dut1}
-| | ${vxlan_dut2}= | Setup VXLAN on DUT | ${DUT2} | ${VNI} | ${dut2s_ip_address}
-| | ... | ${dut1s_ip_address} | ${dut2s_to_tg}
-| | ... | ${dut2s_to_dut1} | ${dut2s_ip_address}
-| | ... | ${duts_ip_address_prefix}
-| | Set Suite Variable | ${vxlan_dut2}
-| | @{test_nodes}= | Create list | ${DUT1} | ${DUT2}
-| | Vpp Nodes Interfaces Ready Wait | ${test_nodes}
-# ip arp table must be filled on both nodes with neighbors address
-| | VPP IP Probe | ${DUT1} | ${dut1s_to_dut2} | ${dut2s_ip_address}
+| IP addresses are set on interfaces
+| | [Documentation] | *Set IPv4 addresses on interfaces on DUTs.*
+| | ... | If interface index is None then is determines with Get Interface Sw Index
+| | ... | in this case it is required the interface to be present in topology dict.
+| | ... | It also executes VPP IP Probe to determine MACs to IPs on DUTs
+| | ...
+| | ... | _Set testcase variables with IP addresses and prefix length:_
+| | ... | - ${dut1s_ip_address}
+| | ... | - ${dut2s_ip_address}
+| | ... | - ${duts_ip_address_prefix}
+| | ...
+| | [Arguments] | ${DUT1} | ${DUT1_INT_NAME} | ${DUT1_INT_INDEX}
+| | ... | ${DUT2} | ${DUT2_INT_NAME} | ${DUT2_INT_INDEX}
+| | Set Test Variable | ${dut1s_ip_address} | 172.16.0.1
+| | Set Test Variable | ${dut2s_ip_address} | 172.16.0.2
+| | Set Test Variable | ${duts_ip_address_prefix} | 24
+| | ${DUT1_INT_KEY}= | Run Keyword If | ${DUT1_INT_INDEX} is None
+| | | ... | Get Interface by name | ${DUT1} | ${DUT1_INT_NAME}
+| | ${DUT2_INT_KEY}= | Run Keyword If | ${DUT2_INT_INDEX} is None
+| | | ... | Get Interface by name | ${DUT2} | ${DUT2_INT_NAME}
+| | ${DUT1_INT_INDEX}= | Run Keyword If | ${DUT1_INT_INDEX} is None
+| | | ... | Get Interface Sw Index | ${DUT1} | ${DUT1_INT_KEY}
+| | | ... | ELSE | Set Variable | ${DUT1_INT_INDEX}
+| | ${DUT2_INT_INDEX}= | Run Keyword If | ${DUT2_INT_INDEX} is None
+| | | ... | Get Interface Sw Index | ${DUT2} | ${DUT2_INT_KEY}
+| | | ... | ELSE | Set Variable | ${DUT2_INT_INDEX}
+| | Set Interface Address | ${DUT1} | ${DUT1_INT_INDEX}
+| | ... | ${dut1s_ip_address} | ${duts_ip_address_prefix}
+| | Set Interface Address | ${DUT2} | ${DUT2_INT_INDEX}
+| | ... | ${dut2s_ip_address} | ${duts_ip_address_prefix}
+| | VPP IP Probe | ${DUT1} | ${DUT1_INT_NAME} | ${dut2s_ip_address} | if_type=name
+| | VPP IP Probe | ${DUT2} | ${DUT2_INT_NAME} | ${dut1s_ip_address} | if_type=name
+
+| VXLAN interface is created
+| | [Arguments] | ${DUT} | ${VNI} | ${SRC_IP} | ${DST_IP}
+| | Create VXLAN interface | ${DUT} | ${VNI} | ${SRC_IP} | ${DST_IP}
+
+| Interfaces are added to BD
+| | [Arguments] | ${DUT} | ${BID} | ${INTERFACE_1} | ${INTERFACE_2}
+| | Vpp Add L2 Bridge Domain | ${DUT} | ${BID} | ${INTERFACE_1} | ${INTERFACE_2}