[saiport] Add SAI_PORT_ATTR_PRBS_PATTERN and enum list of polynomials#2262
Conversation
|
/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
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
d746524 to
c1355d8
Compare
|
@johnbatty, @j-bos - please help review |
johnbatty
left a comment
There was a problem hiding this comment.
All looks good to me. Thanks very much for fixing!
|
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. |
|
@tjchadaga This PR is approved by reviewers. Kindly trigger azp. |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
@cpetrus-marvell - could you please squash your commits and force merge? |
|
please fix build errors, probably you need to squash and force push |
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>
6ed8a90 to
d213284
Compare
|
@tjchadaga @kcudnik Squashed, rebased and pushed. |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Signed-off-by: Chris Nitin Adonis Petrus <cpetrus@marvell.com>
…uteproject#2262) Signed-off-by: Chris Nitin Adonis Petrus <cpetrus@marvell.com>
…uteproject#2262) Signed-off-by: Chris Nitin Adonis Petrus <cpetrus@marvell.com>
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.