Conversation
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces detailed documentation for testing the AFT global filter mechanism, a critical feature designed to control the flow of gNMI streaming updates by applying routing policies. The added test plan ensures robust validation of this filtering capability across various scenarios, including dynamic changes, error conditions, and scalability, ultimately enhancing the reliability and precision of network state reporting. Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
Pull Request Functional Test Report for #5217 / d482d5dVirtual Devices
Hardware Devices
|
There was a problem hiding this comment.
Code Review
This pull request introduces a new test plan (README.md) and metadata for AFT prefix filtering. The test plan is detailed, but I've found several logical inconsistencies related to policy definitions and prefix matching examples. These inconsistencies could lead to incorrect test implementation. Specifically, POLICY-PREFIX-SET-B has conflicting definitions, and several dynamic update steps use prefixes that won't match the policies as they are defined in the Canonical OC section. I've added comments with suggestions to resolve these issues. The metadata.textproto file appears to be correct.
feature/afts/filtered_streaming/otg_tests/afts_prefix_filtering/README.md
Outdated
Show resolved
Hide resolved
feature/afts/filtered_streaming/otg_tests/afts_prefix_filtering/README.md
Outdated
Show resolved
Hide resolved
feature/afts/filtered_streaming/otg_tests/afts_prefix_filtering/README.md
Outdated
Show resolved
Hide resolved
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces a comprehensive test plan (README.md) and metadata for testing the AFT prefix filtering feature. The test plan is well-structured and detailed, covering a wide range of scenarios including initial sync, dynamic updates, error handling, reboots, scale, and multi-NI filtering. I have identified a minor inconsistency in the test plan's dynamic update section and provided a suggestion for correction. Overall, the documentation is clear and thorough.
feature/afts/filtered_streaming/otg_tests/afts_prefix_filtering/README.md
Outdated
Show resolved
Hide resolved
|
|
||
| - Verify that Notifications are received **only** for prefixes matching | ||
| `POLICY-PREFIX-SET-A` (`198.51.100.0/24`, `203.0.113.0/28`, `198.51.100.1/32`), plus any | ||
| necessary recursive resolution prefixes. |
There was a problem hiding this comment.
As discussed offline Arista behavior is to not stream recursive resolution prefixes. Is there a plan to add a deviation here?
There was a problem hiding this comment.
I think "any necessary" emphasizes that we only do this if required. The test should be written to optionally do a recursive lookup.
feature/afts/filtered_streaming/otg_tests/afts_prefix_filtering/README.md
Outdated
Show resolved
Hide resolved
feature/afts/filtered_streaming/otg_tests/afts_prefix_filtering/README.md
Show resolved
Hide resolved
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces a comprehensive test plan (README.md) and corresponding metadata for a new feature test, AFT-6.1: AFT Prefix Filtering. The test plan is well-structured and covers various aspects of the AFT prefix filtering feature, including basic validation, error handling, persistence, and scale. My review focuses on improving the clarity and completeness of the documentation. I've suggested an update to the TODO section in the README.md to include the relevant OpenConfig pull request link and correct a minor grammatical issue.
feature/afts/filtered_streaming/otg_tests/afts_prefix_filtering/README.md
Outdated
Show resolved
Hide resolved
| `198.51.100.0/24`, `203.0.113.0/28`, `100.64.0.0/24`, `2001:DB8:1::/64`, and | ||
| `2001:DB8:3::/64`. | ||
|
|
||
| - The DUT is pre-configured with the following routing policies under |
There was a problem hiding this comment.
The DUT should be configured with the following routing polices as part of base test case configuration. And also mention that we need to enable other AFT baseline configuration is needed for each of the vendor.
| `2001:DB8:2::/64` and `2001:DB8:2::1/128`. | ||
|
|
||
| - `POLICY-PREFIX-SET-VRF-A`: Matches any IPv4 prefix within | ||
| `100.64.1.0/24` with a masklength range of `/24` to `/32`. |
There was a problem hiding this comment.
why is the /24. mask should be any length /0 to /32
| to `POLICY-PREFIX-SET-A`. | ||
| - Ensure | ||
| `/network-instances/network-instance/afts/global-filter/config/ipv6-policy` | ||
| is NOT set (or set to an empty/matching-none policy). |
There was a problem hiding this comment.
Let us be specific that we have have only ipv4 policy and without having the ipv6-policy configured for this case.
|
|
||
| ### Subscribe | ||
|
|
||
| Establish a long-lived gNMI STREAM subscription to the DUT targeting the |
There was a problem hiding this comment.
hope just gNMI Stream subscription is good. do we need to mention "long-lived gNMI STREAM"
| `POLICY-PREFIX-SET-A`. Verify receipt of an update notification for this | ||
| prefix and its associated next-hop-groups and next-hops. | ||
|
|
||
| - Remove `198.51.100.1/32` from the DUT. Verify receipt of a delete |
There was a problem hiding this comment.
Add a check if more than one prefixes are sharing same NHG and NG, then deletion of one prefixes should not delete the NHG and NH.
| `/network-instances/network-instance/afts/global-filter/state/ipv4-policy` | ||
| and | ||
| `/network-instances/network-instance/afts/global-filter/state/ipv6-policy`. | ||
|
|
There was a problem hiding this comment.
Also verify that new gNMI subscription is restarted and sync is received.
|
|
||
| - Verify a `FAILED_PRECONDITION` error is returned, indicating the | ||
| global-filter reference must be removed first. | ||
|
|
There was a problem hiding this comment.
add a check where we delete the global filter and then delete the policy in multiple set/steps that should go through with out any failure.
| ## AFT-6.1.5 - Scale Test | ||
|
|
||
| - Let `X` be the number of IPv4 routes to advertise from the ATE. **(User | ||
| Adjustable Value, default: 5000)** |
There was a problem hiding this comment.
let us have scale as 50000 instead of 5000
| - Verify correct filtering is applied in all scenarios (only matching prefixes | ||
| for the active address family are streamed). | ||
|
|
||
| ## AFT-6.1.6 - Per Network-Instance Filtering with Multiple Collectors |
There was a problem hiding this comment.
Let us have a test case that we have more than one collector collecting the AFT streaming data at the same time in the same routing-instance.
|
|
||
| ### Validation | ||
|
|
||
| #### 6.1.8.1 - Addition of Prefix to Active Set |
There was a problem hiding this comment.
Let us have 6.1.8.1, 6.1.8.2 and 6.1.8.3 test for ipv6 prefixes also
paramasivamn1
left a comment
There was a problem hiding this comment.
Please find my input
|
(I know there are outstanding comments on this PR-- will address when I get back from OOO on March 30th.) |
Create initial README for testing out the AFTs prefix filtering feature.
OpenConfig PR for model