Skip to content

Add CMIS FSM for DP decomission#608

Merged
prgeor merged 32 commits into
sonic-net:masterfrom
AnoopKamath:master
Jul 24, 2025
Merged

Add CMIS FSM for DP decomission#608
prgeor merged 32 commits into
sonic-net:masterfrom
AnoopKamath:master

Conversation

@AnoopKamath

@AnoopKamath AnoopKamath commented Apr 24, 2025

Copy link
Copy Markdown
Contributor

Description

Fix for : sonic-net/sonic-buildimage#21603

Add a logic to decommission data path by setting Appl Sel 0 using the existing CMIS SM.
When there are multiple subports/logical ports under the same physical port:

  1. For lead logical port of decommission (whoever is the first one calling is_decomm_required()==True), it will conduct the actual decommission state machine.
  2. For non-lead logical port(s), it will wait until the decommission state machine is done by the lead logical port.
    The non-lead port will remain in the CMIS inserted state until the lead port completes the decommissioning or it transitions to Failed state.

Motivation and Context

How Has This Been Tested?

Decommission lanes of the port which doesn't has required AppCode set to default

2025 Apr 30 23:16:01.293831 sonic NOTICE pmon#xcvrd[27]: CMIS: Ethernet268: Decommissioned Successfully physical port [33]
2025 Apr 30 23:16:01.293899 sonic INFO pmon#supervisord: xcvrd NOTICE:xcvrd:CMIS: Ethernet268: Decommissioned Successfully physical port [33]
2025 Apr 30 23:16:01.451007 sonic NOTICE pmon#xcvrd[27]: CMIS: Ethernet280: Decommissioned Successfully physical port [35]
2025 Apr 30 23:16:01.451088 sonic INFO pmon#supervisord: xcvrd NOTICE:xcvrd:CMIS: Ethernet280: Decommissioned Successfully physical port [35]
2025 Apr 30 23:16:01.492465 sonic NOTICE pmon#xcvrd[27]: CMIS: Ethernet244: Decommissioned Successfully physical port [30]
2025 Apr 30 23:16:01.492547 sonic INFO pmon#supervisord: xcvrd NOTICE:xcvrd:CMIS: Ethernet244: Decommissioned Successfully physical port [30]
2025 Apr 30 23:16:01.563489 sonic NOTICE pmon#xcvrd[27]: CMIS: Ethernet264: Decommissioned Successfully physical port [33]
2025 Apr 30 23:16:01.563636 sonic INFO pmon#supervisord: xcvrd NOTICE:xcvrd:CMIS: Ethernet264: Decommissioned Successfully physical port [33]
2025 Apr 30 23:16:01.660994 sonic NOTICE pmon#xcvrd[27]: CMIS: Ethernet164: Decommissioned Successfully physical port [20]
2025 Apr 30 23:16:01.661135 sonic INFO pmon#supervisord: xcvrd NOTICE:xcvrd:CMIS: Ethernet164: Decommissioned Successfully physical port [20]
2025 Apr 30 23:16:15.646395 sonic NOTICE pmon#xcvrd[27]: CMIS: Ethernet284: Decommissioned Successfully physical port [35]
2025 Apr 30 23:16:15.646519 sonic INFO pmon#supervisord: xcvrd NOTICE:xcvrd:CMIS: Ethernet284: Decommissioned Successfully physical port [35]
2025 Apr 30 23:16:15.847901 sonic NOTICE pmon#xcvrd[27]: CMIS: Ethernet324: Decommissioned Successfully physical port [40]
2025 Apr 30 23:16:15.848038 sonic INFO pmon#supervisord: xcvrd NOTICE:xcvrd:CMIS: Ethernet324: Decommissioned Successfully physical port [40]
2025 Apr 30 23:16:16.022971 sonic NOTICE pmon#xcvrd[27]: CMIS: Ethernet240: Decommissioned Successfully physical port [30]
2025 Apr 30 23:16:16.023098 sonic INFO pmon#supervisord: xcvrd NOTICE:xcvrd:CMIS: Ethernet240: Decommissioned Successfully physical port [30]
2025 Apr 30 23:16:16.331959 sonic NOTICE pmon#xcvrd[27]: CMIS: Ethernet160: Decommissioned Successfully physical port [20]
2025 Apr 30 23:16:16.332114 sonic INFO pmon#supervisord: xcvrd NOTICE:xcvrd:CMIS: Ethernet160: Decommissioned Successfully physical port [20]
2025 Apr 30 23:16:16.403968 sonic NOTICE pmon#xcvrd[27]: CMIS: Ethernet320: Decommissioned Successfully physical port [40]
2025 Apr 30 23:16:16.404111 sonic INFO pmon#supervisord: xcvrd NOTICE:xcvrd:CMIS: Ethernet320: Decommissioned Successfully physical port [40]
2025 Apr 30 23:16:36.476933 sonic NOTICE pmon#xcvrd[27]: CMIS: Ethernet268: Decommissioned Successfully physical port [33]
2025 Apr 30 23:16:36.476933 sonic INFO pmon#supervisord: xcvrd NOTICE:xcvrd:CMIS: Ethernet268: Decommissioned Successfully physical port [33]

