Allow for the speed change in NH-5010 by updating the config_db.json#25423
Allow for the speed change in NH-5010 by updating the config_db.json#25423rlhui merged 16 commits intosonic-net:masterfrom
Conversation
|
/azp run Azure.sonic-buildimage |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Why I did it
1) Automate generation of ASIC, gearbox, and PHY configs for different port speeds, instead of maintaining HWSKUs which are inflexible.
2) Derive configuration from platform files:
a) port_speed.json (port speed profiles + ASIC/gearbox mapping)
b) Q3D_ports.json (ASIC core/PM → lanes/port names)
c) CONFIG_DB.PORT (actual ports, speeds, indices, lanes)
3) Add validation so invalid lane/speed combinations are caught early (before swss brings up ports).
How I did it
1) Changed docker image template to provide rw permission to hwsku directory to allow for the config generation.
2) The hwsku-init runs everytime the swss starts and generates the configuration file.
3) Introduced a common hwsku pipeline:
a) Dataclasses for ASIC ports, gearbox ports, speed profiles, and CONFIG_DB entries.
b) Loaders for:
port_speed.json → per-port speed profiles + ASIC/gearbox mapping.
Q3D_ports.json → core/PM → port → lane map.
CONFIG_DB PORT table (or a JSON dump) → typed port map.
c) Generators for:
Gearbox interfaces list.
Per‑PHY phy_config.json content.
ASIC specific config
d) A run() method that:
Calls platform-specific ASIC config generation.
Renders Jinja2 templates into nh5010.bcm, gearbox_config.json, and phy*_config.json, with a fallback to defaults/ on error.
4) Currently supports:
(400G-4, 100G-2) ASIC config, (400G-8, 100G-4) front port on the ports 1-32.
(400G-4, 100G-4) ASIC and front port config (no gearbox) on ports 33-64.
This commit moves all current signal integrity settings for gearboxes into the media_settings file in the
device/nexthop/x86_64-nexthop_5010-r0 directory. It also removes the older configuration via gearbox_config.json so that we only have a single source of truth for all signal integrity configuration on this platform.
Signed-off-by: arpit-nexthop <arpit@nexthop.ai>
Signed-off-by: arpit-nexthop <arpit@nexthop.ai>
04353da to
eca63de
Compare
|
/azp run Azure.sonic-buildimage |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Signed-off-by: arpit-nexthop <arpit@nexthop.ai>
|
/azp run Azure.sonic-buildimage |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run Azure.sonic-buildimage |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run Azure.sonic-buildimage |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
@arlakshm Since the script is not generating html or xml file, we can ignore the warning. Please suggest what should be the way to mark this file in ignore list for this warning. |
|
/azp run Azure.sonic-buildimage |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run Azure.sonic-buildimage |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Signed-off-by: arpit-nexthop <arpit@nexthop.ai>
|
/azp run Azure.sonic-buildimage |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run Azure.sonic-buildimage |
|
Azure Pipelines failed to run 1 pipeline(s). |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
@arpit-nexthop - since one of the prereq PRs (sonic-net/sonic-platform-daemons#728) is not merged to master, is it safe to merge this PR? If not, please raise another PR with this change for 202511, so we can go ahead and merge that |
@tjchadaga It is okay to merge, we are already working to get master merged (sonic-net/sonic-platform-daemons#728) (should happen in a couple of days). Only thing it will temporarily break on master would be the serdes settings. Since immediately we are not running tests on master, we can merge this. |
Signed-off-by: arpit-nexthop <arpit@nexthop.ai>
|
/azp run Azure.sonic-buildimage |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Signed-off-by: arpit-nexthop <arpit@nexthop.ai>
|
/azp run Azure.sonic-buildimage |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run Azure.sonic-buildimage |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azpw ms_conflict |
|
/azp run Azure.sonic-buildimage |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run Azure.sonic-buildimage |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
Cherry-pick PR to 202511: #26150 |
Prereq PRs:
sonic-net/sonic-platform-daemons#728
sonic-net/sonic-swss#4113
Why I did it
Prereq changes:
This commit first moves all current signal integrity settings for gearboxes into the media_settings file in the
device/nexthop/x86_64-nexthop_5010-r0 directory. It also removes the older configuration via gearbox_config.json so that we only have a single source of truth for all signal integrity configuration on this platform.
a) port_speed.json (port speed profiles + ASIC/gearbox mapping)
b) Q3D_ports.json (ASIC core/PM → lanes/port names)
c) CONFIG_DB.PORT (actual ports, speeds, indices, lanes)
Work item tracking
How I did it
a) Dataclasses for ASIC ports, gearbox ports, speed profiles, and CONFIG_DB entries.
b) Loaders for:
port_speed.json → per-port speed profiles + ASIC/gearbox mapping.
Q3D_ports.json → core/PM → port → lane map.
CONFIG_DB PORT table (or a JSON dump) → typed port map.
c) Generators for:
Gearbox interfaces list.
Per‑PHY phy_config.json content.
ASIC specific config
d) A run() method that:
Calls platform-specific ASIC config generation.
Renders Jinja2 templates into nh5010.bcm, gearbox_config.json, and phy*_config.json, with a fallback to defaults/ on error.
(400G-4, 100G-2) ASIC config, (400G-8, 100G-4) front port on the ports 1-32.
(400G-4, 100G-4) ASIC and front port config (no gearbox) on ports 33-64.
How to verify it
Validated it on mix of 100G and 400G interface:
Which release branch to backport (provide reason below if selected)
Tested branch (Please provide the tested image version)
Description for the changelog
Link to config_db schema for YANG module changes
A picture of a cute animal (not mandatory but encouraged)