Skip to content

Support for Multiple Firmwares - #2331

Open
JaiOCP wants to merge 2 commits into
opencomputeproject:masterfrom
JaiOCP:FW
Open

Support for Multiple Firmwares#2331
JaiOCP wants to merge 2 commits into
opencomputeproject:masterfrom
JaiOCP:FW

Conversation

@JaiOCP

@JaiOCP JaiOCP commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Modern switches have embedded controller to run firmware for low latency applications.
This PR bring in support for installing and monitoring firmware based on the hardware support.

Older PR #2319 is closed

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@JaiOCP

JaiOCP commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

@kcudnik @AnandhiDhanabalan @crameshk @eladnachman @gananthateerta @eladnachman @tjchadaga

Please approve this PR as the old one is closed.
All the review comments are addressed there.
#2319

@kcudnik

kcudnik commented Aug 14, 2026

Copy link
Copy Markdown
Collaborator

why you are closing colder PR and creating new ones ? i already review older one and now i need to revierw again this one, i saw you do it already multiple times, this makes review proces lot harder

@JaiOCP

JaiOCP commented Aug 17, 2026

Copy link
Copy Markdown
Contributor Author

why you are closing colder PR and creating new ones ? i already review older one and now i need to revierw again this one, i saw you do it already multiple times, this makes review proces lot harder

Kamil,
PR gets diverged so much that no new rebase or squash works. It infact makes commit history very messy with lots of new merges showing up in the audit record.

@JaiOCP

JaiOCP commented Aug 17, 2026

Copy link
Copy Markdown
Contributor Author

@AnandhiDhanabalan Can you please approve the PR urgently? We need to close on this for next release.

@tjchadaga

Copy link
Copy Markdown
Collaborator

why you are closing colder PR and creating new ones ? i already review older one and now i need to revierw again this one, i saw you do it already multiple times, this makes review proces lot harder

Kamil, PR gets diverged so much that no new rebase or squash works. It infact makes commit history very messy with lots of new merges showing up in the audit record.

Jai, you should be able to squash commit, rebase and fix this issue. Please reach out before you close the PRs, I can try to fix it for you

@AnandhiDhanabalan AnandhiDhanabalan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JaiOCP , thanks for addressing the comments. I noticed a few from the previous PR are still pending, so I’ve re-added them here. Could you please check?

Comment thread inc/saifw.h
Comment thread inc/saifw.h
Comment thread doc/fw/SAI-FW-API.md
@tjchadaga tjchadaga added the reviewed PR is discussed in SAI Meeting label Aug 26, 2026
@tjchadaga

Copy link
Copy Markdown
Collaborator

@JaiOCP, could you please address pending comments and update the branch?

@JaiOCP
JaiOCP force-pushed the FW branch 2 times, most recently from 4a74d02 to ca06a9f Compare September 3, 2026 18:51
author JaiOCP <jai.kumar@broadcom.com> 1786658065 -0700
committer JaiOCP <jai.kumar@broadcom.com> 1788461916 -0700

parent 9f91525
author JaiOCP <jai.kumar@broadcom.com> 1786658065 -0700
committer JaiOCP <jai.kumar@broadcom.com> 1788461347 -0700

Support for Multiple Firmwares

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

Add wide label attribute for objects with a label attribute (opencomputeproject#2327)

Summary:

This is similar to opencomputeproject#1158, opencomputeproject#1407, opencomputeproject#1430, opencomputeproject#2322.

SAI label attributes are of type char, which maps to sai_attribute_value_t::chardata[32]. That is 32 bytes including the NUL terminator, so 31 usable characters. That can be too small for real identifiers.

Add a LABEL_WIDE attribute of type sai_s8_list_t alongside each existing char label attribute. A list keeps the label length open, so the NOS can choose the length it needs instead of being constrained by an arbitrary limit in the SAI spec. Each new attribute is appended at the end of its attribute enum so that no existing attribute is renumbered.

Objects covered: counter, ACL counter, LAG, mirror session, prefix compression table, policer, scheduler, next hop group, virtual router, UDF group and router interface.

The existing char attributes are marked deprecated. Exactly one of the two attributes may be set to a non-default value; setting both is invalid.

Signed-off-by: Shrikrishna (Shri) Khare <skhare@meta.com>
Signed-off-by: Jasmeet Bagga <jasmeetbagga@meta.com>
Signed-off-by: Ron He <zecheng@meta.com>
Co-authored-by: Ron He <zecheng@meta.com>

NHG Unequal Cost Members (opencomputeproject#2330)

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

Link Down Debounce (opencomputeproject#2284)

Link Debounce

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

[debugcounter] Add support for SAI_IN_DROP_REASON_EGRESS_LINK_DOWN (opencomputeproject#2333)

Extend the `sai_in_drop_reason_t` enum with `SAI_IN_DROP_REASON_EGRESS_LINK_DOWN` to support tracking packets dropped at ingress when the target egress port/interface is down.

While `SAI_IN_DROP_REASON_L3_EGRESS_LINK_DOWN` specifically targets routed (L3) packets, certain ASIC architectures and pipelines drop traffic at ingress whenever the destination egress link is down regardless of packet type, or do not distinguish between L2 and L3 drops for this condition.

Adding `SAI_IN_DROP_REASON_EGRESS_LINK_DOWN` enables debug counters to generically capture egress link down drops across both L2 (bridged) and L3 (routed) traffic.

Change-Id: Ifb3b440f79f0eacccb6138b4d02410dcb0d02ebd

Signed-off-by: Tommy Smail <tommysmail@google.com>

fix NHG attribute comment (opencomputeproject#2317)

Signed-off-by: Chikkegowda Chikkaiah <cchikkai@cisco.com>

SAI header major version update to v1.19.0 (opencomputeproject#2342)

Signed-off-by: Tejaswini Chadaga <tchadaga@microsoft.com>

Support Multiple FW

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

NHG Unequal Cost Members (opencomputeproject#2330)

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

[debugcounter] Add support for SAI_IN_DROP_REASON_EGRESS_LINK_DOWN (opencomputeproject#2333)

Extend the `sai_in_drop_reason_t` enum with `SAI_IN_DROP_REASON_EGRESS_LINK_DOWN` to support tracking packets dropped at ingress when the target egress port/interface is down.

While `SAI_IN_DROP_REASON_L3_EGRESS_LINK_DOWN` specifically targets routed (L3) packets, certain ASIC architectures and pipelines drop traffic at ingress whenever the destination egress link is down regardless of packet type, or do not distinguish between L2 and L3 drops for this condition.

Adding `SAI_IN_DROP_REASON_EGRESS_LINK_DOWN` enables debug counters to generically capture egress link down drops across both L2 (bridged) and L3 (routed) traffic.

Change-Id: Ifb3b440f79f0eacccb6138b4d02410dcb0d02ebd

Signed-off-by: Tommy Smail <tommysmail@google.com>

fix NHG attribute comment (opencomputeproject#2317)

Signed-off-by: Chikkegowda Chikkaiah <cchikkai@cisco.com>

SAI header major version update to v1.19.0 (opencomputeproject#2342)

Signed-off-by: Tejaswini Chadaga <tchadaga@microsoft.com>

Support for Multiple FW

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

NHG Unequal Cost Members (opencomputeproject#2330)

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

[debugcounter] Add support for SAI_IN_DROP_REASON_EGRESS_LINK_DOWN (opencomputeproject#2333)

Extend the `sai_in_drop_reason_t` enum with `SAI_IN_DROP_REASON_EGRESS_LINK_DOWN` to support tracking packets dropped at ingress when the target egress port/interface is down.

While `SAI_IN_DROP_REASON_L3_EGRESS_LINK_DOWN` specifically targets routed (L3) packets, certain ASIC architectures and pipelines drop traffic at ingress whenever the destination egress link is down regardless of packet type, or do not distinguish between L2 and L3 drops for this condition.

Adding `SAI_IN_DROP_REASON_EGRESS_LINK_DOWN` enables debug counters to generically capture egress link down drops across both L2 (bridged) and L3 (routed) traffic.

Change-Id: Ifb3b440f79f0eacccb6138b4d02410dcb0d02ebd

Signed-off-by: Tommy Smail <tommysmail@google.com>

fix NHG attribute comment (opencomputeproject#2317)

Signed-off-by: Chikkegowda Chikkaiah <cchikkai@cisco.com>

SAI header major version update to v1.19.0 (opencomputeproject#2342)

Signed-off-by: Tejaswini Chadaga <tchadaga@microsoft.com>

ACL match route destination (opencomputeproject#2329)

* Add support for ACL destination match

Signed-off-by: Jason Bos <jbos@cisco.com>

Support for Multiple FW

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>
Comment thread meta/saisanitycheck.c
CHECK_STRUCT_SIZE(sai_acl_resource_t, 12);
CHECK_STRUCT_SIZE(sai_attr_capability_t, 3);
CHECK_STRUCT_SIZE(sai_attribute_t, 48);
CHECK_STRUCT_SIZE(sai_attribute_t, 64);

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this breaks backward compatybility

@kcudnik

kcudnik commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

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