opencomputeproject / SAI

Switch Abstraction Interface
Other
480 stars 475 forks source link

Prefix Compression feature addition to SAI #2045

Open nadershinouda opened 3 months ago

nadershinouda commented 3 months ago

This pull requests adds a new feature, prefix compression, to the SAI repository. Prefix Compression allows mapping an IP prefix/mask to a bincode (Binary Code). These prefix/bincode mapping can be grouped together to form prefix compression table. Tables can have both IPV4 and IPV6 entries.

This pull request also adds extending ACL spec to add support for bincode field matching. Bincode is part of prefix compression, where an IP prefix is mapped to Bincode.

Files changed: SAI-Proposal-ACL-Bincode.md -- ACL extension documentation. This extension allows ACL to do lookups based on a bincode

SAI-Proposal-Prefix-Compression.md -- Prefix Compression documentation.

sah.h -- Addition of a new SAI API (prefix compression)

saiacl.h -- Adding extenstions to SAI ACL to support Bincode lookups

saiobject.h -- Adding a new entry type. Prefix compression Entry is the entry used to add a new prefix/bincode mapping to a prefix compression table

saiprefixcompression.h -- The SAI header file that defines Prefix Compression

saitypes.h -- Addition of new types to support prefix compression feature. Table and entry types

acronyms.txt -- Adding a defination for BINCODE

tjchadaga commented 3 months ago

@nadershinouda - please look into the metadata check failure. Adding @kcudnik

nadershinouda commented 3 months ago

@nadershinouda - please look into the metadata check failure. Adding @kcudnik

I had this passing but there was an update in master that I picked up, which is causing this failure. It looks because how I merged the updates:

This is the error I see: WARNING: Both enums have the same value SAI_API_ICMP_ECHO and SAI_API_PREFIX_COMPRESSION = 0x00000052 WARNING: Both enums have the same value SAI_OBJECT_TYPE_ICMP_ECHO_SESSION and SAI_OBJECT_TYPE_PREFIX_COMPRESSION_TABLE = 0x00000111 processing commit 5eaebb9 ERROR: check ! SAI_API_PREFIX_COMPRESSION value is 0x00000053, but on was 0x00000052 on commit 1ee867c ERROR: check ! SAI_OBJECT_TYPE_PREFIX_COMPRESSION_TABLE value is 0x00000112, but on was 0x00000111 on commit 1ee867c ERROR: check ! SAI_OBJECT_TYPE_PREFIX_COMPRESSION_ENTRY value is 0x00000113, but on was 0x00000112 on commit 1ee867c processing commit 12c952e ERROR: please correct all 3 error(s) and all 2 warnings before continue make: *** [Makefile:90: all] Error 1

So yes it was originally the SAI_API value was 52, but a commit went in that made me go and update my code to be 53. The same with SAI_OBJECT. What I have now is correct.

kcudnik commented 3 months ago

You need to squash changes and force push instead to merge

nadershinouda commented 3 months ago

You need to squash changes and force push instead to merge

@kcudnik, how do I do that now that I already merged the changes? Is there an easy way to do that or do I need to revert the changes, then do as you suggested?

kcudnik commented 3 months ago

You can rebase locally and then force push to this branch

nadershinouda commented 3 months ago

You can rebase locally and then force push to this branch

thank you

nadershinouda commented 1 month ago

@rck-innovium and @helloanandhi, I made all the changes that you asked for. Can you please look over my latest changes and approve if you are don't have anymore comments.

rlhui commented 3 weeks ago

There is only one .md file in this PR so far. I don't see "SAI-Proposal-ACL-Bincode.md" as mentioned in the PR description.