-| | ... | \| Configure IPv6 forwarding in circular topology \
-| | ... | \| 2001:1::2 \| 2001:2::2 \| 2001:1::1 \| 2003:3::1 \| 2003:3::2 \
-| | ... | \| 2001:2::1 \|
-| | ... | \| Configure IPv6 forwarding in circular topology \
-| | ... | \| 2001:1::2 \| 2001:2::2 \| 2001:1::1 \| 2003:3::1 \| 2003:3::2 \
-| | ... | \| 2001:2::1 \| remote_host1_ip4=3ffe:5f::1 \
-| | ... | \| remote_host2_ip4=3ffe:5f::2 \| remote_host_ip4_prefix=128 \|
-| | ...
-| | [Arguments] | ${tg_if1_ip6} | ${tg_if2_ip6} | ${dut1_if1_ip6}
-| | ... | ${dut1_if2_ip6} | ${dut2_if1_ip6} | ${dut2_if2_ip6}
-| | ... | ${remote_host1_ip6}=${NONE} | ${remote_host2_ip6}=${NONE}
-| | ... | ${remote_host_ip6_prefix}=${NONE}
-| | ...
-| | ${dut_tg_ip6_prefix}= | Set Variable | 64
-| | ${dut_link_ip6_prefix}= | Set Variable | 96
-| | ...
-| | VPP Add IP Neighbor
-| | ... | ${dut1_node} | ${dut1_to_tg} | ${tg_if1_ip6} | ${tg_to_dut1_mac}
-| | VPP Add IP Neighbor
-| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut2_if1_ip6} | ${dut2_to_dut1_mac}
-| | VPP Add IP Neighbor
-| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut1_if2_ip6} | ${dut1_to_dut2_mac}
-| | VPP Add IP Neighbor
-| | ... | ${dut2_node} | ${dut2_to_tg} | ${tg_if2_ip6} | ${tg_to_dut2_mac}
-| | ...
-| | VPP Interface Set IP Address
-| | ... | ${dut1_node} | ${dut1_to_tg} | ${dut1_if1_ip6} | ${dut_tg_ip6_prefix}
-| | VPP Interface Set IP Address | ${dut1_node}
-| | ... | ${dut1_to_dut2} | ${dut1_if2_ip6} | ${dut_link_ip6_prefix}
-| | VPP Interface Set IP Address | ${dut2_node}
-| | ... | ${dut2_to_dut1} | ${dut2_if1_ip6} | ${dut_link_ip6_prefix}
-| | VPP Interface Set IP Address
-| | ... | ${dut2_node} | ${dut2_to_tg} | ${dut2_if2_ip6} | ${dut_tg_ip6_prefix}
-| | ...
-| | Vpp Route Add | ${dut1_node} | ${tg_if2_ip6} | ${dut_tg_ip6_prefix}
-| | ... | gateway=${dut2_if1_ip6} | interface=${dut1_to_dut2}
-| | Vpp Route Add | ${dut2_node} | ${tg_if1_ip6} | ${dut_tg_ip6_prefix}
-| | ... | gateway=${dut1_if2_ip6} | interface=${dut2_to_dut1}
-| | ...
-| | Run Keyword Unless | '${remote_host1_ip6}' == '${NONE}'
-| | ... | Vpp Route Add | ${dut1_node} | ${remote_host1_ip6}
-| | ... | ${remote_host_ip6_prefix} | gateway=${tg_if1_ip6}
-| | ... | interface=${dut1_to_tg}
-| | Run Keyword Unless | '${remote_host2_ip6}' == '${NONE}'
-| | ... | Vpp Route Add | ${dut1_node} | ${remote_host2_ip6}
-| | ... | ${remote_host_ip6_prefix} | gateway=${dut2_if1_ip6}
-| | ... | interface=${dut1_to_dut2}
-| | Run Keyword Unless | '${remote_host1_ip6}' == '${NONE}'
-| | ... | Vpp Route Add | ${dut2_node} | ${remote_host1_ip6}
-| | ... | ${remote_host_ip6_prefix} | gateway=${dut1_if2_ip6}
-| | ... | interface=${dut2_to_dut1}
-| | Run Keyword Unless | '${remote_host2_ip6}' == '${NONE}'
-| | ... | Vpp Route Add | ${dut2_node} | ${remote_host2_ip6}
-| | ... | ${remote_host_ip6_prefix} | gateway=${tg_if2_ip6}
-| | ... | interface=${dut2_to_tg}
+| | ... | \| Initialize IPv6 forwarding with VLAN dot1q sub-interfaces\
+| | ... | in circular topology \| 2001:1::0 \| 2001:2::0 \| 10 \| pop-1 \|
+| | ...
+| | [Arguments] | ${tg_if1_net} | ${tg_if2_net} | ${subid} | ${tag_rewrite}
+| | ...
+| | ${dut2_status} | ${value}= | Run Keyword And Ignore Error
+| | ... | Variable Should Exist | ${dut2}
+| | ...
+| | Set interfaces in path up
+| | ...
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Initialize VLAN dot1q sub-interfaces in circular topology
+| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid}
+| | ... | ELSE | Initialize VLAN dot1q sub-interfaces in circular topology
+| | ... | ${dut1} | ${dut1_if2} | SUB_ID=${subid}
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Configure L2 tag rewrite method on interfaces | ${dut1}
+| | ... | ${subif_index_1} | ${dut2} | ${subif_index_2} | ${tag_rewrite}
+| | ... | ELSE | Configure L2 tag rewrite method on interfaces
+| | ... | ${dut1} | ${subif_index_1} | TAG_REWRITE_METHOD=${tag_rewrite}
+| | ...
+| | ${prefix}= | Set Variable | 64
+| | ${host_prefix}= | Set Variable | 64
+| | VPP Add IP Neighbor | ${dut1} | ${dut1_if1} | 2002:1::1 | ${tg_if1_mac}
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | VPP Add Ip Neighbor
+| | ... | ${dut1} | ${subif_index_1} | 2002:2::2 | ${dut2_if1_mac}
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | VPP Add Ip Neighbor
+| | ... | ${dut2} | ${subif_index_2} | 2002:2::1 | ${dut1_if2_mac}
+| | ${dut}= | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Set Variable | ${dut2}
+| | ... | ELSE | Set Variable | ${dut1}
+| | ${dut_if2}= | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Set Variable | ${dut2_if2}
+| | ... | ELSE | Set Variable | ${subif_index_1}
+| | VPP Add IP Neighbor | ${dut} | ${dut_if2} | 2002:3::1 | ${tg_if2_mac}
+| | VPP Interface Set IP Address | ${dut1} | ${dut1_if1} | 2002:1::2 | ${prefix}
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | VPP Interface Set IP Address | ${dut1} | ${subif_index_1} | 2002:2::1
+| | ... | ${prefix}
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | VPP Interface Set IP Address | ${dut2} | ${subif_index_2} | 2002:2::2
+| | ... | ${prefix}
+| | VPP Interface Set IP Address | ${dut} | ${dut_if2} | 2002:3::2 | ${prefix}
+| | Vpp All Ra Suppress Link Layer | ${nodes}
+| | Vpp Route Add | ${dut1} | ${tg_if1_net} | ${host_prefix}
+| | ... | gateway=2002:1::1 | interface=${dut1_if1}
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Vpp Route Add | ${dut1} | ${tg_if2_net} | ${host_prefix}
+| | ... | gateway=2002:2::2 | interface=${subif_index_1}
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Vpp Route Add | ${dut2} | ${tg_if1_net} | ${host_prefix}
+| | ... | gateway=2002:2::1 | interface=${subif_index_2}
+| | Vpp Route Add | ${dut} | ${tg_if2_net} | ${host_prefix}
+| | ... | gateway=2002:3::1 | interface=${dut_if2}
+