Additional Information (Optional)

@mssonicbld

Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld

Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld

Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@AnoopKamath AnoopKamath marked this pull request as ready for review April 30, 2025 08:28
@mssonicbld

Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld

Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld

Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld

Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld

Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld

Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

Comment thread sonic-xcvrd/xcvrd/xcvrd.py Outdated
# Set Explicit control bit to apply Custom Host SI settings
ec = 1
# Skip rest if it's in decommission state machine
if not self.is_decomm_lead_lport(lport):

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AnoopKamath Fact that the non lead port wont reach here , is it more appropriate to use is_decomm_pending()?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm ok with either is_decomm_pending() or is_decomm_lead_lport(), they do the same job here,
updated to is_decomm_pending()

Comment thread sonic-xcvrd/xcvrd/xcvrd.py Outdated

# Set the decommission pending flag to False and invoke CMIS reinit
# so that normal CMIS initialization can begin
if self.is_decomm_lead_lport(lport):

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AnoopKamath same comment. use is_decomm_pending() ?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated to is_decomm_pending

Comment thread sonic-xcvrd/xcvrd/xcvrd.py
@Keshavg-marvell

Copy link
Copy Markdown
Contributor

Today, We tried these changes with 202505 with 2x400G static breakout (800G => 2x400G) and hit the issue where lead port is getting stuck in CMIS_STATE_DP_INIT state, due to not getting ConfigSuccess, leading to timeout and eventually moving to FAILED state. While non-lead port gets stuck at INSERTED waiting for lead port to finish and eventually move to FAILED state.

Though same port works fine without these changes.

Lead port Logs:

2025 Jul 17 11:45:46.500068 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=DP_INIT(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=0
2025 Jul 17 11:45:46.818273 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=DP_INIT(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=0
2025 Jul 17 11:45:46.925353 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=DP_INIT(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=0
2025 Jul 17 11:45:46.927710 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: timeout for 'ConfigSuccess'
..
..
2025 Jul 17 11:46:22.708723 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=DP_INIT(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=3
2025 Jul 17 11:46:22.711241 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: timeout for 'ConfigSuccess'
2025 Jul 17 11:46:23.797216 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=INSERTED(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=4
2025 Jul 17 11:46:23.797216 sonic ERR pmon#xcvrd[29]: CMIS: Ethernet292: FAILED

Non-lead Port Logs:

2025 Jul 17 11:45:35.492173 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting appl=8
2025 Jul 17 11:45:35.492224 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting host_lanemask=0xf
2025 Jul 17 11:45:35.492281 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting media_lanemask=0xf
2025 Jul 17 11:45:35.532610 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: DECOMMISSION: decommission has already started for this physical port, waiting for completion
2025 Jul 17 11:45:36.350704 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: 400G, lanemask=0xf, CMIS state=INSERTED(decommission), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 8 host_lane_count 4 retries=0
2025 Jul 17 11:45:36.350789 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting appl=8
2025 Jul 17 11:45:36.350849 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting host_lanemask=0xf
2025 Jul 17 11:45:36.350925 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting media_lanemask=0xf
2025 Jul 17 11:45:36.420864 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: DECOMMISSION: decommission has already started for this physical port, waiting for completion
…
..
2025 Jul 17 11:46:22.757578 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting appl=8
2025 Jul 17 11:46:22.757694 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting host_lanemask=0xf
2025 Jul 17 11:46:22.757839 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting media_lanemask=0xf
2025 Jul 17 11:46:22.775323 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: DECOMMISSION: decommission has already started for this physical port, waiting for completion
2025 Jul 17 11:46:23.843289 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: 400G, lanemask=0xf, CMIS state=INSERTED(decommission), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 8 host_lane_count 4 retries=0
2025 Jul 17 11:46:23.843412 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting appl=8
2025 Jul 17 11:46:23.843524 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting host_lanemask=0xf
2025 Jul 17 11:46:23.843643 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting media_lanemask=0xf
2025 Jul 17 11:46:23.861499 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: DECOMMISSION: decommission has already started for this physical port, failed

@AnoopKamath

Copy link
Copy Markdown
Contributor Author

Today, We tried these changes with 202505 with 2x400G static breakout (800G => 2x400G) and hit the issue where lead port is getting stuck in CMIS_STATE_DP_INIT state, due to not getting ConfigSuccess, leading to timeout and eventually moving to FAILED state. While non-lead port gets stuck at INSERTED waiting for lead port to finish and eventually move to FAILED state.

Though same port works fine without these changes.

Lead port Logs:

2025 Jul 17 11:45:46.500068 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=DP_INIT(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=0
2025 Jul 17 11:45:46.818273 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=DP_INIT(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=0
2025 Jul 17 11:45:46.925353 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=DP_INIT(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=0
2025 Jul 17 11:45:46.927710 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: timeout for 'ConfigSuccess'
..
..
2025 Jul 17 11:46:22.708723 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=DP_INIT(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=3
2025 Jul 17 11:46:22.711241 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: timeout for 'ConfigSuccess'
2025 Jul 17 11:46:23.797216 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=INSERTED(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=4
2025 Jul 17 11:46:23.797216 sonic ERR pmon#xcvrd[29]: CMIS: Ethernet292: FAILED

Non-lead Port Logs:

2025 Jul 17 11:45:35.492173 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting appl=8
2025 Jul 17 11:45:35.492224 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting host_lanemask=0xf
2025 Jul 17 11:45:35.492281 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting media_lanemask=0xf
2025 Jul 17 11:45:35.532610 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: DECOMMISSION: decommission has already started for this physical port, waiting for completion
2025 Jul 17 11:45:36.350704 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: 400G, lanemask=0xf, CMIS state=INSERTED(decommission), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 8 host_lane_count 4 retries=0
2025 Jul 17 11:45:36.350789 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting appl=8
2025 Jul 17 11:45:36.350849 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting host_lanemask=0xf
2025 Jul 17 11:45:36.350925 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting media_lanemask=0xf
2025 Jul 17 11:45:36.420864 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: DECOMMISSION: decommission has already started for this physical port, waiting for completion
…
..
2025 Jul 17 11:46:22.757578 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting appl=8
2025 Jul 17 11:46:22.757694 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting host_lanemask=0xf
2025 Jul 17 11:46:22.757839 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting media_lanemask=0xf
2025 Jul 17 11:46:22.775323 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: DECOMMISSION: decommission has already started for this physical port, waiting for completion
2025 Jul 17 11:46:23.843289 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: 400G, lanemask=0xf, CMIS state=INSERTED(decommission), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 8 host_lane_count 4 retries=0
2025 Jul 17 11:46:23.843412 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting appl=8
2025 Jul 17 11:46:23.843524 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting host_lanemask=0xf
2025 Jul 17 11:46:23.843643 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting media_lanemask=0xf
2025 Jul 17 11:46:23.861499 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: DECOMMISSION: decommission has already started for this physical port, failed

@Keshavg-marvell :Could you please confirm if the decommissioning process is completed using the previous version of code? After executing the code below, you can set the module to CMIS_READY and refer to pages 10 and 11 to verify if the AppSel value was successfully set to 0.

                       # Set all the DP lanes AppSel to unused(0) when non default app code needs to be configured
                        if True == self.is_appl_reconfigure_required(api, appl):
                            self.log_notice("{}: Decommissioning all lanes/datapaths to default AppSel=0".format(lport))
                            if True != api.decommission_all_datapaths():
                                self.log_notice("{}: Failed to default to AppSel=0".format(lport))
                                self.force_cmis_reinit(lport, retries + 1)
                                continue

The new version of code performs the same function but with the appropriate delays. One subport is responsible for taking this action. Once you confirm that the decommissioning function works without errors in the upstream version, we can proceed with further debugging.

@mssonicbld

Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld

Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld

Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@Keshavg-marvell

Copy link
Copy Markdown
Contributor

Today, We tried these changes with 202505 with 2x400G static breakout (800G => 2x400G) and hit the issue where lead port is getting stuck in CMIS_STATE_DP_INIT state, due to not getting ConfigSuccess, leading to timeout and eventually moving to FAILED state. While non-lead port gets stuck at INSERTED waiting for lead port to finish and eventually move to FAILED state.
Though same port works fine without these changes.
Lead port Logs:

2025 Jul 17 11:45:46.500068 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=DP_INIT(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=0
2025 Jul 17 11:45:46.818273 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=DP_INIT(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=0
2025 Jul 17 11:45:46.925353 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=DP_INIT(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=0
2025 Jul 17 11:45:46.927710 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: timeout for 'ConfigSuccess'
..
..
2025 Jul 17 11:46:22.708723 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=DP_INIT(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=3
2025 Jul 17 11:46:22.711241 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: timeout for 'ConfigSuccess'
2025 Jul 17 11:46:23.797216 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=INSERTED(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=4
2025 Jul 17 11:46:23.797216 sonic ERR pmon#xcvrd[29]: CMIS: Ethernet292: FAILED

Non-lead Port Logs:

2025 Jul 17 11:45:35.492173 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting appl=8
2025 Jul 17 11:45:35.492224 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting host_lanemask=0xf
2025 Jul 17 11:45:35.492281 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting media_lanemask=0xf
2025 Jul 17 11:45:35.532610 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: DECOMMISSION: decommission has already started for this physical port, waiting for completion
2025 Jul 17 11:45:36.350704 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: 400G, lanemask=0xf, CMIS state=INSERTED(decommission), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 8 host_lane_count 4 retries=0
2025 Jul 17 11:45:36.350789 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting appl=8
2025 Jul 17 11:45:36.350849 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting host_lanemask=0xf
2025 Jul 17 11:45:36.350925 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting media_lanemask=0xf
2025 Jul 17 11:45:36.420864 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: DECOMMISSION: decommission has already started for this physical port, waiting for completion
…
..
2025 Jul 17 11:46:22.757578 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting appl=8
2025 Jul 17 11:46:22.757694 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting host_lanemask=0xf
2025 Jul 17 11:46:22.757839 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting media_lanemask=0xf
2025 Jul 17 11:46:22.775323 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: DECOMMISSION: decommission has already started for this physical port, waiting for completion
2025 Jul 17 11:46:23.843289 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: 400G, lanemask=0xf, CMIS state=INSERTED(decommission), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 8 host_lane_count 4 retries=0
2025 Jul 17 11:46:23.843412 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting appl=8
2025 Jul 17 11:46:23.843524 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting host_lanemask=0xf
2025 Jul 17 11:46:23.843643 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting media_lanemask=0xf
2025 Jul 17 11:46:23.861499 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: DECOMMISSION: decommission has already started for this physical port, failed

@Keshavg-marvell :Could you please confirm if the decommissioning process is completed using the previous version of code? After executing the code below, you can set the module to CMIS_READY and refer to pages 10 and 11 to verify if the AppSel value was successfully set to 0.

In the old version after "

                       # Set all the DP lanes AppSel to unused(0) when non default app code needs to be configured
                        if True == self.is_appl_reconfigure_required(api, appl):
                            self.log_notice("{}: Decommissioning all lanes/datapaths to default AppSel=0".format(lport))
                            if True != api.decommission_all_datapaths():
                                self.log_notice("{}: Failed to default to AppSel=0".format(lport))
                                self.force_cmis_reinit(lport, retries + 1)
                                continue

The new version of code performs the same function but with the appropriate delays. One subport is responsible for taking this action. Once you confirm that the decommissioning function works without errors in the upstream version, we can proceed with further debugging.

@AnoopKamath In the previous version of code also api.decommission_all_datapaths() fails with config failure "ConfigRejectedPartialDataPath" , however appSel value get programmed to 0 and datapath state set to DataPathDeactivated . As it does force_cmis_reinit with desired application in the next retry, and as part of CMIS_STATE_AP_CONF state handling and it gets the config success and it works that way.

In the upstream code, if I remove the below logic also it works without any issue.

                        # Set all the DP lanes AppSel to unused(0) when non default app code needs to be configured
                         if True == self.is_appl_reconfigure_required(api, appl):
                             self.log_notice("{}: Decommissioning all lanes/datapaths to default AppSel=0".format(lport))
                             if True != api.decommission_all_datapaths():
                                 self.log_notice("{}: Failed to default to AppSel=0".format(lport))
                                 self.force_cmis_reinit(lport, retries + 1)
                                 continue

With this PR code, it gets the same config failure "ConfigRejectedPartialDataPath" while defaulting to AppSel=0. but it retry and attempt to program the same AppSel=0 and it fails again with config failure ConfigRejectedPartialDataPath and lead-port fails.

Note: this transceiver is having default app is 100G-R4. Have we tried the logic where default application is not 800G-R8.

Also few other question:

  1. Why we want to decommission all data paths and try to program with AppSel=0?
  2. When decomissioning all data path it will affect the non-lead ports. what will happens in below case?
  • A physical 1x800G-R8 is break-out to 4x 200G-R2 mode.
  • Change the speed of one of this breakout port to 100G.
  • If transceiver support 100G-R2 application. then it try to reconfigure new desired application and decommission all data paths.- What will happens to other non-lead port?

@prgeor

prgeor commented Jul 22, 2025

Copy link
Copy Markdown
Collaborator

@vivekrnv @liat-grozovik will you be able to try this fix ? The issue was opened by Vivek sonic-net/sonic-buildimage#21603

@AnoopKamath

Copy link
Copy Markdown
Contributor Author

Today, We tried these changes with 202505 with 2x400G static breakout (800G => 2x400G) and hit the issue where lead port is getting stuck in CMIS_STATE_DP_INIT state, due to not getting ConfigSuccess, leading to timeout and eventually moving to FAILED state. While non-lead port gets stuck at INSERTED waiting for lead port to finish and eventually move to FAILED state.
Though same port works fine without these changes.
Lead port Logs:

2025 Jul 17 11:45:46.500068 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=DP_INIT(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=0
2025 Jul 17 11:45:46.818273 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=DP_INIT(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=0
2025 Jul 17 11:45:46.925353 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=DP_INIT(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=0
2025 Jul 17 11:45:46.927710 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: timeout for 'ConfigSuccess'
..
..
2025 Jul 17 11:46:22.708723 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=DP_INIT(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=3
2025 Jul 17 11:46:22.711241 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: timeout for 'ConfigSuccess'
2025 Jul 17 11:46:23.797216 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet292: 400G, lanemask=0xff, CMIS state=INSERTED(decommission*), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 0 host_lane_count 4 retries=4
2025 Jul 17 11:46:23.797216 sonic ERR pmon#xcvrd[29]: CMIS: Ethernet292: FAILED

Non-lead Port Logs:

2025 Jul 17 11:45:35.492173 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting appl=8
2025 Jul 17 11:45:35.492224 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting host_lanemask=0xf
2025 Jul 17 11:45:35.492281 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting media_lanemask=0xf
2025 Jul 17 11:45:35.532610 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: DECOMMISSION: decommission has already started for this physical port, waiting for completion
2025 Jul 17 11:45:36.350704 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: 400G, lanemask=0xf, CMIS state=INSERTED(decommission), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 8 host_lane_count 4 retries=0
2025 Jul 17 11:45:36.350789 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting appl=8
2025 Jul 17 11:45:36.350849 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting host_lanemask=0xf
2025 Jul 17 11:45:36.350925 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting media_lanemask=0xf
2025 Jul 17 11:45:36.420864 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: DECOMMISSION: decommission has already started for this physical port, waiting for completion
…
..
2025 Jul 17 11:46:22.757578 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting appl=8
2025 Jul 17 11:46:22.757694 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting host_lanemask=0xf
2025 Jul 17 11:46:22.757839 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting media_lanemask=0xf
2025 Jul 17 11:46:22.775323 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: DECOMMISSION: decommission has already started for this physical port, waiting for completion
2025 Jul 17 11:46:23.843289 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: 400G, lanemask=0xf, CMIS state=INSERTED(decommission), Module state=ModuleReady, DP state={'DP1State': 'DataPathDeactivated', 'DP2State': 'DataPathDeactivated', 'DP3State': 'DataPathDeactivated', 'DP4State': 'DataPathDeactivated', 'DP5State': 'DataPathDeactivated', 'DP6State': 'DataPathDeactivated', 'DP7State': 'DataPathDeactivated', 'DP8State': 'DataPathDeactivated'}, appl 8 host_lane_count 4 retries=0
2025 Jul 17 11:46:23.843412 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting appl=8
2025 Jul 17 11:46:23.843524 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting host_lanemask=0xf
2025 Jul 17 11:46:23.843643 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: Setting media_lanemask=0xf
2025 Jul 17 11:46:23.861499 sonic NOTICE pmon#xcvrd[29]: CMIS: Ethernet288: DECOMMISSION: decommission has already started for this physical port, failed

@Keshavg-marvell :Could you please confirm if the decommissioning process is completed using the previous version of code? After executing the code below, you can set the module to CMIS_READY and refer to pages 10 and 11 to verify if the AppSel value was successfully set to 0.

In the old version after "

                       # Set all the DP lanes AppSel to unused(0) when non default app code needs to be configured
                        if True == self.is_appl_reconfigure_required(api, appl):
                            self.log_notice("{}: Decommissioning all lanes/datapaths to default AppSel=0".format(lport))
                            if True != api.decommission_all_datapaths():
                                self.log_notice("{}: Failed to default to AppSel=0".format(lport))
                                self.force_cmis_reinit(lport, retries + 1)
                                continue

The new version of code performs the same function but with the appropriate delays. One subport is responsible for taking this action. Once you confirm that the decommissioning function works without errors in the upstream version, we can proceed with further debugging.

@AnoopKamath In the previous version of code also api.decommission_all_datapaths() fails with config failure "ConfigRejectedPartialDataPath" , however appSel value get programmed to 0 and datapath state set to DataPathDeactivated . As it does force_cmis_reinit with desired application in the next retry, and as part of CMIS_STATE_AP_CONF state handling and it gets the config success and it works that way.

In the upstream code, if I remove the below logic also it works without any issue.

                        # Set all the DP lanes AppSel to unused(0) when non default app code needs to be configured
                         if True == self.is_appl_reconfigure_required(api, appl):
                             self.log_notice("{}: Decommissioning all lanes/datapaths to default AppSel=0".format(lport))
                             if True != api.decommission_all_datapaths():
                                 self.log_notice("{}: Failed to default to AppSel=0".format(lport))
                                 self.force_cmis_reinit(lport, retries + 1)
                                 continue

With this PR code, it gets the same config failure "ConfigRejectedPartialDataPath" while defaulting to AppSel=0. but it retry and attempt to program the same AppSel=0 and it fails again with config failure ConfigRejectedPartialDataPath and lead-port fails.

Note: this transceiver is having default app is 100G-R4. Have we tried the logic where default application is not 800G-R8.

Also few other question:

1. Why we want to decommission all data paths and try to program with AppSel=0?

2. When decomissioning all data path it will affect the non-lead ports.  what will happens in below case?


* A physical 1x800G-R8 is break-out to 4x 200G-R2 mode.

* Change the speed of one of this breakout port to 100G.

* If transceiver support 100G-R2 application. then it try to reconfigure new desired application and decommission all data paths.- What will happens to other non-lead port?

@Keshavg-marvell : Does the ApplSel 0 get programmed to both SCS (page 10h) and ACS (page 11h)? We have a check in both newer and older code that should ignore if the current AppSel is 0.
Could you please check if the following condition is satisfied?

Function:  is_decommission_required()
    if app_cur != 0 and app_cur != app_new:
           return True

Also, please check with the optics vendor why there’s no config success with ApplSel 0. I understand the error with the older version since there’s no expected delays, but the new version of code has all the expected delays. So, we should see a config success.

Answer inline to your questions:

  1. Why we want to decommission all data paths and try to program with AppSel=0?
    AK] We can decommission data path lanes by writing AppSel value to 0. We’ve seen configuration failure issues when moving from the default AppSel code (e.g., 1x800G) to the non-default AppSel code (e.g., 2x400G). So, here, since the width of DP lanes changes from 8 to 4 for subport 1, and the remaining 4 are still used by the previous AppSel configuration, the module wouldn’t allow us to change the width of DP lanes. This is when we need to decommission or reset the AppSel of the remaining lanes to 0 and reconfigure to the new AppSel as required. The CMIS spec also recommends this.

Check 6.2.4.3 Host Rules and Recommendations

image
  1. When decomissioning all data path it will affect the non-lead ports. what will happens in below case?
    AK] There’s a known issue with the existing logic: in case of a multi-mode approach (using different Appl for different subports) and speed change. We shouldn’t decommission when the previous lane width matches the current lane width.

So, this PR code will decommission when a speed change occurs. We’re working on code changes to optimize this approach. Avoid decommissioning in cases where the width matches and multiple ApplSel configurations are in place.

@longhuan-cisco is working on this and there will be separate PR for sonic-net/sonic-buildimage#23006

@vivekrnv

Copy link
Copy Markdown
Contributor

@vivekrnv @liat-grozovik will you be able to try this fix ? The issue was opened by Vivek sonic-net/sonic-buildimage#21603

Verified and working as expected

@prgeor prgeor left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vivekrnv lets not take this to 202412 or older branches. Need more soaking time to test on different optics. @r12f FYI

== CMIS_STATE_FAILED
)

def is_decommission_required(self, api, app_new):

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AnoopKamath This API will work only in cases where the module is operating with same application across all the datapath. Is that correct understanding? If there is a mix of application then?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@prgeor : Your understanding is correct. This PR addresses DP INIT issues during decommission by incorporating delays recommended by modules, and prevents configuration failures during decommissioning. @longhuan-cisco is working on the code changes to handle mixed applications and speed changes (sonic-net/sonic-buildimage#23006) scenarios. Will send out the review soon.

@Keshavg-marvell

Keshavg-marvell commented Jul 24, 2025

Copy link
Copy Markdown
Contributor

Thanks Anoop for the detailed explanation. For your questions, SCS (page 10h) stage are it gets written but not to ACS (page 11h). we are following up with optics vendor why we are not getting the config success while decommission all datapath lanes.

@prgeor prgeor merged commit d555def into sonic-net:master Jul 24, 2025
5 checks passed
@yejianquan

Copy link
Copy Markdown
Contributor

Hi @prgeor , please suggest whether this commit should be cherry-pick into 202505 branch, thanks

@yejianquan

Copy link
Copy Markdown
Contributor

Offline synced with Prince, this PR is not suggested to be included in 202505 branch, removing the label
FYI @dgsudharsan

@prgeor

prgeor commented Aug 1, 2025

Copy link
Copy Markdown
Collaborator

Hi @prgeor , please suggest whether this commit should be cherry-pick into 202505 branch, thanks

@dgsudharsan @yejianquan risky to take this backport.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants