from resources.libraries.python.DUTSetup import DUTSetup
from resources.libraries.python.topology import NodeType, Topology
from resources.libraries.python.VPPUtil import VPPUtil
+from resources.libraries.python.ssh import exec_cmd_no_error
class QATUtil:
# Bind to kernel driver.
DUTSetup.pci_driver_bind(node, device["pci_address"], device["driver"])
+ cmd = f"adf_ctl status | grep {device['pci_address']} | "
+ cmd += "awk '{print $1}'"
+ stdout, _ = exec_cmd_no_error(
+ node, cmd, sudo=True, message="Failed to check crypto device!"
+ )
+ if stdout.strip():
+ qat_dev = stdout.split("_")[-1]
+ conf_file = f"/etc/{device['driver']}_{qat_dev.strip()}.conf"
+ exec_cmd_no_error(
+ node, f"adf_ctl --config {conf_file} {stdout.strip()} restart",
+ sudo=True, message="Failed to restart crypto device!"
+ )
+ else:
+ raise ValueError("Crypto device error")
+
# Initialize QAT VFs.
if int(device["numvfs"]) > 0:
+ path = f"drivers/{device['driver']}"
DUTSetup.set_sriov_numvfs(
- node, device["pci_address"], type="drivers/4xxx",
+ node, device["pci_address"], path=path,
numvfs=device["numvfs"]
)
- for cvf in range(int(device["numvfs"])):
- DUTSetup.pci_vf_driver_unbind(
- node, device["pci_address"], cvf
- )
- DUTSetup.pci_vf_driver_bind(
- node, device["pci_address"], cvf, "vfio-pci"
- )
+ if device["driver"] not in ["c4xxx"]:
+ for cvf in range(int(device["numvfs"])):
+ DUTSetup.pci_vf_driver_unbind(
+ node, device["pci_address"], cvf
+ )
+ DUTSetup.pci_vf_driver_bind(
+ node, device["pci_address"], cvf, "vfio-pci"
+ )