Skip to content

Add CPO module identifier (0x80) to SFF-8024 XCVR identifier tables#676

Open
tshalvi wants to merge 1 commit into
sonic-net:masterfrom
tshalvi:master_add_cpo_xcvr_identifier
Open

Add CPO module identifier (0x80) to SFF-8024 XCVR identifier tables#676
tshalvi wants to merge 1 commit into
sonic-net:masterfrom
tshalvi:master_add_cpo_xcvr_identifier

Conversation

@tshalvi
Copy link
Copy Markdown
Contributor

@tshalvi tshalvi commented May 26, 2026

Description

Add the SFF-8024 Identifier value 0x80 (decimal 128) for Co-Packaged Optics (CPO) modules to the Sff8024 code class in sonic_platform_base/sonic_xcvr/codes/public/sff8024.py:

  • XCVR_IDENTIFIERS[128] = 'CPO'
  • XCVR_IDENTIFIER_ABBRV[128] = 'CPO'

Motivation and Context

CPO is a new module form factor whose SFF-8024 Identifier (0x80) was not present in SONiC's XCVR_IDENTIFIERS / XCVR_IDENTIFIER_ABBRV tables. As a result, CPO modules were decoded as "Unknown", and type / type_abbrv_name in TRANSCEIVER_INFO were left empty, which prevented the rest of the stack from recognising them as a known form factor.

Adding this mapping lets SONiC correctly identify CPO modules end-to-end, and is the prerequisite that allows them to be picked up by the CMIS state machine in xcvrd

How Has This Been Tested?

Manual testing.

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).

Signed-off-by: tshalvi <tshalvi@nvidia.com>
@tshalvi tshalvi force-pushed the master_add_cpo_xcvr_identifier branch from 9ea42de to 55b035b Compare May 26, 2026 08:19
@mssonicbld
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Copy Markdown
Contributor

@aditya-nexthop aditya-nexthop left a comment

Choose a reason for hiding this comment

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

Based on the discussion today, CPO will have its own factories with platform specified CPO IDs. Would that approach make this change unnecessary?

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants