All HWSubConfigMixins must have an implementation of hw_deconfig()
method with at least super() call to let other mixins do their part
in collaborative inheritance. Some of the HWConfigMixins did not
have the method implemented.
In addition to the super().hw_deconfig() call:
* the CoalescingHWConfigMixin includes the restoring the original
adaptive coalescing setting
* the MTUHWConfigMixin includes restoring the original MTU value
* the ParallelStreamQDiscHWConfigMixin deletes the root qdisc to
restore the default qdisc of the previously configured devices
Signed-off-by: Jan Tluka <jtluka(a)redhat.com>
---
.../ENRT/ConfigMixins/CoalescingHWConfigMixin.py | 10 ++++++++++
lnst/Recipes/ENRT/ConfigMixins/MTUHWConfigMixin.py | 7 +++++++
.../ConfigMixins/ParallelStreamQDiscHWConfigMixin.py | 10 ++++++++++
3 files changed, 27 insertions(+)
diff --git a/lnst/Recipes/ENRT/ConfigMixins/CoalescingHWConfigMixin.py
b/lnst/Recipes/ENRT/ConfigMixins/CoalescingHWConfigMixin.py
index f3470234..0c259b13 100644
--- a/lnst/Recipes/ENRT/ConfigMixins/CoalescingHWConfigMixin.py
+++ b/lnst/Recipes/ENRT/ConfigMixins/CoalescingHWConfigMixin.py
@@ -42,6 +42,16 @@ class CoalescingHWConfigMixin(BaseHWConfigMixin):
param_value
)
+ def hw_deconfig(self, config):
+ for feature in ['adaptive_rx_coalescing',
'adaptive_tx_coalescing']:
+ self._deconfigure_dev_attribute(
+ config,
+ self.coalescing_hw_config_dev_list,
+ feature,
+ )
+
+ super().hw_deconfig(config)
+
def describe_hw_config(self, config):
desc = super().describe_hw_config(config)
for param in ["adaptive_rx_coalescing",
"adaptive_tx_coalescing"]:
diff --git a/lnst/Recipes/ENRT/ConfigMixins/MTUHWConfigMixin.py
b/lnst/Recipes/ENRT/ConfigMixins/MTUHWConfigMixin.py
index e24ec320..fff0c2e0 100644
--- a/lnst/Recipes/ENRT/ConfigMixins/MTUHWConfigMixin.py
+++ b/lnst/Recipes/ENRT/ConfigMixins/MTUHWConfigMixin.py
@@ -32,6 +32,13 @@ class MTUHWConfigMixin(BaseHWConfigMixin):
config, self.mtu_hw_config_dev_list, "mtu", mtu_value
)
+ def hw_deconfig(self, config):
+ self._deconfigure_dev_attribute(
+ config, self.mtu_hw_config_dev_list, "mtu"
+ )
+
+ super().hw_deconfig(config)
+
def describe_hw_config(self, config):
desc = super().describe_hw_config(config)
return desc + self._describe_dev_attribute(config, "mtu")
diff --git a/lnst/Recipes/ENRT/ConfigMixins/ParallelStreamQDiscHWConfigMixin.py
b/lnst/Recipes/ENRT/ConfigMixins/ParallelStreamQDiscHWConfigMixin.py
index 63b697be..7ec0d6b1 100644
--- a/lnst/Recipes/ENRT/ConfigMixins/ParallelStreamQDiscHWConfigMixin.py
+++ b/lnst/Recipes/ENRT/ConfigMixins/ParallelStreamQDiscHWConfigMixin.py
@@ -32,6 +32,16 @@ class ParallelStreamQDiscHWConfigMixin(BaseHWConfigMixin):
dev.host.run("tc qdisc replace dev %s root mq" % dev.name)
hw_config["parallel_stream_devs"].append(dev)
+ def hw_deconfig(self, config):
+ hw_config = config.hw_config
+ parallel_devs = hw_config.get("parallel_stream_devs", None)
+ if parallel_devs is not None:
+ for dev in parallel_devs:
+ dev.host.run("tc qdisc del dev %s root" % dev.name)
+ del hw_config["parallel_stream_devs"]
+
+ super().hw_deconfig(config)
+
def describe_hw_config(self, config):
desc = super().describe_hw_config(config)
--
2.21.1