Skip to content

Optimized Forwarding Headers#2285

Open
JaiOCP wants to merge 3 commits into
opencomputeproject:masterfrom
JaiOCP:esun
Open

Optimized Forwarding Headers#2285
JaiOCP wants to merge 3 commits into
opencomputeproject:masterfrom
JaiOCP:esun

Conversation

@JaiOCP
Copy link
Copy Markdown
Contributor

@JaiOCP JaiOCP commented May 14, 2026

This PR brings a generic framework to support multiple activities going on for defining the Optimized Forwarding Header like IEEE compressed Header, OCP ESUN Header, UEC Unified Forwarding Header and more.

Comment thread inc/saidebugcounter.h
SAI_IN_DROP_REASON_LPM_MISS = 0x00000039,

/** OFH packet TTL expired */
SAI_IN_DROP_REASON_OFH_TTL,
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Keep it consistent with IP or not ?

Comment thread inc/saiswitch.h
SAI_SWITCH_ATTR_OFH,

/**
* @brief OFH header max size
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Improve comments to explian the use of max size supported by HW.

@kcudnik
Copy link
Copy Markdown
Collaborator

kcudnik commented May 21, 2026

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@kcudnik
Copy link
Copy Markdown
Collaborator

kcudnik commented May 21, 2026

@JaiOCP validator is not handling merges, you will need to rebase your change on master and force push

@JaiOCP
Copy link
Copy Markdown
Contributor Author

JaiOCP commented May 21, 2026 via email

@kcudnik
Copy link
Copy Markdown
Collaborator

kcudnik commented May 21, 2026

you dont need to recreate, you can jsut rebase and force push to your branch

Comment thread inc/saiofhroute.h
Comment thread inc/saitypes.h
@kcudnik
Copy link
Copy Markdown
Collaborator

kcudnik commented May 27, 2026

you need to squash and force push

Comment thread inc/saiofh.h
Comment thread inc/saiofh.h
* @default 0
* @validonly SAI_OFH_ATTR_TYPE == SAI_OFH_TYPE_AFH_TYPE_1 or SAI_OFH_ATTR_TYPE == SAI_OFH_TYPE_AFH_TYPE_2
*/
SAI_OFH_ATTR_VER_OFFSET,
Copy link
Copy Markdown

@rbudhia-upscaleai rbudhia-upscaleai May 28, 2026

Choose a reason for hiding this comment

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

Some headers have their format defined by the version field. While the ofh_type may be the same, the actual header format can differ depending on the version.
For example, the next version of ESUN will likely share the same Ethertype as the current version, but the header format will be determined by the value of the version (RevisionNumber) field.
To handle these cases, add a version enum attribute. This attribute specifies which version of the OFH is being defined.

Comment thread inc/saiofh.h
Comment thread inc/saiofh.h
Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

OFH Support

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

Fix gensairpc.pl crash on Doxygen 1.9.8+ by reusing NeedsTwoPassProcessing (opencomputeproject#2282)

Why:
To fix below build error

Uncaught exception from user code:
	 at gensairpc.pl line 480.
		main::assign_attr_types(HASH(0x55e190dc20c8), ARRAY(0x55e190d2d080)) called at gensairpc.pl line 434
		main::get_definitions() called at gensairpc.pl line 156
	main::assign_attr_types(HASH(0x55e190dc20c8), ARRAY(0x55e190d2d080)) called at gensairpc.pl line 434
	main::get_definitions() called at gensairpc.pl line 156

How:
gensairpc.pl crashed during SAI thrift build with an uncaught exception
at line 480 (assign_attr_types) because its inline Doxygen layout
detection was too weak - it only checked sai_8h.xml for any enumvalue
presence, missing cases where the new Doxygen 1.9.8+ XML structure
requires group__*.xml files to be processed for complete definitions.
This caused incomplete parsing, leading to missing types and a croak
in assign_attr_types when sai_attribute_value_t could not be found.

Changes:
- xmlutils.pm: Add NeedsTwoPassProcessing and export it.
- parse.pl: Remove local NeedsTwoPassProcessing; use imported version.
- gensairpc.pl: Replace inline detection with NeedsTwoPassProcessing()
  call, fixing the build failure and eliminating code duplication.

Signed-off-by: Pavan Naregundi <pnaregundi@marvell.com>

OFH Header

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

Count BFD session state changes from UP to DOWN (opencomputeproject#2268)

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

HW FRR switchover notification support for protection groups (opencomputeproject#2269)

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

Port storm control enhancemnets (opencomputeproject#2258) (opencomputeproject#2258)

Signed-off-by: rpmarvell <rperumal@marvell.com>
JaiOCP added 2 commits May 29, 2026 14:09
Signed-off-by: JaiOCP <jai.kumar@broadcom.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants