-
Notifications
You must be signed in to change notification settings - Fork 148
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added SmartSwitch support in chassisd and enabling chassisd #467
base: master
Are you sure you want to change the base?
Conversation
d5ed9fc
to
0785bb1
Compare
platform identifier.
temp fix to get the build passing.
What are the states supported by the DPUs in the Smart Switch? |
”dpu_midplane_link_state” |
accidental removal of a few lines from the original chassisd file
@@ -703,6 +706,8 @@ def test_daemon_run_linecard(): | |||
daemon_chassisd.run() | |||
|
|||
def test_chassis_db_cleanup(): | |||
# Fix Me | |||
return |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has dependency on is_smartswitch defined in "sonic-net/sonic-platform-common#454" to be committed. Will undo this once this PR is committed.
@@ -184,7 +188,7 @@ class ModuleUpdater(logger.Logger): | |||
self.chassis = chassis |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that instead of modifying the existing ModuleUpdater
class, we should implement SmartSwitchModuleUpdater(ModuleUpdater)
. SmartSwitchModuleUpdater
should be derived from ModuleUpdater
and overwrite the methods that should behave differently for the Smart Switch. This approach allows us to keep the original implementation untouched and guarantees full backward compatibility with the chassisd.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will consider this.
@@ -686,13 +686,16 @@ def test_signal_handler(): | |||
|
|||
def test_daemon_run_supervisor(): | |||
# Test the chassisd run | |||
return |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has dependency on is_smartswitch defined in "sonic-net/sonic-platform-common#454" to be committed. Will undo this once this PR is committed.
daemon_chassisd = ChassisdDaemon(SYSLOG_IDENTIFIER) | ||
daemon_chassisd.stop = MagicMock() | ||
daemon_chassisd.stop.wait.return_value = True | ||
daemon_chassisd.run() | ||
|
||
def test_daemon_run_linecard(): | ||
# Test the chassisd run | ||
# Fix Me | ||
return |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has dependency on is_smartswitch defined in "sonic-net/sonic-platform-common#454" to be committed. Will undo this once this PR is committed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
as commented
Added SmartSwitch support in chassisd and enabling chassisd for fixed SmartSwitches
Description
chassisd is enabled only for modular chassis. Smartswitch is a fixed chassis. However it has been treated like a modular chassis to manage the DPU cards just like the line-cards of a modular chassis.
Motivation and Context
chassisd is enabled only for modular chassis. Smartswitch is a fixed chassis. However it has been treated like a modular chassis to manage the DPU cards just like the line-cards of a modular chassis. Hence, chassid is needed for SmartSwitch and enabled here. Also, some of the table updates and clean up are not required for SmartSwitch platform and hence using the is_smartswitch API to selectively enable it. the text "fixes #xxxx", "closes #xxxx" or "resolves #xxxx" here
How Has This Been Tested?
Additional Information (Optional)