-
Notifications
You must be signed in to change notification settings - Fork 156
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
CMIS 'ConfigSuccess" failure while changing default ApSel code for 800G DR8/FR8 modules #459
Conversation
Reset AppSel value for all lanes when setting non default app value
@AnoopKamath Please test
|
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.
@AnoopKamath Can you please fix the build failure?
Logs attached |
sonic-xcvrd/xcvrd/xcvrd.py
Outdated
""" | ||
api.set_application(0xff, 0, 0) | ||
api.set_datapath_deinit(0xff) | ||
if not api.scs_apply_datapath_init(0xff): |
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.
@AnoopKamath this is NOT required
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.
Hi @prgeor,
We should apply (apply is applyDPInit) on all the lanes to unused(appsel 0), if we are setting different app code to partial lanes. When 800G config is active (all lanes used), then applying partial config (only one port of 400G) is clearly “partial” and “invalid” which is exactly that the module is responding.
Host must either apply both 400G ports or apply NULL config (to clear all lanes) before applying one port of 400G. DPDeactivated state and set app will push config- appsel 0 to Stage Control Set and we need to apply DPInit to push it to Active Control Set so that all the lanes become unused. Just doing DPDeinit and setting app to 0 does not solve the problem.
rename APIs
@AnoopKamath can you use this API sonic-net/sonic-platform-common#471 |
@prgeor : UT looks good after I patched https://github.com/sonic-net/sonic-platform-common/pull/471/files. I will update the PR after you merger these changes. Thanks |
…0G DR8/FR8 modules (sonic-net#459) * Update xcvrd.py Reset AppSel value for all lanes when setting non default app value * update reset_app_code mock test * Update mock test for reset_app_code * Add new api to reset app code * Fix build failures and add return type * Rename apis * Address review comments rename APIs * remove decommission api from xcvrd * Update xcvrd.py * Update test_xcvrd.py * Update test_xcvrd.py * Update test_xcvrd.py * Update test_xcvrd.py * Add mock test to capture fail case * Address review comments
Cherry-pick PR to 202311: #490 |
…0G DR8/FR8 modules (#459) * Update xcvrd.py Reset AppSel value for all lanes when setting non default app value * update reset_app_code mock test * Update mock test for reset_app_code * Add new api to reset app code * Fix build failures and add return type * Rename apis * Address review comments rename APIs * remove decommission api from xcvrd * Update xcvrd.py * Update test_xcvrd.py * Update test_xcvrd.py * Update test_xcvrd.py * Update test_xcvrd.py * Add mock test to capture fail case * Address review comments
Description
CMIS 'ConfigSuccess" failure while changing default ApSel code for 800G DR8/FR8 modules
Issue seen with vendors:
Eoptolink
Finisar
Source-Photonics
Ex: If module supports 800G, 400G and 100G app code and has default app mode as 800G, an issue has arisen with the 2x400G target mode which is hitting ConfigRejectedPartailDataPath error and failing. (same as 8x100 App mode)
Motivation and Context
Extract from CMIS spec: - 6.2.4.3 Host Rules and Recommendations
The host can change the width of a Data Path only while in the DPDeactivated state, i.e. the host must always transition an existing Data Path to DPDeactivated before selecting an Application with a different lane count. Any lane that becomes unused must be marked as such (AppSel = 0000b) or it must be assigned to a new valid Data Path (remaining in DPDeactivated state until eventually used)
Reset AppSel value for all lanes when setting non default app value
How Has This Been Tested?
Tested with different vendors changing different modes:
subport_shutdown_ut.txt
Additional Information (Optional)