BondRecipe

class lnst.Recipes.ENRT.BondRecipe.BondRecipe(**kwargs)

Bases: PerfReversibleFlowMixin, CommonHWSubConfigMixin, OffloadSubConfigMixin, BaremetalEnrtRecipe

This recipe implements Enrt testing for a network scenario that looks as follows

                            .--------.
           .----------------+        |
           |        .-------+ switch +-------.
           |        |       '--------'       |
     .-------------------.                   |
     |     | bond0  |    |                   |
     | .---'--. .---'--. |               .---'--.
.----|-| eth0 |-| eth1 |-|----.     .----| eth0 |----.
|    | '------' '------' |    |     |    '------'    |
|    '-------------------'    |     |                |
|                             |     |                |
|            host1            |     |      host2     |
'-----------------------------'     '----------------'

The recipe provides additional recipe parameters to configure the bonding device.

param bonding_mode:

(mandatory test parameter) the bonding mode to be configured on the bond0 device.

param miimon_value:

(mandatory test parameter) the miimon interval to be configured on the bond0 device.

All sub configurations are included via Mixin classes.

The actual test machinery is implemented in the BaseEnrtRecipe class.

test_wide_configuration()

Test wide configuration for this recipe involves creating a bonding device using the two matched physical devices as slaves on host1. The bonding mode and miimon interval is configured on the bonding device according to the recipe parameters. IPv4 and IPv6 addresses are added to the bonding device and to the matched ethernet device on host2.

host1.bond0 = 192.168.101.1/24 and fc00::1/64
host2.eth0 = 192.168.101.2/24 and fc00::2/64
generate_test_wide_description(config: EnrtConfiguration)

Test wide description is extended with the configured IP addresses, the configured bonding slave interfaces, bonding mode and the miimon interval.

generate_ping_endpoints(config)

The ping endpoints for this recipe are the configured bonding device on host1 and the matched ethernet device on host2.

Returned as:

[PingEndpoints(self.matched.host1.bond0, self.matched.host2.eth0)
generate_perf_endpoints(config: EnrtConfiguration) list[Collection[EndpointPair[IPEndpoint]]]

The perf endpoints for this recipe are the configured bonding device on host1 and the matched ethernet device on host2. The traffic egresses the bonding device.

host1.bond0
host2.eth0
property offload_nics

The offload_nics property value for this scenario is a list containing the configured bonding device on host1 and the matched ethernet device on host2.

host1.bond0
host2.eth0

For detailed explanation of this property see OffloadSubConfigMixin class and OffloadSubConfigMixin.offload_nics.

property mtu_hw_config_dev_list

The mtu_hw_config_dev_list property value for this scenario is a list containing the configured bonding device on host1 and the matched ethernet device on host2.

host1.bond0
host2.eth0

For detailed explanation of this property see MTUHWConfigMixin class and MTUHWConfigMixin.mtu_hw_config_dev_list.

property dev_interrupt_hw_config_dev_list

The dev_interrupt_hw_config_dev_list property value for this scenario is a list containing the matched physical devices used to create the bonding device on host1 and the matched ethernet device on host2.

host1.eth0, host1.eth1
host2.eth0

For detailed explanation of this property see DevInterruptHWConfigMixin class and DevInterruptHWConfigMixin.dev_interrupt_hw_config_dev_list.

property parallel_stream_qdisc_hw_config_dev_list

The parallel_stream_qdisc_hw_config_dev_list property value for this scenario is a list containing the matched physical devices used to create the bonding device on host1 and the matched ethernet device on host2.

host1.eth0, host.eth1
host2.eth0

For detailed explanation of this property see ParallelStreamQDiscHWConfigMixin class and ParallelStreamQDiscHWConfigMixin.parallel_stream_qdisc_hw_config_dev_list.

property pause_frames_dev_list

The pause_frames_dev_list property value for this scenario is a list containing the matched physical devices used to create the bonding device on host1 and the matched ethernet device on host2.

host1.eth0, host.eth1
host2.eth0

For detailed explanation of this property see PauseFramesHWConfigMixin and PauseFramesHWConfigMixin.pause_frames_dev_list.