Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Class-Based Forwarding #1193

Merged
merged 20 commits into from Aug 27, 2021
Merged

Class-Based Forwarding #1193

merged 20 commits into from Aug 27, 2021

Conversation

j-bos
Copy link
Contributor

@j-bos j-bos commented Feb 18, 2021

This PR defines class-based forwarding. It contains two aspects:

  • Assignment of a Forwarding Class to a packet, via QOS map or ACL

  • New next-hop group type: SAI_NEXT_HOP_GROUP_TYPE_CLASS_BASED

Where member selection is based on the forwarding-class of the packet.

Signed-off-by: j-bos jbos@cisco.com

@rlhui
Copy link
Collaborator

rlhui commented Feb 18, 2021

@JaiOCP , @marian-pritsak , @ashutosh-agrawal - would you like to review/sign-off this? Thanks.

@rlhui
Copy link
Collaborator

rlhui commented Feb 18, 2021

@j-bos - thanks. possible to also upload the ppt to https://github.com/opencomputeproject/SAI/tree/master/doc/ECMP?

@rlhui
Copy link
Collaborator

rlhui commented Feb 18, 2021

@j-bos - please check the DCO error if this can be resolved.

inc/saiqosmap.h Show resolved Hide resolved
@rck-innovium
Copy link
Contributor

Since we do not have an explicit capability check, can you spell out the mechanism to know whether a SAI implementation supports this capability. Say, if SAI_SWITCH_ATTR_MAX_NUMBER_OF_FORWARDING_CLASSES is 0?

Copy link
Contributor

@JaiOCP JaiOCP left a comment

Choose a reason for hiding this comment

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

We need to enhance the SAI behavioral model to accommodate this change.

Concept of Internal Class as an index in ECMP Group need to come from ACL table.
Today Next Hop Group block has a match only on next hop group hash value. This need to be explicitly enhanced to include class id.

Copy link
Contributor

@JaiOCP JaiOCP left a comment

Choose a reason for hiding this comment

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

Raising this question to capture in review.

Given the concept of class id based ECMP group indexing is a specific implementation to silicon and is not RFC based: Should it be not part of SAI extensions?

@j-bos
Copy link
Contributor Author

j-bos commented Feb 23, 2021

Since we do not have an explicit capability check, can you spell out the mechanism to know whether a SAI implementation supports this capability. Say, if SAI_SWITCH_ATTR_MAX_NUMBER_OF_FORWARDING_CLASSES is 0?

The most direct would be an enum-capability for next-hop group type (class-based). Though, I think a check if SAI_SWITCH_ATTR_MAX_NUMBER_OF_FORWARDING_CLASSES is supported and non-zero would be reasonable as well.

@rlhui
Copy link
Collaborator

rlhui commented Mar 10, 2021

@lguohan - would you like to review? Thanks.

@j-bos j-bos marked this pull request as ready for review March 24, 2021 07:11
@rlhui
Copy link
Collaborator

rlhui commented Apr 28, 2021

@marian-pritsak , please also help review, thanks.

@j-bos
Copy link
Contributor Author

j-bos commented Jul 6, 2021

@j-bos - please check the DCO error if this can be resolved.

Resolved

@j-bos j-bos closed this Jul 6, 2021
@j-bos j-bos reopened this Jul 6, 2021
@kcudnik
Copy link
Collaborator

kcudnik commented Jul 6, 2021

please resolve conflicts

Signed-off-by: Jason Bos <jbos@cisco.com>
Signed-off-by: Jason Bos <jbos@cisco.com>
Signed-off-by: Jason Bos <jbos@cisco.com>
Signed-off-by: Jason Bos <jbos@cisco.com>
inc/saiport.h Show resolved Hide resolved
Signed-off-by: Jason Bos <jbos@cisco.com>
@abdosi
Copy link
Collaborator

abdosi commented Aug 4, 2021

@j-bos Are you working on update using new object ?

Signed-off-by: Jason Bos <jbos@cisco.com>
Signed-off-by: Jason Bos <jbos@cisco.com>
Signed-off-by: Jason Bos <jbos@cisco.com>
j-bos and others added 4 commits August 19, 2021 08:08
Signed-off-by: Jason Bos <jbos@cisco.com>
Signed-off-by: Jason Bos <jbos@cisco.com>
Signed-off-by: Jason Bos <jbos@cisco.com>
inc/sainexthopgroup.h Show resolved Hide resolved
inc/saiswitch.h Show resolved Hide resolved
inc/saiport.h Show resolved Hide resolved
Copy link
Contributor

@JaiOCP JaiOCP left a comment

Choose a reason for hiding this comment

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

Please update the pipeline with CBF and ECMP stage indicated as optional.

@kcudnik
Copy link
Collaborator

kcudnik commented Aug 26, 2021

/azp run

@azure-pipelines
Copy link

Pull request contains merge conflicts.

@kcudnik
Copy link
Collaborator

kcudnik commented Aug 26, 2021

please resolve conflicts

inc/saiacl.h Show resolved Hide resolved
Adjust to provide a representation of optional steps in the behavioral model diagram. Dashed border by itself was hard to see, so used a hash-fill as well.

Signed-off-by: Jason Bos <jbos@cisco.com>
Signed-off-by: Jason Bos <jbos@cisco.com>
@j-bos
Copy link
Contributor Author

j-bos commented Aug 26, 2021

Please update the pipeline with CBF and ECMP stage indicated as optional.

Done

@rlhui rlhui merged commit 725cd53 into opencomputeproject:master Aug 27, 2021
dipankar-ba pushed a commit to dipankar-ba/SAI that referenced this pull request Sep 13, 2021
This check will make sure that enum values are constant from this point on all future commits.

[meta] Add enum ancestry check on SAI includes (opencomputeproject#1297)

Will make sure that from BEGIN_COMMIT we will be always backward compatible for SAI enums

Class-Based Forwarding (opencomputeproject#1193)

This PR defines class-based forwarding. It contains two aspects:

Assignment of a Forwarding Class to a packet, via QOS map or ACL

New next-hop group type: SAI_NEXT_HOP_GROUP_TYPE_CLASS_BASED

Where member selection is based on the forwarding-class of the packet.

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

[tests] Add missing lib -lzmq to saithrift (opencomputeproject#1298)

[meta] Make sure SAI version components are unsigned integers (opencomputeproject#1300)

[meta] Add lower case notification names (opencomputeproject#1301)
TACappleman pushed a commit to Metaswitch/SAI that referenced this pull request Oct 6, 2021
This PR defines class-based forwarding. It contains two aspects:

Assignment of a Forwarding Class to a packet, via QOS map or ACL

New next-hop group type: SAI_NEXT_HOP_GROUP_TYPE_CLASS_BASED

Where member selection is based on the forwarding-class of the packet.

Signed-off-by: Jason Bos <jbos@cisco.com>
abanu-ms pushed a commit to Metaswitch/SAI that referenced this pull request Oct 7, 2021
This PR defines class-based forwarding. It contains two aspects:

Assignment of a Forwarding Class to a packet, via QOS map or ACL

New next-hop group type: SAI_NEXT_HOP_GROUP_TYPE_CLASS_BASED

Where member selection is based on the forwarding-class of the packet.

Signed-off-by: Jason Bos <jbos@cisco.com>
TACappleman pushed a commit to Metaswitch/SAI that referenced this pull request Oct 21, 2021
This PR defines class-based forwarding. It contains two aspects:

Assignment of a Forwarding Class to a packet, via QOS map or ACL

New next-hop group type: SAI_NEXT_HOP_GROUP_TYPE_CLASS_BASED

Where member selection is based on the forwarding-class of the packet.

Signed-off-by: Jason Bos <jbos@cisco.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.

None yet

10 participants