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

RT-1.8 BGP Route Reflector Test #2269

Open
wants to merge 63 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
352ed48
Initial Commit for RT-1.8
cprabha Oct 18, 2023
20aa272
Initial Commit for RT-1.8
cprabha Oct 18, 2023
2391ffb
intial commit
cprabha Oct 18, 2023
ea8bd1b
Initial commit
cprabha Oct 19, 2023
c4db7a2
Initial commit
cprabha Oct 19, 2023
0342664
Initial Commit
cprabha Oct 19, 2023
e13ffe1
Initial Commit
cprabha Oct 19, 2023
39f56e0
Merge branch 'main' into RT-1.8
cprabha Oct 19, 2023
7c95415
updated metadata for uuid
cprabha Oct 19, 2023
fbacb78
Merge branch 'RT-1.8' of https://github.com/cprabha/featureprofiles i…
cprabha Oct 19, 2023
d24ba08
updated cluster id
cprabha Oct 19, 2023
a623ecc
Merge branch 'main' into RT-1.8
cprabha Oct 19, 2023
e633701
resolving conflicts
cprabha Oct 19, 2023
15aceb1
Fixing run data issues
cprabha Oct 19, 2023
1362e5b
updated with cluster id
cprabha Oct 19, 2023
6d55b3e
Fixing metadata version
cprabha Oct 19, 2023
e83b8a0
Fixing metadata version
cprabha Oct 19, 2023
20aa86a
Merge branch 'main' into RT-1.8
cprabha Oct 27, 2023
af7ff55
Resolving conflicts
cprabha Oct 28, 2023
ca964e1
Merge branch 'main' into RT-1.8
cprabha Oct 31, 2023
ee196ab
Merge branch 'main' into RT-1.8
cprabha Nov 2, 2023
55d6d1c
Merge branch 'main' into RT-1.8
cprabha Nov 6, 2023
ef76580
Resolving merge conflicts
cprabha Nov 6, 2023
fd2b16e
Merge branch 'main' into RT-1.8
cprabha Nov 7, 2023
61324fb
Merge branch 'main' into RT-1.8
cprabha Nov 17, 2023
a77fe0a
Resolved conflicts
cprabha Nov 17, 2023
e1e5a93
Update bgp_route_reflector_capabilities_test.go
cprabha Nov 17, 2023
a42604f
Merge branch 'main' into RT-1.8
cprabha Nov 18, 2023
1b986c7
Resvoled conflicts
cprabha Nov 18, 2023
1edaf7f
Merge branch 'main' into RT-1.8
cprabha Dec 11, 2023
331d3f7
Merge branch 'main' into RT-1.8
cprabha Dec 11, 2023
d27b5c1
Resolving conflicts
cprabha Dec 11, 2023
b91f602
Merge branch 'main' into RT-1.8
cprabha Dec 11, 2023
881b27f
Merge branch 'main' into RT-1.8
cprabha Dec 11, 2023
1802f62
Merge branch 'main' into RT-1.8
cprabha Dec 12, 2023
b2df4a6
Resolving conflicts
cprabha Dec 12, 2023
7c4fcb3
Merge branch 'main' into RT-1.8
cprabha Dec 12, 2023
498021c
Resolving conflicts
cprabha Dec 12, 2023
17e40e5
Merge branch 'main' into RT-1.8
arulkumarsekar Dec 13, 2023
dc6fb88
Merge branch 'main' into RT-1.8
arulkumarsekar Dec 18, 2023
560b8c2
Merge branch 'main' into RT-1.8
cprabha Dec 26, 2023
034844b
Resolving conflicts
cprabha Dec 26, 2023
5fe32a5
Merge branch 'main' into RT-1.8
cprabha Dec 26, 2023
e9a7f5c
Merge branch 'main' into RT-1.8
cprabha Dec 28, 2023
91d5433
Resolved conflicts
cprabha Dec 28, 2023
2616fd3
reverted isis deviation
cprabha Dec 28, 2023
7ff1386
Merge branch 'main' into RT-1.8
cprabha Feb 8, 2024
8cd1d49
Resolving conflicts, removed setchoice calls
cprabha Feb 8, 2024
fd697fa
Fixing static error
cprabha Feb 8, 2024
d71b924
Merge branch 'main' into RT-1.8
cprabha Apr 23, 2024
d416c0b
Resolving conflicts
cprabha Apr 23, 2024
3892425
ISIS telemetry
cprabha Apr 23, 2024
92cfccf
Merge branch 'main' into RT-1.8
cprabha Apr 25, 2024
6486ae0
Merge branch 'main' into RT-1.8
cprabha May 1, 2024
24e8f50
Merge branch 'main' into RT-1.8
cprabha May 8, 2024
7de45d3
Merge branch 'main' into RT-1.8
cprabha May 14, 2024
a8e079e
Merge branch 'main' into RT-1.8
cprabha May 31, 2024
a9cefed
Resolving conflicts
cprabha May 31, 2024
dc2b925
resolving conclifts
cprabha May 31, 2024
845dcc1
Merge branch 'main' into RT-1.8
cprabha Jun 11, 2024
ba630cc
Merge branch 'main' into RT-1.8
cprabha Aug 28, 2024
38b40a5
Merge branch 'main' into RT-1.8
cprabha Aug 30, 2024
33d96be
Merge branch 'main' into RT-1.8
cprabha Oct 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# RT-1.8: BGP Route Reflector Test

