From 2da4873d6bbca6133e769378e85f88e787efa47e Mon Sep 17 00:00:00 2001 From: ihebboubaker <126072465+ihebboubaker@users.noreply.github.com> Date: Fri, 6 Sep 2024 19:38:08 +0100 Subject: [PATCH] Update Readme for RT-1.3: BGP Route Propagation (#3028) * Update Readme for RT-1.3: BGP Route Propagation * Add-Path Send/Receive Control --- .../route_propagation_test/README.md | 118 ++++++++++++------ 1 file changed, 80 insertions(+), 38 deletions(-) diff --git a/feature/bgp/addpath/otg_tests/route_propagation_test/README.md b/feature/bgp/addpath/otg_tests/route_propagation_test/README.md index 502d71ee974..6c790232e3b 100644 --- a/feature/bgp/addpath/otg_tests/route_propagation_test/README.md +++ b/feature/bgp/addpath/otg_tests/route_propagation_test/README.md @@ -4,49 +4,91 @@ BGP Route Propagation +## Testbed type + +* [`featureprofiles/topologies/atedut_2.testbed`](https://github.com/openconfig/featureprofiles/blob/main/topologies/atedut_2.testbed) + ## Procedure Establish eBGP sessions between: * ATE port-1 and DUT port-1 * ATE port-2 and DUT port-2 -* Configure Route-policy under BGP peer-group address-family - -For IPv4 and IPv6: - -* Advertise prefixes from ATE port-1, observe received prefixes at ATE port-2. -* TODO: Specify default accept for received prefixes on DUT. -* TODO: Specify table based neighbor configuration to cover - validating the - supported capabilities from the DUT. - * TODO: MRAI (minimum route advertisement interval), ensuring routes are - advertised within specified time. - * IPv4 routes with an IPv6 next-hop when negotiating RFC5549 - validating - that routes are accepted and advertised with the specified values. - * TODO: With ADD-PATH enabled, ensure that multiple routes are accepted - from a neighbor when advertised with individual path IDs, and that these - routes are advertised to ATE port-2. - -## Config Parameter Coverage - -For prefix: -/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor - -Parameters: - -* afi-safis/afi-safi/add-paths/config/receive -* afi-safis/afi-safi/add-paths/config/send -* afi-safis/afi-safi/add-paths/config/send-max - -## Telemetry Parameter Coverage - -/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/supported-capabilities - -## Protocol/RPC Parameter Coverage -BGP -* OPEN - * Capabilities (Extended nexthop encoding capability (5), ADD-PATH (69)) -* UPDATE - * Extended NLRI Encodings (RFC7911) - * Nexthop AFI (RFC5549) +### RT-1.3.1: MRAI: [TODO: https://github.com/openconfig/featureprofiles/issues/3035] +* DUT: Configure the Minimum Route Advertisement Interval (MRAI) for desired behavior. +* ATE Port 2: Verify received routes adhere to the MRAI timing. + +### RT-1.3.2: RFC5549 +* DUT: Enable RFC5549 support: + * Update the BGP peer group configuration to enable extended next hop encoding using `/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/config/extended-next-hop-encoding` +* ATE Port 1: Advertise IPv4 routes with IPv6 next-hops. +* ATE Port 2: Validate correct acceptance and propagation of routes with IPv6 next-hops. + +### RT-1.3.3: Add-Path (Initial State): [TODO: https://github.com/openconfig/featureprofiles/issues/3037] +* ATE Port 1: Advertise multiple routes with distinct path IDs for the same prefix. +* ATE Port 2: Confirm that all advertised routes are accepted and propagated by the DUT due to the initially enabled Add-Path. +* Verification (Telemetry): Verify that the DUT's telemetry output reflects the enabled Add-Path capabilities. + +### RT-1.3.4: Disabling Add-Path Send: [TODO: https://github.com/openconfig/featureprofiles/issues/3037] +* DUT: Disable Add-Path send for the neighbor connected to ATE Port 2 for both IPv4 and IPv6. +* Verification (Telemetry): Confirm that the DUT's telemetry reflects the disabled Add-Path send status. +* ATE Port 1: Readvertise multiple paths. +* ATE Port 2: Verify that only a single best path is received by ATE Port 2 due to disabled Add-Path send on the DUT. + +### RT-1.3.5: Disabling Add-Path Receive: [TODO: https://github.com/openconfig/featureprofiles/issues/3037] +* DUT: Disable Add-Path receive for the neighbor connected to ATE Port 1 for both IPv4 and IPv6. +* Verification (Telemetry): Confirm the disabled Add-Path receive status in telemetry. +* ATE Port 1: Advertise BGP routes to the DUT via Port 1. +* ATE Port 2: Verify that the DUT has received and propagated only one single path. + +## OpenConfig Path and RPC Coverage + +The below yaml defines the OC paths intended to be covered by this test. + +```yaml +paths: + ## Config paths + /network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/add-paths/config/receive: + /network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/add-paths/config/send: + /network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/add-paths/config/send-max: + /network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv4-unicast/config/extended-next-hop-encoding: + /network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/add-paths/config/receive: + /network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/add-paths/config/send: + /network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/add-paths/config/send-max: + /network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/timers/config/minimum-advertisement-interval: + /network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/config/extended-next-hop-encoding: + /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/add-paths/config/receive: + /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/add-paths/config/send: + /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/add-paths/config/send-max: + /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/timers/config/minimum-advertisement-interval: + /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/config/extended-next-hop-encoding: + + ## State paths + /network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/add-paths/state/receive: + /network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/add-paths/state/send: + /network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/add-paths/state/send-max: + /network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv4-unicast/state/extended-next-hop-encoding: + /network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/add-paths/state/receive: + /network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/add-paths/state/send: + /network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/add-paths/state/send-max: + /network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/timers/state/minimum-advertisement-interval: + /network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/state/extended-next-hop-encoding: + /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/add-paths/state/receive: + /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/add-paths/state/send: + /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/add-paths/state/send-max: + /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/timers/state/minimum-advertisement-interval: + /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/state/extended-next-hop-encoding: + /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/supported-capabilities: + +rpcs: + gnmi: + gNMI.Set: + gNMI.Subscribe: +``` + +## Minimum DUT platform requirement + +* MFF - A modular form factor device containing LINECARDs, FABRIC and redundant CONTROLLER_CARD components +* FFF - fixed form factor