From ea61ab84088d0b97fe7f7641adb43f82faacc00c Mon Sep 17 00:00:00 2001 From: Vasundhara Volam Date: Tue, 24 Sep 2024 19:21:00 +0000 Subject: [PATCH] Modify APIs and add new APIs for supporting reboot on a SmartSwitch --- sonic_platform_base/module_base.py | 23 ++++++++++++++++++++++- tests/module_base_test.py | 2 ++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/sonic_platform_base/module_base.py b/sonic_platform_base/module_base.py index 0067f116f..906a9a6e1 100644 --- a/sonic_platform_base/module_base.py +++ b/sonic_platform_base/module_base.py @@ -50,6 +50,8 @@ class ModuleBase(device_base.DeviceBase): MODULE_REBOOT_CPU_COMPLEX = "CPU" # Module reboot type to reboot FPGA complex MODULE_REBOOT_FPGA_COMPLEX = "FPGA" + # Module reboot type to reboot DPU + MODULE_REBOOT_DPU = "DPU" def __init__(self): # List of ComponentBase-derived objects representing all components @@ -166,7 +168,9 @@ def reboot(self, reboot_type): Args: reboot_type: A string, the type of reboot requested from one of the predefined reboot types: MODULE_REBOOT_DEFAULT, MODULE_REBOOT_CPU_COMPLEX, - or MODULE_REBOOT_FPGA_COMPLEX + MODULE_REBOOT_FPGA_COMPLEX or MODULE_REBOOT_DPU + + MODULE_REBOOT_DPU is only applicable for smartswitch chassis. Returns: bool: True if the request has been issued successfully, False if not @@ -258,6 +262,23 @@ def get_state_info(self): """ raise NotImplementedError + def get_dpu_bus_info(self, dpu_name): + """ + Retrieves the DPU bus information for the specified by "dpu_name" on a SmartSwitch. + + Returns: + Returns the PCI bus information in BDF format like "[DDDD:]BB:SS:F" + """ + raise NotImplementedError + + def pci_detach_dpu(self, dpu_name): + """ + Detaches the DPU PCI device specified by "dpu_name" on a SmartSwitch. + + Returns: True once the PCI is successfully detached. + """ + raise NotImplementedError + ############################################## # Component methods ############################################## diff --git a/tests/module_base_test.py b/tests/module_base_test.py index b4b9519e3..88df1e3d6 100644 --- a/tests/module_base_test.py +++ b/tests/module_base_test.py @@ -8,6 +8,8 @@ def test_module_base(self): [module.get_dpu_id], [module.get_reboot_cause], [module.get_state_info], + [module.get_dpu_bus_info], + [module.pci_detach_dpu], ] for method in not_implemented_methods: