-
Notifications
You must be signed in to change notification settings - Fork 93
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
Support for list-match type (P4) for ACLs, pending BMV2 fork #91
Comments
Hi @marian-pritsak, I am working on adding the list/range_list match type in the simulator. I needed some clarification on how this match type actually works. How different is it from adding multiple entries? Do we have any sample of how a CLI input for list/range_list will actually look like? Also it would be great if you could share some reference material (e.g any past discussion) to gain further understanding on this match type. I have identified 3 areas of development, please correct if I'm wrong:
I believe support needs to be added in these 3 areas, am I correct? Best Regards, |
It seems that support for list-match type also needs to be added in the p4c. We have observed that the table match_type does not update to list in the generated json file. For now we have manually changed the match_type to list in json file to continue development. Is there any past discussion on how the table match_type is decided if a table contains mix types with list and range_list in them? We have assumed that for an ipv4 key it would look something like this "0x01010100/24,0x01010200/24" etc. For other key values like protocol an entry would look like "value1&&&mask1,value2&&&mask2". |
@marian-pritsak to reply 4/21/2022 |
Datapath and runtime for sure, however, what section in JSON are you talking about that is not updated? |
Yes, this field needs to be also updated to "list". List and range_list should be in positions 1 and 2 (before LPM and ternary). |
@KrisNey-MSFT, I believe p4c is out of scope of this issue. Will there be separate issue for this or an extension to the current issue? |
P4C defines the match-type of the table. The compiler code needs to be updated (?); this is out of scope b/c this is only bmv2. |
Per @mqasimfarooqi - let's move forward and extend the scope of to encompass p4c and bmv2. I think, in the first comment, we may change "Scope - BMv2" to "Scope - BMv2,p4c" and add a line in the end to define the other related task which should be "In the compiler, handle list and range_list key values to decide table match type based on precedence.". Rest looks okay. |
Following PR implements the "list" and "range_list" match types. |
Hi @mqasimfarooqi - Marian has a few updated PRs, one in /opencomputeproject, one in /DASH. Do either of these affect your Issue here? #249 - Build p4c from custom fork |
@mqasimfarooqi Were the PRs mentioned above helpful in solving your issue? Been some time since this was reviewed, can we move to close? |
Hi @KrisNey-MSFT @yusefMS06 - Sorry for the delayed response. @KrisNey-MSFT - Actually the feature is already merged with Marian's bmv2 fork. I don't think the above mentioned PR's should effect this issue. We can close this issue. @yusefMS06 - Yes please, we can go ahead and close this issue as the change-set has been merged in Marian's bmv2 fork. |
Going ahead and closing |
Related information
Scope - BMv2. DASH ACL defines two new match types - list and range_list. They need to be handled by the simulator, so it can match a field in a packet against a list of values and generate a hit if one of the values in the list matches.
The text was updated successfully, but these errors were encountered: