Skip to content

Commit

Permalink
Update Readme for RT-1.3: BGP Route Propagation (openconfig#3028)
Browse files Browse the repository at this point in the history
* Update Readme for RT-1.3: BGP Route Propagation
  * Add-Path Send/Receive Control
  • Loading branch information
ihebboubaker authored Sep 6, 2024
1 parent d139a69 commit 2da4873
Showing 1 changed file with 80 additions and 38 deletions.
118 changes: 80 additions & 38 deletions feature/bgp/addpath/otg_tests/route_propagation_test/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 2da4873

Please sign in to comment.