## Summary

* BGP route reflector capabilities check.
* Ensure functionality of different OC paths for "supported-capabilities", "BGP peer-type", "BGP
Neighbor details" and "BGP transport session parameters".

## Topology

DUT (Port1) <- EBGP -> (Port1) ATE
DUT (Port2) <-IS-IS/IBGP-> (Port2) ATE
DUT (Port3) <-IS-IS/IBGP-> (Port3) ATE

* Connect ATE Port1 to DUT port1 (EBGP peering)
* Connect ATE Port2 to DUT port2 (For IS-IS adjacency and IBGP peer reachability)
* Connect ATE Port3 to DUT port3 (For IS-IS adjacency and IBGP peer reachability)

## Procedure

* Establish IS-IS adjacency between ATE Port2 <-> DUT Port2, ATE Port3 <-> DUT Port3.

* Establish BGP sessions as follows between ATE and DUT.

* ATE port 2 and ATE port3 are emulating RR clients peered with the DUT acting as the RR server.
* DUT's loopback address should be used for the IBGP peering and "transport/config/local-address"
OC path should be used on DUT to configure BGP transport address for IBGP peering.
* ATE addresses used for the IBGP peering (different from ATE Port1 and ATE Port2 addreses) and
DUT loopback addresses should be reachable via IS-IS.
* Each of RR clients should advertise 500k unique ipv4 routes and 200k ipv6 routes. These prefixes
represent internal subnets and should include some prefixes that are unique to each of the ATEs.
Remaining prefixes in the mix need to be common between the 2xATEs and should have identical path
attributes except for the protocol next-hops.
* RR clients and eBGP Peer should advertise 1M overlapping ipv4 routes and 600k ipv6 routes. These
1M are non RFC1918 or RFC6598 addresses and represent Internet prefixes.Similarly, 600k IPv6
prefixes will represent internet prefixes. These prefixes should be common between the RR clients
with different path-attributes for protocol next-hop, AS-Path and community.
* The DUT Port1 has eBGP peering with ATE Port 1 and is receiving 1M IPv4 and 400k IPv6 routes.
DUT should automatically determine the BGP transport source address based on the nearest interface.
Hence, the OC path "transport/config/local-address" shouldnt be used.

* Validate session state on ATE ports and DUT using telemetry.
* The check should also include accurately receiving values for the path
"transport/state/local-address" for RRCs as well as for the EBGP peering.
* Validate accuracy of the peer-type leaf (neighbor/config/peer-type) for EBGP and IBGP peering.
* Validate session state and capabilities received on DUT using telemetry.
* Validate route receipt.
* Ensure that the DUT advertises all the IBGP learnt routes to the EBGP peer.
* Ensure that the DUT advertises all the EBGP learnt routes to the IBGP peers.
* Ensure that the DUT as RR server advertises routes learnt from each of the RRC to the other.

* Validate BGP route/path attributes below for each of the EBGP and IBGP learnt routes
* Next-Hop
* Local Pref
* Communities
* AS-Path

## Config Parameter Coverage
* /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/route-reflector
* /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/route-reflector/config
* /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/route-reflector/
config/route-reflector-cluster-id
* /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/route-reflector/
config/route-reflector-client
* /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/config/peer-type
* /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/transport/config/
local-address

## Telemetry Parameter Coverage
* /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/route-reflector/state/
route-reflector-cluster-id
* /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/route-reflector/state/
route-reflector-client
* /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/peer-type
* /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/
supported-capabilities
* /network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/
neighbors/neighbor/adj-rib-in-pre/routes/route/state/attr-index
* /network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/state/
local-pref
* /network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/state/next-hop
* /network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/as-path/
as-segment/state/

## OpenConfig Path and RPC Coverage

```yaml
rpcs:
gnmi:
gNMI.Get:
gNMI.Subscribe:

```
Loading
Loading