Skip to content

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

Open
cpetrus-marvell wants to merge 2 commits intoopencomputeproject:masterfrom
cpetrus-marvell:prbs_poly_new
Open

[saiport] Add SAI_PORT_ATTR_PRBS_PATTERN and enum list of polynomials#2262
cpetrus-marvell wants to merge 2 commits intoopencomputeproject:masterfrom
cpetrus-marvell:prbs_poly_new

Conversation

@cpetrus-marvell
Copy link

@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
Contributor

/azp run

@azure-pipelines
Copy link

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

1 similar comment
@azure-pipelines
Copy link

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

@tjchadaga
Copy link
Collaborator

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Signed-off-by: Chris Nitin Adonis Petrus <cpetrus@marvell.com>
@tjchadaga tjchadaga requested a review from prgeor March 19, 2026 15:19
@tjchadaga
Copy link
Collaborator

@johnbatty, @j-bos - please help review

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

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

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.

5 participants