[saiport] Add SAI_PORT_ATTR_PRBS_PATTERN and enum list of polynomials#2262
Open
cpetrus-marvell wants to merge 2 commits intoopencomputeproject:masterfrom
Open
[saiport] Add SAI_PORT_ATTR_PRBS_PATTERN and enum list of polynomials#2262cpetrus-marvell wants to merge 2 commits intoopencomputeproject:masterfrom
cpetrus-marvell wants to merge 2 commits intoopencomputeproject:masterfrom
Conversation
Contributor
|
/azp run |
|
Commenter does not have sufficient privileges for PR 2262 in repo opencomputeproject/SAI |
1 similar comment
|
Commenter does not have sufficient privileges for PR 2262 in repo opencomputeproject/SAI |
a3c0d22 to
d746524
Compare
Collaborator
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Signed-off-by: Chris Nitin Adonis Petrus <cpetrus@marvell.com>
d746524 to
c1355d8
Compare
Collaborator
|
@johnbatty, @j-bos - please help review |
johnbatty
approved these changes
Mar 19, 2026
johnbatty
left a comment
There was a problem hiding this comment.
All looks good to me. Thanks very much for fixing!
Contributor
|
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.