Skip to content

[saiport] Add SAI_PORT_ATTR_PRBS_PATTERN and enum list of polynomials#2262

Merged
tjchadaga merged 1 commit intoopencomputeproject:masterfrom
cpetrus-marvell:prbs_poly_new
Mar 26, 2026
Merged

[saiport] Add SAI_PORT_ATTR_PRBS_PATTERN and enum list of polynomials#2262
tjchadaga merged 1 commit intoopencomputeproject:masterfrom
cpetrus-marvell:prbs_poly_new

Conversation

@cpetrus-marvell
Copy link
Copy Markdown
Contributor

@cpetrus-marvell cpetrus-marvell commented Mar 14, 2026

This PR introduces a typed enum for PRBS polynomial patterns to replace the legacy uint32_t based attribute. This change ensures uniform configuration and capability querying across different NOS and SAI vendor implementations.

Rationale:
The existing SAI_PORT_ATTR_PRBS_POLYNOMIAL uses a raw sai_uint32_t, which lacks type safety and clear definition of supported patterns. By introducing sai_port_prbs_pattern_t, we provide a standard set of industry-recognized polynomials while allowing vendor flexibility.

Key Changes:
New Enum: Added sai_port_prbs_pattern_t containing standard PRBS patterns with options to specify vendor default (SAI_PORT_PRBS_PATTERN_AUTO) and custom (SAI_PORT_PRBS_PATTERN_CUSTOM_RANGE_BASE).
New Attribute: Added SAI_PORT_ATTR_PRBS_PATTERN.
Deprecation: Marked SAI_PORT_ATTR_PRBS_POLYNOMIAL as @deprecated.

New Attribute: Added SAI_PORT_ATTR_SUPPORTED_PRBS_PATTERN that lists the per-port supported PRBS polynomial patterns. Example use cases:
Hardware Heterogeneity: Some network devices utilize multiple SerDes IPs (often from different generations or vendors) within the same ASIC to support different port speeds or physical media.
Polynomial Variances: Lower-speed SerDes (e.g., 10G/25G) may only support simpler patterns like PRBS-7 or PRBS-15, while newer high-speed SerDes (e.g., 100G/400G+ using PAM4) require more complex patterns like PRBS-13Q, PRBS-31Q, or SSPRQ.

@rajkumar38
Copy link
Copy Markdown
Contributor

/azp run

@azure-pipelines
Copy link
Copy Markdown

Commenter does not have sufficient privileges for PR 2262 in repo opencomputeproject/SAI

1 similar comment
@azure-pipelines
Copy link
Copy Markdown

Commenter does not have sufficient privileges for PR 2262 in repo opencomputeproject/SAI

@tjchadaga
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@tjchadaga
Copy link
Copy Markdown
Collaborator

@johnbatty, @j-bos - please help review

@tjchadaga tjchadaga added the reviewed PR is discussed in SAI Meeting label Mar 19, 2026
Copy link
Copy Markdown

@johnbatty johnbatty left a comment

Choose a reason for hiding this comment

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

All looks good to me. Thanks very much for fixing!

@j-bos
Copy link
Copy Markdown
Contributor

j-bos commented Mar 20, 2026

Approach looks good. I did see a few more patterns (especially Q patterns listed here:

https://github.com/facebook/fboss/blob/main/fboss/lib/phy/prbs.thrift

Should check if these should be defined as well.

@cpetrus-marvell
Copy link
Copy Markdown
Contributor Author

Approach looks good. I did see a few more patterns (especially Q patterns listed here:

https://github.com/facebook/fboss/blob/main/fboss/lib/phy/prbs.thrift

Should check if these should be defined as well.

@j-bos I've updated the PR with the additional polynomials. They are good to have as I see most of them will be required in case of PAM4 signalling.

@j-bos @johnbatty Kindly review the updated PR.

@cpetrus-marvell
Copy link
Copy Markdown
Contributor Author

@tjchadaga This PR is approved by reviewers. Kindly trigger azp.

@tjchadaga
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@tjchadaga
Copy link
Copy Markdown
Collaborator

@cpetrus-marvell - could you please squash your commits and force merge?

@kcudnik
Copy link
Copy Markdown
Collaborator

kcudnik commented Mar 25, 2026

please fix build errors, probably you need to squash and force push

@kcudnik
Copy link
Copy Markdown
Collaborator

kcudnik commented Mar 25, 2026

@cpetrus-marvell - could you please squash your commits and force merge?

dont do force merge, PR must pass build, do force push to totrigger checker again

@tjchadaga
Copy link
Copy Markdown
Collaborator

@cpetrus-marvell - could you please squash your commits and force merge?

dont do force merge, PR must pass build, do force push to totrigger checker again

yes, that was a typo. I meant force push

Signed-off-by: Chris Nitin Adonis Petrus <cpetrus@marvell.com>
@cpetrus-marvell
Copy link
Copy Markdown
Contributor Author

@tjchadaga @kcudnik Squashed, rebased and pushed.

@tjchadaga
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@tjchadaga tjchadaga merged commit 1f97ad9 into opencomputeproject:master Mar 26, 2026
3 checks passed
tjchadaga pushed a commit that referenced this pull request Mar 31, 2026
Signed-off-by: Chris Nitin Adonis Petrus <cpetrus@marvell.com>
cursor Bot pushed a commit to yuriilisovskyi/SAI that referenced this pull request Apr 7, 2026
…uteproject#2262)

Signed-off-by: Chris Nitin Adonis Petrus <cpetrus@marvell.com>
rpmarvell pushed a commit to rpmarvell/SAI that referenced this pull request Apr 8, 2026
…uteproject#2262)

Signed-off-by: Chris Nitin Adonis Petrus <cpetrus@marvell.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

reviewed PR is discussed in SAI Meeting

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants