Skip to content

[Nexthop][m4340nhp] Create ports the way the Qumran4D SAI requires - #1879

Open
marif-nexthop wants to merge 1 commit into
meta:mainfrom
nexthop-ai:marif.fboss-q4d-port-create
Open

marif-nexthop wants to merge 1 commit into
meta:mainfrom
nexthop-ai:marif.fboss-q4d-port-create

Conversation

@marif-nexthop

Copy link
Copy Markdown
Contributor

Pre-submission checklist

  • I've ran the linters locally and fixed lint errors related to the files I modified in this PR. You can install the linters by running pip install -r requirements-dev.txt && pre-commit install
  • pre-commit run

Summary

Ports created at runtime, for example by a breakout, failed on Qumran4D for two reasons.

  • PortApi::_create passed SAI_PORT_ATTR_TYPE to create_port. The attribute is read-only in the SAI spec and is in the DNX create attributes only so that SaiStore can tell port types apart. The Broadcom DNX SAI rejects it after creating the port, which leaves a half-created port that no retry can replace. _create now leaves a LOGICAL type out of the call and still passes the other types.
  • The Qumran4D SAI attaches a default serdes object to every port it creates and fails a second create_port_serdes with SAI_STATUS_ITEM_ALREADY_EXISTS. The new PORT_SERDES_CREATED_WITH_PORT feature, set only for Qumran4D, makes SaiPortManager adopt that object, as it does on the other SAIs.

Test Plan

On a m4340nhp device with every cage broken out to 2x400G at init, AgentEmptyTest.CheckInit passes on cold and warm boot. The changed files build in the OSS build, which does not compile the DNX-only branch.

@marif-nexthop
marif-nexthop force-pushed the marif.fboss-q4d-port-create branch from ec68646 to 3ae8263 Compare October 31, 2026 01:48

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant