FIX: Layer dot1q logic
[csit.git] / resources / libraries / robot / shared / interfaces.robot
index 5b6ebc7..d24b2fb 100644 (file)
 | | [Return] | ${vhost_dump}
 | | ...
 | | ${vhost_dump}= | Vhost User Dump | ${dut_node}
+
+| Initialize layer interface on node
+| | [Documentation]
+| | ... | Baseline interfaces variables to be created.
+| | ...
+| | ... | *Arguments:*
+| | ... | - dut - DUT node. Type: string
+| | ... | - count - Number of baseline interface variables. Type: integer
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Initialize layer interface on node \| DUT1 \| 1 \|
+| | ...
+| | [Arguments] | ${dut} | ${count}=${1}
+| | ...
+| | ${dut_str}= | Convert To Lowercase | ${dut}
+| | :FOR | ${id} | IN RANGE | 1 | ${count} + 1
+| | | Set Test Variable | ${${dut_str}_if_${id}_1} | ${${dut_str}_if1}
+| | | Set Test Variable | ${${dut_str}_if_${id}_2} | ${${dut_str}_if2}
+
+| Initialize layer interface
+| | [Documentation]
+| | ... | Physical interfaces variables to be created on all DUTs.
+| | ...
+| | ... | *Arguments:*
+| | ... | - count - Number of untagged interfaces variables. Type: integer
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Initialize layer interface \| 1 \|
+| | ...
+| | [Arguments] | ${count}=${1}
+| | ...
+| | :FOR | ${dut} | IN | @{duts}
+| | | Initialize layer interface on node | ${dut} | count=${count}
+| | Set Test Variable | ${prev_layer} | if
+| | Set interfaces in path up
+
+| Initialize layer bonding on node
+| | [Documentation]
+| | ... | Bonded interface and variables to be created on across east and
+| | ... | west DUT's node interfaces.
+| | ...
+| | ... | *Arguments:*
+| | ... | - dut - DUT node. Type: string
+| | ... | - bond_mode - Link bonding mode. Type: string
+| | ... | - lb_mode - Load balance mode. Type: string
+| | ... | - count - Number of bond interface variables. Type: integer
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Initialize layer bonding on node \| DUT1 \| xor \| l34 \| 1 \|
+| | ...
+| | [Arguments] | ${dut} | ${bond_mode}=xor | ${lb_mode}=l34 | ${count}=${1}
+| | ...
+| | ${dut_str}= | Convert To Lowercase | ${dut}
+| | ${if_index}= | VPP Create Bond Interface
+| | ... | ${nodes['${dut}']} | ${bond_mode} | load_balance=${lb_mode}
+| | ... | mac=00:00:00:01:01:01
+| | Set Interface State | ${nodes['${dut}']} | ${if_index} | up
+| | VPP Enslave Physical Interface
+| | ... | ${nodes['${dut}']} | ${${dut_str}_${prev_layer}_1_1} | ${if_index}
+| | VPP Enslave Physical Interface
+| | ... | ${nodes['${dut}']} | ${${dut_str}_${prev_layer}_1_2} | ${if_index}
+| | :FOR | ${id} | IN RANGE | 1 | ${count} + 1
+| | | Set Test Variable | ${${dut_str}_bond_${id}_1} | ${if_index}
+| | | Set Test Variable | ${${dut_str}_bond_${id}_2} | ${if_index}
+
+| Initialize layer bonding
+| | [Documentation]
+| | ... | Bonded interfaces and variables to be created on all DUT's interfaces.
+| | ...
+| | ... | *Arguments:*
+| | ... | - bond_mode - Link bonding mode. Type: string
+| | ... | - lb_mode - Load balance mode. Type: string
+| | ... | - count - Number of bond interface variables. Type: integer
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Initialize layer bonding \| xor \| l34 \| 1 \|
+| | ...
+| | [Arguments] | ${bond_mode}=xor | ${lb_mode}=l34 | ${count}=${1}
+| | ...
+| | :FOR | ${dut} | IN | @{duts}
+| | | Initialize layer bonding on node
+| | | ... | ${dut} | bond_mode=${bond_mode} | lb_mode=${lb_mode}
+| | | ... | count=${count}
+| | Set Test Variable | ${prev_layer} | bond
+
+| Initialize layer dot1q on node
+| | [Documentation]
+| | ... | Dot1q interfaces and variables to be created on all DUT's node
+| | ... | interfaces.
+| | ...
+| | ... | *Arguments:*
+| | ... | - dut - DUT node. Type: string
+| | ... | - count - Number of tagged interfaces. Type: integer
+| | ... | - create - Whether to create vlan subinterface for each chain.
+| | ... |     Type: boolean
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Initialize layer dot1q on node \| DUT1 \| 1 \| True \|
+| | ...
+| | [Arguments] | ${dut} | ${count}=${1} | ${create}=${True}
+| | ...
+| | ${dut_str}= | Convert To Lowercase | ${dut}
+| | :FOR | ${id} | IN RANGE | 1 | ${count} + 1
+| | | ${if1_vlan}= | Evaluate | ${100} + ${id} - ${1}
+| | | ${if2_vlan}= | Evaluate | ${200} + ${id} - ${1}
+| | | ${if1_name} | ${if1_index}= | Run Keyword If
+| | | ... | ${create} or ${id} == ${1}
+| | | ... | Create Vlan Subinterface
+| | | ... | ${nodes['${dut}']} | ${${dut_str}_${prev_layer}_${id}_1}
+| | | ... | ${if1_vlan}
+| | | ${if2_name} | ${if2_index}= | Run Keyword If
+| | | ... | ${create} or ${id} == ${1}
+| | | ... | Create Vlan Subinterface
+| | | ... | ${nodes['${dut}']} | ${${dut_str}_${prev_layer}_${id}_2}
+| | | ... | ${if2_vlan}
+| | | Run Keyword If | ${create} or ${id} == ${1}
+| | | ... | Set Interface State | ${nodes['${dut}']} | ${if1_index} | up
+| | | Run Keyword If | ${create} or ${id} == ${1}
+| | | ... | Set Interface State | ${nodes['${dut}']} | ${if2_index} | up
+| | | Run Keyword If | ${create} or ${id} == ${1}
+| | | ... | Configure L2 tag rewrite method on interfaces
+| | | ... | ${nodes['${dut}']} | ${if1_index} | TAG_REWRITE_METHOD=pop-1
+| | | Run Keyword If | ${create} or ${id} == ${1}
+| | | ... | Configure L2 tag rewrite method on interfaces
+| | | ... | ${nodes['${dut}']} | ${if2_index} | TAG_REWRITE_METHOD=pop-1
+| | | ${if1_index}= | Set Variable If | '${if1_index}' == '${NONE}'
+| | | ... | ${${dut_str}_dot1q_1_1} | ${if1_index}
+| | | ${if2_index}= | Set Variable If | '${if2_index}' == '${NONE}'
+| | | ... | ${${dut_str}_dot1q_1_2} | ${if2_index}
+| | | Set Test Variable | ${${dut_str}_dot1q_${id}_1} | ${if1_index}
+| | | Set Test Variable | ${${dut_str}_dot1q_${id}_2} | ${if2_index}
+
+| Initialize layer dot1q
+| | [Documentation]
+| | ... | Dot1q interfaces and variables to be created on all DUT's interfaces.
+| | ...
+| | ... | *Arguments:*
+| | ... | - count - Number of tagged interfaces. Type: integer
+| | ... | - create - Whether to create vlan for each chain. Type: boolean
+| | ...
+| | ... | \| Initialize layer dot1q \| 1 \| True \|
+| | ...
+| | [Arguments] | ${count}=${1} | ${create}=${True}
+| | ...
+| | :FOR | ${dut} | IN | @{duts}
+| | | Initialize layer dot1q on node | ${dut} | count=${count}
+| | | ... | create=${create}
+| | Set Test Variable | ${prev_layer} | dot1q
+
+| Initialize layer ip4vxlan on node
+| | [Documentation]
+| | ... | Setup VXLANoIPv4 between TG and DUTs and DUT to DUT by connecting
+| | ... | physical and vxlan interfaces on each DUT. All interfaces are brought
+| | ... | up. IPv4 addresses with prefix /24 are configured on interfaces
+| | ... | towards TG. VXLAN sub-interfaces has same IPv4 address as interfaces.
+| | ...
+| | ... | *Arguments:*
+| | ... | - dut - DUT node. Type: string
+| | ... | - count - Number of vxlan interfaces. Type: integer
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Initialize layer ip4vxlan on node \| DUT1 \| 1 \|
+| | ...
+| | [Arguments] | ${dut} | ${count}=${1}
+| | ...
+| | ${dut_str}= | Convert To Lowercase | ${dut}
+| | Configure IP addresses on interfaces
+| | ... | ${nodes['${dut}']} | ${${dut_str}_${prev_layer}_1_1}
+| | ... | 172.16.0.1 | 24
+| | Configure IP addresses on interfaces
+| | ... | ${nodes['${dut}']} | ${${dut_str}_${prev_layer}_1_2}
+| | ... | 172.26.0.1 | 24
+| | :FOR | ${id} | IN RANGE | 1 | ${count} + 1
+| | | ${subnet}= | Evaluate | ${id} - 1
+| | | ${vni}= | Evaluate | ${id} - 1
+| | | ${ip4vxlan_1}= | Create VXLAN interface
+| | | ... | ${nodes['${dut}']} | ${vni} | 172.16.0.1 | 172.17.${subnet}.2
+| | | ${ip4vxlan_2}= | Create VXLAN interface
+| | | ... | ${nodes['${dut}']} | ${vni} | 172.26.0.1 | 172.27.${subnet}.2
+| | | ${prev_mac}= | Set Variable If | '${dut}' == 'DUT1'
+| | | ... | ${tg_if1_mac} | ${dut1_if2_mac}
+| | | ${next_mac}= | Set Variable If | '${dut}' == 'DUT1' and ${duts_count} == 2
+| | | ... | ${dut2_if1_mac} | ${tg_if2_mac}
+| | | VPP Add IP Neighbor
+| | | ... | ${nodes['${dut}']} | ${${dut_str}_${prev_layer}_${id}_1}
+| | | ... | 172.16.${subnet}.2 | ${prev_mac}
+| | | VPP Add IP Neighbor
+| | | ... | ${nodes['${dut}']} | ${${dut_str}_${prev_layer}_${id}_2}
+| | | ... | 172.26.${subnet}.2 | ${next_mac}
+| | | VPP Route Add
+| | | ... | ${nodes['${dut}']} | 172.17.${subnet}.0 | 24
+| | | ... | gateway=172.16.${subnet}.2
+| | | ... | interface=${${dut_str}_${prev_layer}_${id}_1}
+| | | VPP Route Add
+| | | ... | ${nodes['${dut}']} | 172.27.${subnet}.0 | 24
+| | | ... | gateway=172.26.${subnet}.2
+| | | ... | interface=${${dut_str}_${prev_layer}_${id}_2}
+| | | Set VXLAN Bypass
+| | | ... | ${nodes['${dut}']} | ${${dut_str}_${prev_layer}_${id}_1}
+| | | Set VXLAN Bypass
+| | | ... | ${nodes['${dut}']} | ${${dut_str}_${prev_layer}_${id}_2}
+| | | Set Test Variable
+| | | ... | ${${dut_str}_ip4vxlan_${id}_1} | ${ip4vxlan_1}
+| | | Set Test Variable
+| | | ... | ${${dut_str}_ip4vxlan_${id}_2} | ${ip4vxlan_2}
+
+| Initialize layer ip4vxlan
+| | [Documentation]
+| | ... | VXLAN interfaces and variables to be created on all DUT's interfaces.
+| | ...
+| | ... | *Arguments:*
+| | ... | - count - Number of vxlan interfaces. Type: integer
+| | ...
+| | ... | \| Initialize layer ip4vxlan \| 1 \|
+| | ...
+| | [Arguments] | ${count}=${1}
+| | ...
+| | :FOR | ${dut} | IN | @{duts}
+| | | Initialize layer ip4vxlan on node | ${dut} | count=${count}
+| | Set Test Variable | ${prev_layer} | ip4vxlan