-
Notifications
You must be signed in to change notification settings - Fork 203
exrr
This is an extension to the RFC8538 tests already conducted under "RT-1.4: BGP Graceful Restart". However, ExRR is for projects that need to extend the validity of a route beyond the expiration of the stale routes timer for the BGP GR process. Following are the scenarios when ExRR can be considered by a project.
- Upon expiration of BGP hold-timer (Hold timer expiry on the Speaker side or when a notification for hold timer expiry is received from the helper)
- Upon the BGP session failing to re-establish within the GR restart timer as a helper.
- Upon multiple failures on the Speaker side resulting in GR restart timer or the stale path timer not to expire on the helper side.
- Upon expiration of the stale path timer Under the aforementioned conditions, the routes received from the neighbor under failure must be held for a configurable duration and processed through an additional configurable routing policy while being held in a “stale” state.
Since the route retention is purely local action of the receiving speaker, this action should not require any additional capabilities advertisements beyond capability 64 (Graceful Restart), and should not be confused with or require capability 71 (Long-Lived Graceful Restart) from the sending speaker.
How is this different from LLGR as tested in RT-1.14?
As per the IETF Draft on LLGR, we have the following that is different from EER.
- Section 4.2 / 4.3 of the draft: mandates what communities are in use and what their specific behavior should be. For example: "The "LLGR_STALE" community must be advertised by the GR helper and also MUST NOT be removed by other receiving peers." and anyone that receives that route MUST treat the route as least-preferred. This isnt the case for ERR. There arent any communities attached to Stale routes thereby mandating their depreference.
- Section 4.7: Different conditions for partial deployment of LLGR is a no-op for ExRR as it builds on the concepts of RFC8538 and hence there arent any special communities expected to be sent or received for the stale routes.
More about the ExRR policy
- This policy can be attached at the Global, Peer-group or Neighbor levels. * The routes passed through the retention-policy should be the post-policy adj-rib-in of the neighbor. Any other import policy applied to the routes must not be overridden by this policy, it should be additive.
- Default action if no ExRR policy is specified should be to follow RFC8538 behavior.
- Please Note: In the case of an ExRR policy, when the action of a given MATCH criteria is REJECT, the matching prefixes will be treated similar to RFC8538 expectations. Therefore such prefixes wouldnt experience extended Retention. Similarly, when the policy match condition translates to an ACCEPT action, the prefixes are considered for ExRR operation and the configured Retention time becomes applicable. The Prefix also gets other attributes as configured part of ACTION
- Yang definitions for ExRR is proposed in pull/1319. Following is a representation of how the entire config/state used in this test will look like.
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor[neighbor-address='192.168.1.1']/config/neighbor-address = "192.168.1.1"
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor[neighbor-address='192.168.1.1']/config/hold-time = 30
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor[neighbor-address='192.168.1.1']/graceful-restart/config/enabled = true
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor[neighbor-address='192.168.1.1']/graceful-restart/config/restart-time = 300
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor[neighbor-address='192.168.1.1']/graceful-restart/extended-route-retention/config/enabled = True
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor[neighbor-address='192.168.1.1']/graceful-restart/extended-route-retention/config/retention-time = 15552000
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor[neighbor-address='192.168.1.1']/graceful-restart/extended-route-retention/config/retention-policy = "STALE-ROUTE-POLICY"
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor[neighbor-address='192.168.1.1']/state
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor[neighbor-address='192.168.1.1']/state/hold-time
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor[neighbor-address='192.168.1.1']/graceful-restart/state/enabled
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor[neighbor-address='192.168.1.1']/graceful-restart/state/restart-time
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor[neighbor-address='192.168.1.1']/graceful-restart/extended-route-retention/state/enabled
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor[neighbor-address='192.168.1.1']/graceful-restart/extended-route-retention/state/retention-time
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor[neighbor-address='192.168.1.1']/graceful-restart/extended-route-retention/state/retention-policy
Create the following connections:
graph LR
A[ATE:Port1] <-- IBGP(ASN100) --> B[Port1:DUT:Port2]
B <-- EBGP(ASN200) --> C[Port2:ATE]
-
ATE:Port1 runs IBGP and must advertise the following IPv4 and IPv6 prefixes with the corresponding community attributes
- IPv4Prefix1 and IPv6Prefix1 with community NO-ERR
- IPv4Prefix2 and IPv6Prefix2 with community ERR-NO-DEPREF
- IPv4Prefix3 and IPv6Prefix3 with community TEST-IBGP
-
ATE:Port2 runs EBGP and must advertise the following IPv4 and IPv6 prefixes with the corresponding community attributes
- IPv4Prefix4 and IPv6Prefix4 with community NO-ERR
- IPv4Prefix5 and IPv6Prefix5 with community ERR-NO-DEPREF
- IPv4Prefix6 and IPv6Prefix6 with community TEST-EBGP
-
DUT has the following configuration on its IBGP and EBGP peering
- Extended route retention (ERR) enabled.
- ExRR configuration has the retention time of 300 secs configured
- ExRR has a retention-policy
STALE-ROUTE-POLICYattached. - "STALE-ROUTE-POLICY" has policy-statements to identify routes tagged
with community
NO-ERRand have an action of "REJECT" so such routes aren't considered for ExRR but only GR (RFC8538) - identify routes tagged with community
ERR-NO-DEPREFand have an action of "ACCEPT" so such routes are considered for ERR. Also ADD communitySTALEto the existing community list attached as part of the regular adj-rib-in post policy for the route. - Catch-all rule to identify and accept all other prefixes, attach a
local-preference of "0" and ADD community
STALEto the existing community list. - DUT has import-policy importibgp and export-policy exportibgp towards the IBGP neighbor applied in the import and export directions respectively.
- DUT has import-policy importebgp and export-policy exportebgp towards the EBGP neighbor applied in the import and export directions respectively.
- "importibgp" policy matches routes with community
testibgpand updates the local-preference to 200. The policy has a catch-all statement that matches all other routes and accepts them. - "exportibgp policy matches routes with MED 50 and sets community "NEW-IBGP"
- "importebgp" policy matches community "TEST-EBGP" and sets MED 50
- "exportebgp" policy matches community "TESTIBGP" and sets AS-PATH-PREPEND of the local ASN (100) twice and also attaches a new community "NEW-EBGP"
- DUT has the following added config
- hold-time 30
- graceful-restart restart-time = 220 secs
- graceful-restart stale-routes-timer = 250 secs
-
Test Flows used for verification
- IPv4Prefix1 <-> IPv4Prefix4, IPv6Prefix1 <-> IPv6Prefix4
- IPv4Prefix2 <-> IPv4Prefix5, IPv6Prefix2 <-> IPv6Prefix5
- IPv4Prefix3 <-> IPv4Prefix6, IPv6Prefix3 <-> IPv6Prefix6
Tabular representation of the above
| Parameter | Value | Description |
|---|---|---|
| BGP ASN | 100 |
The Autonomous System Number for the DUT's IBGP sessions. |
| Hold Time | 30 seconds | The BGP session hold timer. |
| GR Restart Time | 220 seconds | The time a peer should wait for the BGP session to re-establish during a graceful restart. |
| GR Stale Routes Time | 250 seconds | The duration for which a peer should hold stale routes during a graceful restart. |
| ERR Enabled | True |
Extended Route Retention is enabled on the BGP peerings. |
| ERR Retention Time | 300 seconds | The time for which the DUT will hold stale routes under ExRR conditions. |
| ERR Retention Policy | STALE-ROUTE-POLICY |
The policy applied to stale routes when ExRR is triggered. |
ATE:Port1 (IBGP Peer)
| Prefix | Community |
|---|---|
| IPv4Prefix1 / IPv6Prefix1 | NO-ERR |
| IPv4Prefix2 / IPv6Prefix2 | ERR-NO-DEPREF |
| IPv4Prefix3 / IPv6Prefix3 | TEST-IBGP |
ATE:Port2 (EBGP Peer)
| Prefix | Community |
|---|---|
| IPv4Prefix4 / IPv6Prefix4 | NO-ERR |
| IPv4Prefix5 / IPv6Prefix5 | ERR-NO-DEPREF |
| IPv4Prefix6 / IPv6Prefix6 | TEST-EBGP |
STALE-ROUTE-POLICY (Applied during ERR)
| Term Name | Match Condition | Action(s) |
|---|---|---|
no-retention |
Community NO-ERR
|
REJECT (Route is not retained under ERR) |
err-no-depref |
Community ERR-NO-DEPREF
|
ACCEPT; Add community STALE
|
default-retention |
All other prefixes |
ACCEPT; Set local-preference to 0; Add community STALE
|
Standard BGP Policies (Applied during normal operation)
| Policy Name | Direction | BGP Peer | Match Condition | Action(s) |
|---|---|---|---|---|
importibgp |
Import | IBGP | Community testibgp
|
Set local-preference to 200 |
exportibgp |
Export | IBGP | MED 50
|
Set community NEW-IBGP
|
importebgp |
Import | EBGP | Community TEST-EBGP
|
Set MED to 50 |
exportebgp |
Export | EBGP | Community TESTIBGP
|
Prepend AS-PATH with own ASN (100) twice; Set community NEW-EBGP
|
| Flow Name | Source Prefix | Destination Prefix |
|---|---|---|
| Flow 1 | IPv4Prefix1 | IPv4Prefix4 |
| Flow 2 | IPv6Prefix1 | IPv6Prefix4 |
| Flow 3 | IPv4Prefix2 | IPv4Prefix5 |
| Flow 4 | IPv6Prefix2 | IPv6Prefix5 |
| Flow 5 | IPv4Prefix3 | IPv4Prefix6 |
| Flow 6 | IPv6Prefix3 | IPv6Prefix6 |
-
Validate that BGP peers have exchanged graceful-restart capabilities (capability 64) i.e. the "N" bit (the second most significant bit) is set. Verify this on the ATEs.
-
Verify that the restart-time = 220 Secs. Check this using OC data.
-
Configure and validate a long-duration retention timer. In addition to the 300-second timer used for the functional tests here, configure the ERR retention-time to a large value [minimum 180 days(15552000 seconds) but if the vendor suppots larger value, pick the highest] and verify that the DUT accepts and reflects this value in its configuration state. This validates the requirement for long-lived retention, even if waiting for expiration is impractical for testing . Revert to 300 seconds for subsequent tests. Validate the configurations using OC.
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/graceful-restart/extended-route-retention/state/enabled /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/graceful-restart/extended-route-retention/state/retention-time -
Validate ExRR retention-policy is set to "STALE-ROUTE-POLICY".
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/graceful-restart/extended-route-retention/state/retention-policy`a. Verify that all prefixes are learned correctly on the DUT. Check the AFT entries for the same. On the ATEs, ensure that all the prefixes are learnt with the correct initial BGP attributes (communities, local-preference, MED) as per the import policies
- IPv4Prefix1 and IPv6Prefix1 has community NO-ERR
- IPv4Prefix2 and IPv6Prefix2 has community ERR-NO-DEPREF
- IPv4Prefix3 and IPv6Prefix3 has community TEST-IBGP and has a local-preference of 200
- IPv4Prefix4 and IPv6Prefix4 has community NO-ERR
- IPv4Prefix5 and IPv6Prefix5 has community ERR-NO-DEPREF
- IPv4Prefix6 and IPv6Prefix6 has community TEST-EBGP and also has a MED value of 50
b. On ATE:Port1, ensure the following received from DUT:
- IPv4Prefix4 and IPv6Prefix4 with community NO-ERR
- IPv4Prefix5 and IPv6Prefix5 with community ERR-NO-DEPREF
- IPv4Prefix6 and IPv6Prefix6 prefixes are received with a MED of 50 and has the community TEST-EBGP and NEW-EBGP in that order.
c. On ATE:Port2, ensure the following received from DUT:
- IPv4Prefix1 and IPv6Prefix1 has community NO-ERR
- IPv4Prefix2 and IPv6Prefix2 has community ERR-NO-DEPREF
- IPv4Prefix3 and IPv6Prefix3 has community TEST-IBGP and NEW-IBGP in that order. Also, ensure that these prefixes have an AS-PATH of "100, 100, 100"
- Start traffic as per the Test flows above and ensure 100% success
If any of the above verifications fail, then the test is a failure.
/network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/counters/octets-forwarded /network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/counters/packets-forwarded /network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/next-hop-group /network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/origin-protocol /network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/prefix /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/counters/octets-forwarded /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/counters/packets-forwarded /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/next-hop-group /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/origin-protocol /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/prefix
- Trigger: From ATE:Port1 and ATE:Port2, gracefully terminate the BGP sessions with the DUT (e.g., by sending a BGP Cease NOTIFICATION).
- Prevent the ATEs from re-establishing their BGP sessions for 280 seconds. This duration is longer than the configured stale-routes-time (250s) but shorter than the ExRR retention-time (300s), ensuring the DUT transitions from standard Graceful Restart into the ExRR state.
- Verify traffic behavior:
- Prefixes with community NO-ERR (policy action REJECT) should stop forwarding after the stale-routes-time (250s) expires. This confirms the REJECT action in the ExRR policy removes the route from being held.
- Prefixes with community ERR-NO-DEPREF should continue forwarding and have the STALE community added.
- All other prefixes should continue forwarding, have their local-preference set to 0, and have the STALE community added.
- Allow BGP to re-establish after 280 seconds and verify a return to the baseline state.
- Validation: Ensure the ATEs receive an End-of-RIB marker for the v4 and v6 peerings from the DUT after all routes are re-advertised. End-of-RIB marker is an empty BGP update message.
- Trigger: From ATE:Port1 and ATE:Port2, abruptly stop sending BGP messages, including keepalives, to the DUT. This will cause the BGP hold-timer to expire on the DUT.
- The DUT should enter Graceful Restart helper mode. Prevent the ATEs from re-establishing their BGP sessions for 280 seconds.
- Verification: The expected behavior and traffic verification steps are identical to the graceful termination test (RT-1.35.2) above, as the DUT should trigger its ExRR logic once the stale-routes-time expires.
RT-1.35.4: BGP Notification Handling (Graceful Teardown), "Administrative Reset" Notification (rfc4486) sent by the DUT
TODO: gNOI.ClearBGPNeighborRequest_GRACEFUL_RESET used in this case is under review in https://github.com/openconfig/gnoi/pull/214
- Start traffic as per the flows above
- Trigger BGP Notification (code 6 subocde 4) from DUT:Port1 towards
ATE:Port1. Please use the
gNOI.ClearBGPNeighborRequest_GRACEFUL_RESETmessage. - Cease notification of Code 6, subcode 4 will result in tcp connection reset but the routes aren't flushed
- Configure ATE:Port1 to not send/accept any more TCP connections from the DUT:Port1 until the "reset timer" on the DUT expires.
- Expected behavior is the same as RT-1.35.2
- Revert ATE configuration to allow for the BGP sessions to be up. Restart traffic and confirm that there is zero packet loss. Expected behavior is same as the base test in RT-1.35.1
- Restart the above procedure for the EBGP peering between DUT:Port-2 and ATE:Port-2
RT-1.35.5: BGP Notification Handling (Graceful Teardown), "Administrative Reset" Notification (rfc4486) received by the DUT
TODO: gNOI.ClearBGPNeighborRequest_GRACEFUL_RESET used in this case is under review in https://github.com/openconfig/gnoi/pull/214
- Follow the same procedure as RT-1.35.6 above. However this time, Trigger BGP
Notification (code 6 subocde 4) from ATE:Port1 towards DUT:Port1. Please use
the
gNOI.ClearBGPNeighborRequest_GRACEFUL_RESETmessage. - Expected result is same as RT-1.35.2 above
- Revert ATE configurtion to allow for the BGP sessions to be up. Restart traffic and confirm that there is zero packet loss. Expected behavior is same as the base test in RT-1.35.1
- Restart the above procedure for the EBGP peering between DUT:Port-2 and ATE:Port-2
TODO: gNOI.ClearBGPNeighborRequest_HARD_RESET used in this case is under review in https://github.com/openconfig/gnoi/pull/214
- Start traffic as per the flows above
- Trigger BGP "HARD RESET" Notification from the DUT:Port1 and DUT:Port2
towards ATE:Port1 and ATE:Port2 respectively by using
gNOI.ClearBGPNeighborRequest_HARD_RESETmessage of the gNOI PROTO. - As per rfc8538#section-3.1, when "N bit" exchanged between peers (i.e. GR negotiated), the "HARD RESET" notification of code 6 subcode 9 must be sent to the peer. However, the subcode for "Administrative Reset" i.e. code 6 subcode 4 must be carried in the data portion of subcode 9 notification message.
- On receipt of the "HARD RESET" Notification message from the DUT, the ATEs MUST validate the Notification message and ensure it matches the bullet above.
- Given the HARD_RESET received, the DUT must RESET the TCP and flush all
routes resulting in 100% packet loss for all the flows irrespective of the
ExRR configuration and the
STALE-ROUTE-POLICY. The test MUST fail if this isnt the behavior seen. Verficiation of packet loss done on the ATE side as well as on the DUT using the following OC path./interfaces/interface/state/counters/out-unicast-pkts - As soon as the BGP peering are up again between the ATEs and the DUT, traffic flow must be successful and the expected behavior must be the same as RT-1.35.1
TODO: gNOI.ClearBGPNeighborRequest_HARD_RESET used in this case is under review in https://github.com/openconfig/gnoi/pull/214
- Start traffic as per the flows above
- Trigger BGP "HARD RESET" Notification from the ATE:Port1 to DUT:Port1 by
sending
gNOI.ClearBGPNeighborRequest_HARDmessage to ATE:Port1. When this happens and the DUT recieves BGP cease notification with subcode 9, the DUT is expected to FLUSH all IBGP learnt routes irrespective of the ERR configuration and therefore traffic between the flows will see 100% failure. - Once the IBGP peering is reestablished, expected behavior is the same as RT-1.35.1
- Repeat the above process by sending gNOI.ClearBGPNeighborRequest_HARD to the ATE:Port2. Expected behavior here is the same as seen for the IBGP peering.
Verify that the ExRR retention policy is additive to the standard import policy.
- In addition to the existing importibgp policy that sets local-preference to 200, add an action to set the MED to 150 for prefixes with community TEST-IBGP.
- In the baseline state, verify IPv4Prefix3 and IPv6Prefix3 have both local-preference 200 and MED 150. Use the loc-rib state paths below.
- Trigger an ExRR state as in RT-1.35.2. The STALE-ROUTE-POLICY should apply a local-preference of 0. Verify using the LOC-RIB path below.
- During the ExRR state, verify that the prefixes now have a local-preference of 0 (from ExRR policy), a MED of 150 (from import policy), and the STALE community (from ExRR policy).
- This confirms the retention policy does not override pre-existing attributes set by other policies. If the behavior is different from this expectation then fail the test.
/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/loc-rib/routes/route/state/ext-community-index
/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/loc-rib/routes/route/state/attr-index
Verify that the default behavior is to drop stale routes when ExRR is enabled but no policy is attached.
- Enable ExRR on the DUT but do not configure a retention-policy.
- Trigger a BGP session failure on the ATEs that would normally activate ExRR (e.g., as in RT-1.35.2).
- Verify that after the restart-timer expires, all routes from the failed
neighbor are flushed and traffic for all flows drops to 0%. Validate on the ATE
as well as using OC.
/interfaces/interface/state/counters/out-unicast-pkts - Test Must fail if the default action without ExRR isn't satisfied.
Verify that ExRR is correctly triggered during rapid, consecutive session failures. This test addresses the specific, complex failure scenario where timers may not expire normally due to flapping.
- Establish a baseline state with active traffic.
- Initiate a loop on the ATE peer: gracefully kill the BGP
process, wait for the session to re-establish with the DUT, and then immediately
kill it again. This cycle should be shorter than the DUT's stale-routes-time.
Check the BGP peering state on the ATEs as well as using OC.
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/session-state - After several such cycles, stop the loop and prevent the ATE from reconnecting.
- Verify that the DUT enters the ExRR state and holds the routes according to the STALE-ROUTE-POLICY, as validated in RT-1.35.2.
Repeat the tests above, with ExRR configuration under the peer-group hierarchy.
{
"network-instances": {
"network-instance": [
{
"config": {
"name": "DEFAULT"
},
"name": "DEFAULT",
"protocols": {
"protocol": [
{
"bgp": {
"neighbors": {
"neighbor": [
{
"config": {
"neighbor-address": "192.168.1.1"
},
"graceful-restart": {
"config": {
"enabled": true
}
},
"neighbor-address": "192.168.1.1"
}
]
}
},
"config": {
"identifier": "BGP",
"name": "BGP"
},
"identifier": "BGP",
"name": "BGP"
}
]
}
}
]
}
} {
"network-instance": [
{
"name": "DEFAULT",
"protocols": {
"protocol": [
{
"identifier": "BGP",
"name": "BGP",
"bgp": {
"neighbors": {
"neighbor": [
{
"neighbor-address": "192.168.1.1",
"graceful-restart": {
"config": {
"enabled": true
},
"extended-route-retention": {
"config": {
"enabled": true,
"retention-time": 15552000,
"retention-policy": "STALE-ROUTE-POLICY"
}
}
}
}
]
}
}
}
]
}
}
]
}
paths:
# BGP conifguration:
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/config/peer-group:
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/config/neighbor-address:
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/config/peer-as:
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/config/local-as:
/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/graceful-restart/config/enabled:
/network-instances/network-instance/protocols/protocol/bgp/global/graceful-restart/config/restart-time:
/network-instances/network-instance/protocols/protocol/bgp/global/graceful-restart/config/stale-routes-time:
# Telemetry Parameter Coverage
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/graceful-restart/state/advertised:
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/graceful-restart/state/peer-restart-time:
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/graceful-restart/state/received:
/network-instances/network-instance/protocols/protocol/bgp/global/graceful-restart/state/restart-time:
/network-instances/network-instance/protocols/protocol/bgp/global/graceful-restart/state/stale-routes-time:
/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/loc-rib/routes/route/state/community-index:
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/graceful-restart/state/restart-time:
# /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/graceful-restart/state/enabled:
/network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/counters/octets-forwarded:
/network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/counters/packets-forwarded:
/network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/next-hop-group:
/network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/origin-protocol:
/network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/prefix:
/network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/counters/octets-forwarded:
/network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/counters/packets-forwarded:
/network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/next-hop-group:
/network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/origin-protocol:
/network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/prefix:
/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-post/routes/route/path-id:
/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/loc-rib/routes/route/state/ext-community-index:
/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/loc-rib/routes/route/state/attr-index:
/interfaces/interface/state/counters/out-unicast-pkts:
rpcs:
gnmi:
gNMI.Set:
gNMI.Get:
gNMI.Subscribe:
gnoi:
system.System.KillProcess:
# bgp.ClearBGPNeighborRequest.Hard:-
Home
- Test Plans
- ACCTZ-1.1: Record Subscribe Full
- ACCTZ-2.1: Record Subscribe Partial
- ACCTZ-3.1: Record Subscribe Non-gRPC
- ACCTZ-4.1: Record History Truncation
- ACCTZ-4.2: Record Payload Truncation
- ACCTZ-5.1: gNSI.acctz.v1 (Accounting) Test RecordSubscribe Idle Timeout - client becomes silent
- ACCTZ-6.1: gNSI.acctz.v1 (Accounting) Test RecordSubscribe Idle Timeout - DoA client
- ACCTZ-7.1: gNSI.acctz.v1 (Accounting) Test Accounting Authentication Failure - Multi-transaction
- ACCTZ-8.1: gNSI.acctz.v1 (Accounting) Test Accounting Authentication Failure - Uni-transaction
- ACCTZ-9.1: gNSI.acctz.v1 (Accounting) Test Accounting Privilege Escalation
- ACCTZ-10.1: gNSI.acctz.v1 (Accounting) Test Accounting Authentication Error - Multi-transaction
- ACL-1.1: ACL match based on L3/L4 fields and DSCP value
- ACL-1.2: ACL Update (Make-before-break)
- ACL-1.3: Large Scale ACL with TCAM profile
- AFT-1.1: AFTs Base
- AFT-1.2: AFTs slow collector
- AFT-1.3: AFTs collector Flap
- AFT-2.1: AFTs Prefix Counters
- AFT-3.1: AFTs Atomic Flag Check
- AFT-5.1: AFTs DUT Reboot
- attestz-1: General enrollz and attestz tests
- Authz: General Authz (1-4) tests
- BMP-1.1: BMP Session Establishment and Telemetry Test
- BMP-2.7: BMP Pre Policy Test
- BMP-2.8: BMP Post Policy Test
- bootz: General bootz bootstrap tests
- Certz-1: gNSI Client Certificate Tests
- Certz-2: Server Certificate
- Certz-3: Server Certificate Rotation
- Certz-4: Trust Bundle
- Certz-5: Trust Bundle Rotation
- CFM-1.1: CFM over ETHoCWoMPLSoGRE
- CNTR-1: Basic container lifecycle via
gnoi.Containerz. - CNTR-2: Container network connectivity tests
- CNTR-3: Container Supervisor Failover
- CPT-1.1: Interface based ARP policer
- Credentialz-1: Password console login
- Credentialz-2: SSH Password Login Disallowed
- Credentialz-3: Host Certificates
- Credentialz-4: SSH Public Key Authentication
- Credentialz-5: Hiba Authentication
- DP-1.2: QoS policy feature config
- DP-1.3: QoS ECN feature config
- DP-1.4: QoS Interface Output Queue Counters
- DP-1.5: Egress Strict Priority scheduler with bursty traffic
- DP-1.7: One strict priority queue traffic test
- DP-1.8: Two strict priority queue traffic test
- DP-1.9: WRR traffic test
- DP-1.10: Mixed strict priority and WRR traffic test
- DP-1.11: Bursty traffic test
- DP-1.12: ECN enabled traffic test
- DP-1.13: DSCP and ECN bits are copied over during IPinIP encap and decap
- DP-1.14: QoS basic test
- DP-1.15: Egress Strict Priority scheduler
- DP-1.16: Ingress traffic classification and rewrite
- DP-1.17: DSCP Transparency with ECN
- DP-1.19: Egress traffic DSCP rewrite
- DP-2.2: QoS scheduler with 1 rate 2 color policer, classifying on next-hop group
- DP-2.4: Police traffic on input matching all packets using 1 rate, 2 color marker
- DP-2.5: Police traffic on input matching all packets using 2 rate, 3 color marker
- DP-2.6: Police traffic on input matching all packets using 2 rate, 3 color marker with classifier
- enrollz-1: enrollz test for TPM 2.0 HMAC-based Enrollment flow
- enrollz-2: enrollz test for TPM 1.2 Enrollment flow
- example-0.1: Topology Test
- FP-1.1: Power admin DOWN/UP Test
- FPD-1.1: FPD Status Test
- gNMI-1.1: cli Origin
- gNMI-1.2: Benchmarking: Full Configuration Replace
- gNMI-1.3: Benchmarking: Drained Configuration Convergence Time
- gNMI-1.4: Telemetry: Inventory
- gNMI-1.5: Telemetry: Port Speed Test
- gNMI-1.6: System gRPC Servers running in more than one network-instance
- gNMI-1.8: Configuration Metadata-only Retrieve and Replace
- gNMI-1.9: Get requests
- gNMI-1.10: Telemetry: Basic Check
- gNMI-1.11: Telemetry: Interface Packet Counters
- gNMI-1.12: Mixed OpenConfig/CLI Origin
- gNMI-1.13: Optics Telemetry, Instant, threshold, and miscellaneous static info
- gNMI-1.14: OpenConfig metadata consistency during large config push
- gNMI-1.15: Set Requests
- gNMI-1.16: Fabric redundnacy test
- gNMI-1.17: Controller card redundancy test
- gNMI-1.18: gNMI subscribe with sample mode for backplane capacity counters
- gNMI-1.19: ConfigPush and ConfigPull after Control Card switchover
- gNMI-1.20: Telemetry: Optics Thresholds
- gNMI-1.21: Integrated Circuit Hardware Resource Utilization Test
- gNMI-1.22: Controller card port attributes
- gNMI-1.23: Telemetry: Aggregate Interface Counters
- gNMI-1.24: gNMI Leaf-List Update Test
- gNMI-1.25: Telemetry: Interface Last Change Timestamp
- gNMI-1.26: Carrier Transitions Test
- gNMI-1.27: gNMI Sample Mode Test
- GNMI-2: gnmi_subscriptionlist_test
- gNOI-2.1: Packet-based Link Qualification on 100G and 400G links
- gNOI-3.1: Complete Chassis Reboot
- gNOI-3.2: Per-Component Reboot
- gNOI-3.3: Supervisor Switchover
- gNOI-3.4: Chassis Reboot Status and Reboot Cancellation
- gNOI-4.1: Software Upgrade
- gNOI-5.1: Ping Test
- gNOI-5.2: Traceroute Test
- gNOI-5.3: Copying Debug Files
- gNOI-6.1: Factory Reset
- gNOI-7.1: BootConfig
- gNPSI-1: Sampling and Subscription Check
- HA-1.0: Telemetry: Firewall High Availability.
- Health-1.1: Generic Health Check
- Health-1.2: Healthz component status paths
- INT-1.1: Interface Performance
- IPSEC-1.1: IPSec with MACSec over aggregated links.
- IPSEC-1.2: IPSec Scaling with MACSec over aggregated links.
- IPSEC-1.3: IPSec Packet-Order with MACSec over aggregated links.
- MGT-1: Management HA solution test
- MPLS-1.1: MPLS label blocks using ISIS
- MPLS-1.2: MPLS Traffic Class Marking
- MPLS-2.2: MPLS forwarding via static LSP to BGP next-hop.
- MTU-1.3: Large IP Packet Transmission
- MTU-1.4: Large IP Packet through GRE/GUE tunnel Transmission
- MTU-1.5: Path MTU handing
- OC-1.2: Default Address Families
- OC-26.1: Network Time Protocol (NTP)
- P4RT-1.1: Base P4RT Functionality
- P4RT-1.2: P4RT Daemon Failure
- P4RT-1.3: P4RT behavior when a device/node is dowm
- P4RT-2.1: P4RT Election
- P4RT-2.2: P4RT Metadata Validation
- P4RT-3.1: Google Discovery Protocol: PacketIn
- P4RT-3.2: Google Discovery Protocol: PacketOut
- P4RT-3.21: Google Discovery Protocol: PacketOut with LAG
- P4RT-5.1: Traceroute: PacketIn
- P4RT-5.2: Traceroute Packetout
- P4RT-5.3: Traceroute: PacketIn With VRF Selection
- P4RT-6.1: Required Packet I/O rate: Performance
- P4RT-7.1: LLDP: PacketIn
- P4RT-7.2: LLDP: PacketOut
- PF-1.1: IPv4/IPv6 policy-forwarding to indirect NH matching DSCP/TC.
- PF-1.2: Policy-based traffic GRE Encapsulation to IPv4 GRE tunnel
- PF-1.3: Policy-based IPv4 GRE Decapsulation
- PF-1.4: GUEv1 Decapsulation rule using destination-address-prefix-set and TTL and DSCP behavior test
- PF-1.6: Policy based VRF selection for IPV4/IPV6
- PF-1.7: Decapsulate MPLS in GRE and UDP
- PF-1.8: Ingress handling of TTL
- PF-1.9: Egress handling of TTL
- PF-1.11: Rewrite the ingress innner packet TTL
- PF-1.12: MPLSoGRE IPV4 decapsulation of IPV4/IPV6 payload
- PF-1.13: MPLSoGRE IPV4 decapsulation of IPV4/IPV6 payload scale test
- PF-1.14: MPLSoGRE IPV4 encapsulation of IPV4/IPV6 payload
- PF-1.15: MPLSoGRE IPV4 encapsulation of IPV4/IPV6 payload scale test
- PF-1.16: MPLSoGRE IPV4 encapsulation IPV4/IPV6 local proxy test
- PF-1.17: MPLSoGRE and MPLSoGUE MACsec
- PF-1.18: MPLSoGRE and MPLSoGUE QoS
- PF-1.19: MPLSoGUE IPV4 decapsulation of IPV4/IPV6 payload
- PF-1.20: MPLSoGUE IPV4 decapsulation of IPV4/IPV6 payload scale test
- PF-1.21: Configurable IPv6 flow labels corresponding to IPV6 tunnels
- PF-1.22: GUEv1 Decapsulation and ECMP test for IPv4 and IPv6 payload
- PF-1.23: EthoCWoMPLSoGRE IPV4 forwarding of IPV4/IPV6 payload
- PF-1.24: Add and remove interface bound to PBF
- PF-1.25: Egress Static MPLS LSP Verification
- PF-2.3: Multiple VRFs and GUE DECAP in Default VRF
- PLT-1.1: Interface breakout Test
- PLT-1.2: Parent component validation test
- PLT-1.3: OnChange Subscription Test for Breakout Interfaces
- RELAY-1.1: DHCP Relay functionality
- Replay-1.0: Record/replay presession test
- Replay-1.1: Record/replay diff command trees test
- Replay-1.2: P4RT Replay Test
- RT-1.1: Base BGP Session Parameters
- RT-1.2: BGP Policy & Route Installation
- RT-1.3: BGP Route Propagation
- RT-1.4: BGP Graceful Restart
- RT-1.5: BGP Prefix Limit
- RT-1.7: Local BGP Test
- RT-1.8: BGP Route Reflector Test at scale
- RT-1.10: BGP Keepalive and HoldTimer Configuration Test
- RT-1.11: BGP remove private AS
- RT-1.12: BGP always compare MED
- RT-1.14: BGP Long-Lived Graceful Restart
- RT-1.15: BGP Addpath on scale with and without routing policy
- RT-1.19: BGP 2-Byte and 4-Byte ASN support
- RT-1.21: BGP TCP MSS and PMTUD
- RT-1.23: BGP AFI SAFI OC DEFAULTS
- RT-1.24: BGP 2-Byte and 4-Byte ASN support with policy
- RT-1.25: Management network-instance default static route
- RT-1.26: Basic static route support
- RT-1.27: Static route to BGP redistribution
- RT-1.28: BGP to IS-IS redistribution
- RT-1.29: BGP chained import/export policy attachment
- RT-1.30: BGP nested import/export policy attachment
- RT-1.31: BGP 3 levels of nested import/export policy with match-set-options
- RT-1.32: BGP policy actions - MED, LocPref, prepend, flow-control
- RT-1.33: BGP Policy with prefix-set matching
- RT-1.34: BGP route-distance configuration
- RT-1.35: BGP Graceful Restart Extended route retention (ExRR)
- RT-1.51: BGP multipath ECMP
- RT-1.52: BGP multipath UCMP support with Link Bandwidth Community
- RT-1.53: prefix-list test
- RT-1.54: BGP Override AS-path split-horizon
- RT-1.55: BGP session mode (active/passive)
- RT-1.63: BGP Multihop
- RT-1.64: BGP Import/Export Policy (Control plane only) Functional Test Case
- RT-1.65: BGP scale test
- RT-1.66: IPv4 Static Route with IPv6 Next-Hop
- RT-1.67: IPv4 and IPv6 Static Route using Vlan Interface
- RT-1.71: BGP Disable Peer AS Filter (
disable-peer-as-filter) - RT-2.1: Base IS-IS Process and Adjacencies
- RT-2.2: IS-IS LSP Updates
- RT-2.6: IS-IS Hello-Padding enabled at interface level
- RT-2.7: IS-IS Passive is enabled at interface level
- RT-2.8: IS-IS metric style wide not enabled
- RT-2.9: IS-IS metric style wide enabled
- RT-2.10: IS-IS change LSP lifetime
- RT-2.11: IS-IS Passive is enabled at the area level
- RT-2.12: Static route to IS-IS redistribution
- RT-2.13: Weighted-ECMP for IS-IS
- RT-2.14: IS-IS Drain Test
- RT-2.15: IS-IS Extensions for Segment Routing
- RT-2.16: IS-IS Graceful Restart Helper
- RT-3.1: Policy based VRF selection
- RT-3.2: Multiple <Protocol, DSCP> Rules for VRF Selection
- RT-3.52: Multidimensional test for Static GUE Encap/Decap based on BGP path selection and selective DSCP marking
- RT-3.53: Static route based GUE Encapsulation to IPv6 tunnel
- RT-4.10: AFTs Route Summary
- RT-4.11: AFTs Route Summary
- RT-5.1: Singleton Interface
- RT-5.2: Aggregate Interfaces
- RT-5.3: Aggregate Balancing
- RT-5.4: Aggregate Forwarding Viable
- RT-5.5: Interface hold-time
- RT-5.6: Interface Loopback mode
- RT-5.7: Aggregate Not Viable All
- RT-5.8: IPv6 Link Local
- RT-5.9: Disable IPv6 ND Router Arvetisment
- RT-5.10: IPv6 Link Local generated by SLAAC
- RT-5.11: LACP Intervals
- RT-5.12: Suppress IPv6 ND Router Advertisement [Depreciated]
- RT-5.13: Flow control test
- RT-5.14: Aggregate Subinterface in Default and Non-default Network Instance
- RT-5.15: LACP Fallback Support
- RT-6.1: Core LLDP TLV Population
- RT-7.1: BGP default policies
- RT-7.2: BGP Policy Community Set
- RT-7.3: BGP Policy AS Path Set
- RT-7.4: BGP Policy AS Path Set and Community Set
- RT-7.5: BGP Policy - Match and Set Link Bandwidth Community
- RT-7.6: BGP Link Bandwidth Community - Cumulative
- RT-7.8: BGP Policy Match Standard Community and Add Community Import/Export Policy
- RT-7.9: BGP ECMP for iBGP with IS-IS protocol nexthop
- RT-7.10: Routing policy statement insertion and removal
- RT-7.11: BGP Policy - Import/Export Policy Action Using Multiple Criteria
- RT-7.51: BGP Auto-Generated Link-Bandwidth Community
- RT-8: Singleton with breakouts
- RT-10.1: Default Route Generation based on 192.0.0.0/8 Presence
- RT-10.2: Non-default Route Generation based on 192.168.2.2/32 Presence in ISIS
- RT-14.2: GRIBI Route Test
- SEC-3.1: Authentication
- SFLOW-1: sFlow Configuration and Sampling
- SR-1.1: Transit forwarding to Node-SID via ISIS
- SR-1.2: Egress Node Forwarding for MPLS traffic with Explicit Null label
- Storage-1.1: Storage File System Check
- SYS-1.1: Test default COPP policy thresholds for Arista
- SYS-2.1: Ingress control-plane ACL.
- SYS-3.1: AAA and TACACS+ Configuration Verification Test Suite
- SYS-4.1: System Mount Points State Verification
- System-1.1: System banner test
- System-1.2: System g protocol test
- System-1.3: System hostname test
- System-1.4: System time test
- System-1.5: System software-version test
- TE-1.1: Static ARP
- TE-1.2: My Station MAC
- TE-2.1: gRIBI IPv4 Entry
- TE-2.2: gRIBI IPv4 Entry With Aggregate Ports
- TE-3.1: Base Hierarchical Route Installation
- TE-3.2: Traffic Balancing According to Weights
- TE-3.3: Hierarchical weight resolution
- TE-3.5: Ordering: ACK Received
- TE-3.6: ACK in the Presence of Other Routes
- TE-3.7: Base Hierarchical NHG Update
- TE-3.31: Hierarchical weight resolution with PBF
- TE-4.1: Base Leader Election
- TE-4.2: Persistence Mode
- TE-5.1: gRIBI Get RPC
- TE-6.1: Route Removal via Flush
- TE-6.2: Route Removal In Non Default VRF
- TE-6.3: Route Leakage between Non Default VRF
- TE-8.1: DUT Daemon Failure
- TE-8.2: Supervisor Failure
- TE-9.1: gRIBI MPLS Compliance
- TE-9.3: FIB FAILURE DUE TO HARDWARE RESOURCE EXHAUST
- TE-10: gRIBI MPLS Forwarding
- TE-11.1: Backup NHG: Single NH
- TE-11.2: Backup NHG: Multiple NH
- TE-11.3: Backup NHG: Actions
- TE-11.21: Backup NHG: Multiple NH with PBF
- TE-11.31: Backup NHG: Actions with PBF
- TE-13.1: gRIBI route ADD during Failover
- TE-13.2: gRIBI route DELETE during Failover
- TE-14.1: gRIBI Scaling
- TE-14.2: encap and decap scale
- TE-14.3: gRIBI Scaling - full scale setup, target T1
- TE-14.4: gRIBI Scaling - full scale setup, target T2
- TE-15.1: gRIBI Compliance
- TE-16.1: basic encapsulation tests
- TE-16.2: encapsulation FRR scenarios
- TE-16.3: encapsulation FRR scenarios
- TE-17.1: VRF selection policy driven TE
- TE-18.1: gRIBI MPLS-in-UDP Encapsulation
- TE-18.3: MPLS in UDP Encapsulation Scale Test
- TE-18.4: ECMP hashing on outer and inner packets with MPLSoUDP encapsulation
- TestID-16.4: gRIBI to BGP Route Redistribution for IPv4
- TR-6.1: Remote Syslog feature config
- TR-6.2: Local logging destinations
- TRANSCEIVER-1.1: Telemetry: 400ZR Chromatic Dispersion(CD) telemetry values streaming
- TRANSCEIVER-1.2: Telemetry: 400ZR_PLUS Chromatic Dispersion(CD) telemetry values streaming
- TRANSCEIVER-3.1: Telemetry: 400ZR Optics firmware version streaming
- TRANSCEIVER-3.2: Telemetry: 400ZR_PLUS Optics firmware version streaming
- TRANSCEIVER-4.1: Telemetry: 400ZR RX input and TX output power telemetry values streaming.
- TRANSCEIVER-4.2: Telemetry: 400ZR_PLUS RX input and TX output power telemetry values streaming.
- TRANSCEIVER-5.1: Configuration: 400ZR channel frequency, output TX launch power and operational mode setting.
- TRANSCEIVER-5.2: Configuration: 400ZR_PLUS channel frequency, output TX launch power and operational mode setting.
- TRANSCEIVER-6.1: Telemetry: 400ZR Optics performance metrics (pm) streaming.
- TRANSCEIVER-6.2: Telemetry: 400ZR_PLUS Optics performance metrics (pm) streaming.
- TRANSCEIVER-7.1: Telemetry: 400ZR Optics inventory info streaming
- TRANSCEIVER-7.2: Telemetry: 400ZR_PLUS Optics inventory info streaming
- TRANSCEIVER-8.1: Telemetry: 400ZR Optics module temperature streaming.
- TRANSCEIVER-8.2: Telemetry: 400ZR_PLUS Optics module temperature streaming.
- TRANSCEIVER-9.1: Telemetry: 400ZR TX laser bias current telemetry values streaming.
- TRANSCEIVER-9.2: Telemetry: 400ZR_PLUS TX laser bias current telemetry values streaming.
- TRANSCEIVER-10.1: Telemetry: 400ZR Optics FEC(Forward Error Correction) Uncorrectable Frames Streaming.
- TRANSCEIVER-10.2: Telemetry: 400ZR_PLUS Optics FEC(Forward Error Correction) Uncorrectable Frames Streaming.
- TRANSCEIVER-11.1: Telemetry: 400ZR Optics logical channels provisioning and related telemetry.
- TRANSCEIVER-11.2: Telemetry: 400ZR_PLUS Optics logical channels provisioning and related telemetry.
- TRANSCEIVER-12.1: Telemetry: 400ZR Transceiver Supply Voltage streaming.
- TRANSCEIVER-12.2: Telemetry: 400ZR_PLUS Transceiver Supply Voltage streaming.
- TRANSCEIVER-13.1: Configuration: 400ZR Transceiver Low Power Mode Setting.
- TRANSCEIVER-13.2: Configuration: 400ZR_PLUS Transceiver Low Power Mode Setting.
- TRANSCEIVER-101: Telemetry: ZR platform OC paths streaming.
- TRANSCEIVER-102: Telemetry: ZR terminal-device OC paths streaming.
- TRANSCEIVER-103: Telemetry: ZR Plus platform OC paths streaming.
- TRANSCEIVER-104: Telemetry: ZR Plus terminal-device OC paths streaming.
- TRANSCEIVER-105: Telemetry: ZR platform OC paths streaming.
- TRANSCEIVER-106: Telemetry: ZR terminal-device OC paths streaming.
- TRANSCEIVER-107: Telemetry: ZR Plus platform OC paths streaming.
- TRANSCEIVER-108: Telemetry: ZR Plus terminal-device OC paths streaming.
- TUN-1.3: Interface based IPv4 GRE Encapsulation
- TUN-1.4: Interface based IPv6 GRE Encapsulation
- TUN-1.6: Tunnel End Point Resize for Ecapsulation - Interface Based GRE Tunnel
- TUN-1.9: GRE inner packet DSCP
- URPF-1.1: uRPF validation from non-default network-instance
- Test Plans