From d8192f59c4b079aa5139dd5a2e2bed59a67c53ec Mon Sep 17 00:00:00 2001 From: Lakshmana Varahabhotla <77013369+vvlakshmanamurthy@users.noreply.github.com> Date: Wed, 2 Oct 2024 16:42:39 -0500 Subject: [PATCH 1/5] Create README.md Adding README for RT-3.33: DSCP based traffic steering from Non-default VRF to Default VRF using Policy based VRF selection --- .../README.md | 311 ++++++++++++++++++ 1 file changed, 311 insertions(+) create mode 100644 feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md diff --git a/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md b/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md new file mode 100644 index 00000000000..0dae58da461 --- /dev/null +++ b/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md @@ -0,0 +1,311 @@ +# RT-3.33: DSCP based traffic steering from Non-default VRF to Default VRF using Policy based VRF selection + + +## Summary +In this case, traffic is gradually moved from the Default VRF to the non-Default VRF per traffic class and then move traffic from Non default VRF to Default VRF based on DSCP value & destination prefix. + +## Testbed type + [atedut_4.binding](https://github.com/openconfig/featureprofiles/blob/main/topologies/atedut_4.binding) + +## Procedure +Test environment setup

+ +### Topology +Create the following connections: +```mermaid +graph LR; +subgraph DUT [DUT] + B1[Port1] + B2[Port2] + B3[Port3] +end +subgraph ATE2 [ATE2] + C2[Port2] + C3[Port3] +end +A1[ATE1:Port1] <-- IBGP(ASN100) --> B1; +B2 <-- EBGP(ASN100:ASN200) --> C2; +B3 <-- EBGP(ASN100:ASN300) --> C3; +``` +### Advertisements: + * ATE1:Port1 advertises following prefixes over IBGP to DUT:Port1. + * IPv4Prefix1/24 IPv6Prefix1/64 + * IPv4Prefix2/24 IPv6Prefix2/64 + * IPv4Prefix3/24 IPv6Prefix3/64 + * IPv4Prefix4/24 IPv6Prefix4/64 + * IPv4Prefix5/24 IPv6Prefix5/64
+ + * ATE2:Port2 and DUT:Port2 from EBGP neighborship between each other over on respective AFI-SAFI connections and advertise the following prefixes + * From ATE2:Port2 to DUT:Port2 + * IPv4Prefix6/24 IPv6Prefix6/64 + * IPv4Prefix7/24 IPv6Prefix7/64 + * IPv4Prefix8/24 IPv6Prefix8/64 + * IPv4Prefix9/24 IPv6Prefix9/64 + * IPv4Prefix10/24 IPv6Prefix10/64 + * From DUT:Port2 to ATE2:Port2 + * All the IBGP learnt prefixes from Prefix1 to Prefix5
+ + * ATE2:Port3 and DUT:Port3 from EBGP neighborship between each other over on respective AFI-SAFI connections and advertise the following prefixes + * From ATE2:Port2 to DUT:Port2 + * IPv4Prefix6/24 IPv6Prefix6/64 + * IPv4Prefix7/24 IPv6Prefix7/64 + * IPv4Prefix8/24 IPv6Prefix8/64 + * IPv4Prefix9/24 IPv6Prefix9/64 + * IPv4Prefix10/24 IPv6Prefix10/64 + * From DUT:Port2 to ATE2:Port2 + * All the IBGP learnt prefixes from Prefix1 to Prefix5
+ + + * **[Important: Please note]** Following advertisements must happen only during the test one at a time as instructed
+ +* Configure the DUT to honor the TOS byte of destination +| Match Condition | Outer Header DSCP Set to: | +|-------------------------------------------|---------------------------| +| DSCP value BE1, Destination IPv4Prefix6/24" | 3 | +| DSCP value BE1, Destination IPv6Prefix6/64" | 3 | +| DSCP value AF1, Destination IPv4Prefix7/24" | 11 | +| DSCP value AF1, Destination IPv6Prefix7/64" | 11 | +| DSCP value AF2, Destination IPv4Prefix8/24" | 19 | +| DSCP value AF2, Destination IPv6Prefix8/24" | 19 | +| DSCP value AF3, Destination IPv4Prefix9/24" | 27 | +| DSCP value AF3, Destination IPv6Prefix9/64" | 27 | +| DSCP value AF4, Destination IPv4Prefix10/24" | 35 | +| DSCP value AF4, Destination IPv6Prefix10/24" | 35 | + + + + * DUT has 2 VRFs, Default and Non-Default. Configure Route leaking from the Default to the Non-default VRF to share reachability between VRFs.
+ + +### Flows: + +Flows from ATE1:Port1 to DUT:Port1 + + * Following are destinations. + * IPv4Prefix1/24 to IPv4Prefix6/24 [DSCP:BE1] + * IPv6Prefix1/64 to IPv6Prefix6/64 [DSCP:BE1] + * IPv4Prefix2/24 to IPv4Prefix7/24 [DSCP:AF1] + * IPv6Prefix2/64 to IPv6Prefix7/64 [DSCP:AF1] + * IPv4Prefix3/24 to IPv4Prefix8/24 [DSCP:AF2] + * IPv6Prefix3/64 to IPv6Prefix8/64 [DSCP:AF2] + * IPv4Prefix4/24 to IPv4Prefix9/24 [DSCP:AF3] + * IPv6Prefix4/64 to IPv6Prefix9/64 [DSCP:AF3] + * IPv4Prefix5/24 to IPv4Prefix10/24 [DSCP:AF4] + * IPv6Prefix5/64 to IPv6Prefix10/64 [DSCP:AF4] br>

+ + +### Following Health checks to be run Pre and Post every sub test + * No system/kernel/process/component coredumps + * No high CPU spike or usage on control or forwarding plane + * No high memory utilization or usage on control or forwarding plane + * No processes/daemons high CPU/Memory utilization + * No generic drop counters + * QUEUE drops + * Interfaces + * VOQ + * Fabric drops + * ASIC drops + * No flow control frames tx/rx + * No CRC or Layer 1 errors on interfaces + * No config commit errors + * No system level alarms + * In spec hardware should be in proper state + * No hardware errors + * Major Alarms + * No HW component or SW processes crash +Openconfig-paths for the above are covered in the `OpenConfig Path and RPC Coverage` section below


+ + + + + +**RT-3.33.1: [Baseline] Traffic flow between ATE1:Port1 and ATE2:Port2 via DUT's Default VRF** + * Please run all the health checks suggested above prior to starting the test as a baseline. + * Start all the Flows from ATE1:Port1 to DUT:Port1 + * DUT has the following VRF selection policy + * Statement1: traffic matching any IPV4 0r IPV6 destination with any DSCP value, Punt to default vrf
+ * Expectations: + * All traffic received in the Default VRF destined for any IPv4Prefix is sent back to ATE2:Port2 based on LPM lookup of EBGP learnt routes. + * Run post test Health checks above to ensure no anomalies


+ + +**RT-3.33.2: Identify traffic by DSCP (BE1) and punt to non-default VRF** + * Please run all the health checks suggested above prior to starting the test. + * Start all the Flows from ATE1:Port1 to DUT:Port1 + * DUT has the following VRF selection policy + * Statement1: Traffic matching any IPV4 or IPV6 destination with DSCP value BE1, Punt to non-default vrf + * Statement2: Traffic matching any IPV4 or IPV6 destination with DSCP value AF1,AF2,AF3,AF4, Punt to default vrf
+ * Expectations: + * All traffic received in the Default VRF destined for any Destination but with DSCP value BE1 is punted to Non-Default VRF and sent back to ATE2:Port3 based on LPM lookup of EBGP learnt routes. + * All traffic received in the Default VRF destined for any Destination but with DSCP value AF1,AF2,AF3,AF4 is sent back to ATE2:Port2 based on LPM lookup of EBGP learnt routes. + + * Run post test Health checks above to ensure no anomalies


+ + +**RT-3.33.3: Identify traffic by DSCP (BE1,AF1,AF2,AF3,AF4) and punt to non-default VRF** + + +* Please run all the health checks suggested above prior to starting the test. + * Start all the Flows from ATE1:Port1 to DUT:Port1 + * DUT has the following VRF selection policy + * Statement1: Traffic matching any IPV4 or IPV6 destination with DSCP value BE1,AF1,AF2,AF3,AF4 Punt to non-default vrf
+ * Expectations: + * All traffic received in the Default VRF destined for any Destination but with DSCP value BE1,AF1,AF2,AF3,AF4 is punted to Non-Default VRF and sent back to ATE2:Port3 based on LPM lookup of EBGP learnt routes. + * Run post test Health checks above to ensure no anomalies


+ + +**RT-3.33.4: Identify traffic by DSCP (BE1) and prefix and punt to default VRF** + + +* Please run all the health checks suggested above prior to starting the test. + * Start all the Flows from ATE1:Port1 to DUT:Port1 + * DUT has the following VRF selection policy + * Statement1: Traffic matching any IPv4Prefix6/24 and IPv6Prefix6/64 destination with DSCP value BE1 Punt to default vrf
+ * Expectations: + * All traffic received in the Default VRF destined for IPv4Prefix6/24 and IPv6Prefix6/64 and with DSCP value BE1 is punted to Default VRF and sent back to ATE2:Port2 based on LPM lookup of EBGP learnt routes. + * All traffic received in the Default VRF destined for any other Destination but with DSCP value AF1,AF2,AF3,AF4 is sent to ATE2:Port3 based on LPM lookup of EBGP learnt routes. + + * Run post test Health checks above to ensure no anomalies


+ +**RT-3.33.5: Identify traffic by DSCP (BE1,AF1,AF2,AF3,AF4) and prefix and punt to non-default VRF** + + +* Please run all the health checks suggested above prior to starting the test. + * Start all the Flows from ATE1:Port1 to DUT:Port1 + * DUT has the following VRF selection policy + * Statement1: Traffic matching any IPv4Prefix6/24 and IPv6Prefix6/64 with DSCP value BE1 +IPv4Prefix7/24 and IPv6Prefix7/64 with DSCP value AF1, IPv4Prefix8/24 and IPv6Prefix8/64 with DSCP value AF2, IPv4Prefix9/24 and IPv6Prefix9/64 with DSCP value AF3, IPv4Prefix10/24 and IPv6Prefix10/64 with DSCP value AF4 Punt to default vrf
+ * Expectations: + * All traffic received in the Default VRF destined for IPv4Prefix6/24 and IPv6Prefix6/64 with DSCP value BE1 +IPv4Prefix7/24 and IPv6Prefix7/64 with DSCP value AF1, IPv4Prefix8/24 and IPv6Prefix8/64 with DSCP value AF2, IPv4Prefix9/24 and IPv6Prefix9/64 with DSCP value AF3, IPv4Prefix10/24 and IPv6Prefix10/64 with DSCP value AF4 is punted to Default VRF and sent back to ATE2:Port2 based on LPM lookup of EBGP learnt routes. + + * Run post test Health checks above to ensure no anomalies


+ + + +## To Dos: + +Following paths yet to be defied in Yang + + 1. `/network-instances/network-instance/inter-instance-policies` is missing option to configure "export-to" or "import-from" VRF` + + 2. Configuring the IPv4oUDP encapsulation/decapsulation is dependent on the proposal in https://github.com/openconfig/public/pull/1153

+ + +## OpenConfig Path and RPC Coverage +```yaml +paths: + # Policy for route leaking between VRFs + /network-instances/network-instance/inter-instance-policies/apply-policy + # Following applied in Default VRF + /network-instances/network-instance/inter-instance-policies/apply-policy/config/export-policy + # Following applied in Non-default VRF + /network-instances/network-instance/inter-instance-policies/apply-policy/config/import-policy + + # Config for VRF selection + # Create different VRFs: "Default or Non-default" + /network-instances/network-instance/config/name: + # Create VRF seletion policy with different rules that match on desination-prefix-set as first rule and then few other rules to match different Traffic-classes that determine BE1 to AF4 traffic + /network-instances/network-instance/policy-forwarding/policies/policy-id: + /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/config/destination-address-prefix-set: + /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/config/dscp-set: + /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6/config/dscp-set: + + # Action that sets the VRF for matching conditions. + /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/config/network-instance: + + # Creating the Prefix-Set required for the above VRF selection policy + /routing-policy/defined-sets/prefix-sets/prefix-set/name: + /routing-policy/defined-sets/prefix-sets/prefix-set/config/name: + /routing-policy/defined-sets/prefix-sets/prefix-set/prefixes/prefix/config/ip-prefix: + /routing-policy/defined-sets/prefix-sets/prefix-set/prefixes/prefix/config/masklength-range: + + # Apply VRF selection policy as per the Test procedure above + /network-instances/network-instance/policy-forwarding/interfaces/interface/config/apply-vrf-selection-policy: + + # BGP configuration at the neighbor and peer-group levels + /network-instances/network-instance/protocols/protocol/bgp/neighbors/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 + + # BGP Policy definition for sharing of routes between IBGP and EBGP + /routing-policy/policy-definitions/policy-definition/config/name + /routing-policy/policy-definitions/policy-definition/statements/statement/config/name + /routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-prefix-set/config/prefix-set + /routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-prefix-set/config/match-set-options + /routing-policy/policy-definitions/policy-definition/statements/statement/actions/config/policy-result/ACCEPT_ROUTE + + # Static route for VPNH for routes learnt via BGP. Routes MUST be in Default VRF and Protocol is Static + /network-instances/network-instance/protocols/protocol/static-routes/static/config/prefix: + /network-instances/network-instance/protocols/protocol/static-routes/ipv4/route/next-hops/next-hop/config/index + /network-instances/network-instance/protocols/protocol/static-routes/ipv4/route/next-hops/next-hop/config/next-hop + + # Next-hop defined in the Static route above must lead to a IPv4oUDP encap to a destination learnt via EBGP + + + # Config for policy-based Decap of IPv4oUDP packets + /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/config/destination-address-prefix-set + /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/config/decapsulate-gue + + # State Paths: + # Folliwing for normal health check pre and post each test + /system/processes/process/state/cpu-utilization + /system/processes/process/state/memory-utilization + /qos/interfaces/interface/input/queues/queue/state/dropped-pkts + /qos/interfaces/interface/output/queues/queue/state/dropped-pkts + /qos/interfaces/interface/input/virtual-output-queues/voq-interface/queues/queue/state/dropped-pkts + /interfaces/interface/state/counters/in-discards + /interfaces/interface/state/counters/in-errors + /interfaces/interface/state/counters/in-multicast-pkts + /interfaces/interface/state/counters/in-unknown-protos + /interfaces/interface/state/counters/out-discards + /interfaces/interface/state/counters/out-errors + /interfaces/interface/state/oper-status + /interfaces/interface/state/admin-status + /interfaces/interface/state/counters/out-octets + /interfaces/interface/state/description + /interfaces/interface/state/type + /interfaces/interface/subinterfaces/subinterface/state/counters/in-discards + /interfaces/interface/subinterfaces/subinterface/state/counters/in-errors + /interfaces/interface/subinterfaces/subinterface/state/counters/in-unknown-protos + /interfaces/interface/subinterfaces/subinterface/state/counters/out-discards + /interfaces/interface/subinterfaces/subinterface/state/counters/out-errors + /interfaces/interface/ethernet/state/counters/in-mac-pause-frames + /interfaces/interface/ethernet/state/counters/out-mac-pause-frames + /interfaces/interface/ethernet/state/counters/in-crc-errors + /interfaces/interface/ethernet/state/counters/in-block-errors + + # IPv4oUDP Decap state + /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/state/decapsulate-gue + + # BGP state paths + /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/session-state + /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/received-prefixes + /network-instances/network-instance/protocols/protocol[identifier='BGP']/bgp/neighbors/neighbor/state/advertised-prefixes + /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/peer-as + + # Packet counters matching forwarding rules for IPv4oUDP Decap + /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/state/counters/forwarded-packets + /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/state/counters/dropped-packets + /network-instances/network-instance[name='']/policy-forwarding/state/active-policy + /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/state/next-hop + + + +rpcs: + gnmi: + gNMI.Set: + union_replace: true + gNMI.Subscribe: + on_change: true +``` +## Required DUT platform +* Specify the minimum DUT-type: + * MFF - A modular form factor device containing LINECARDs, FABRIC and redundant CONTROLLER_CARD components + * FFF - fixed form factor + + + + + From 3d12b85a4c2bca09367799d73f9ece307b0a050c Mon Sep 17 00:00:00 2001 From: Lakshmana Varahabhotla <77013369+vvlakshmanamurthy@users.noreply.github.com> Date: Wed, 9 Oct 2024 09:36:10 -0500 Subject: [PATCH 2/5] Update README.md Updated the README to accept the ipv4 & ipv6 native flows with policy based traffic steering. --- .../README.md | 425 ++++++------------ 1 file changed, 138 insertions(+), 287 deletions(-) diff --git a/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md b/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md index 0dae58da461..b3cd9e3a633 100644 --- a/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md +++ b/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md @@ -1,311 +1,162 @@ -# RT-3.33: DSCP based traffic steering from Non-default VRF to Default VRF using Policy based VRF selection - ## Summary -In this case, traffic is gradually moved from the Default VRF to the non-Default VRF per traffic class and then move traffic from Non default VRF to Default VRF based on DSCP value & destination prefix. +This test ensures NOS is able to host multiple VRFs, perform GUE tunnel DECAP in the default VRF and also allows for gradual traffic migration from Default to Non-Default VRF using VRF selection policy. -## Testbed type - [atedut_4.binding](https://github.com/openconfig/featureprofiles/blob/main/topologies/atedut_4.binding) ## Procedure -Test environment setup

+Test environment setup ### Topology Create the following connections: ```mermaid graph LR; -subgraph DUT [DUT] +subgraph ATE1 [ATE1] + A1[Port1] +end +subgraph DUT1 [DUT1] B1[Port1] B2[Port2] - B3[Port3] end subgraph ATE2 [ATE2] - C2[Port2] - C3[Port3] + C1[Port1] end -A1[ATE1:Port1] <-- IBGP(ASN100) --> B1; -B2 <-- EBGP(ASN100:ASN200) --> C2; -B3 <-- EBGP(ASN100:ASN300) --> C3; +A1 <-- IBGP(ASN100) --> B1; +B2 <-- EBGP(ASN100:ASN200) --> C1; ``` -### Advertisements: - * ATE1:Port1 advertises following prefixes over IBGP to DUT:Port1. - * IPv4Prefix1/24 IPv6Prefix1/64 - * IPv4Prefix2/24 IPv6Prefix2/64 - * IPv4Prefix3/24 IPv6Prefix3/64 - * IPv4Prefix4/24 IPv6Prefix4/64 - * IPv4Prefix5/24 IPv6Prefix5/64
- - * ATE2:Port2 and DUT:Port2 from EBGP neighborship between each other over on respective AFI-SAFI connections and advertise the following prefixes - * From ATE2:Port2 to DUT:Port2 - * IPv4Prefix6/24 IPv6Prefix6/64 - * IPv4Prefix7/24 IPv6Prefix7/64 - * IPv4Prefix8/24 IPv6Prefix8/64 - * IPv4Prefix9/24 IPv6Prefix9/64 - * IPv4Prefix10/24 IPv6Prefix10/64 - * From DUT:Port2 to ATE2:Port2 - * All the IBGP learnt prefixes from Prefix1 to Prefix5
- - * ATE2:Port3 and DUT:Port3 from EBGP neighborship between each other over on respective AFI-SAFI connections and advertise the following prefixes - * From ATE2:Port2 to DUT:Port2 - * IPv4Prefix6/24 IPv6Prefix6/64 - * IPv4Prefix7/24 IPv6Prefix7/64 - * IPv4Prefix8/24 IPv6Prefix8/64 - * IPv4Prefix9/24 IPv6Prefix9/64 - * IPv4Prefix10/24 IPv6Prefix10/64 - * From DUT:Port2 to ATE2:Port2 - * All the IBGP learnt prefixes from Prefix1 to Prefix5
- - - * **[Important: Please note]** Following advertisements must happen only during the test one at a time as instructed
- -* Configure the DUT to honor the TOS byte of destination -| Match Condition | Outer Header DSCP Set to: | -|-------------------------------------------|---------------------------| -| DSCP value BE1, Destination IPv4Prefix6/24" | 3 | -| DSCP value BE1, Destination IPv6Prefix6/64" | 3 | -| DSCP value AF1, Destination IPv4Prefix7/24" | 11 | -| DSCP value AF1, Destination IPv6Prefix7/64" | 11 | -| DSCP value AF2, Destination IPv4Prefix8/24" | 19 | -| DSCP value AF2, Destination IPv6Prefix8/24" | 19 | -| DSCP value AF3, Destination IPv4Prefix9/24" | 27 | -| DSCP value AF3, Destination IPv6Prefix9/64" | 27 | -| DSCP value AF4, Destination IPv4Prefix10/24" | 35 | -| DSCP value AF4, Destination IPv6Prefix10/24" | 35 | - +### Advertisements: - * DUT has 2 VRFs, Default and Non-Default. Configure Route leaking from the Default to the Non-default VRF to share reachability between VRFs.
+ ATE1:Port1 advertises following prefixes over IBGP to DUT:Port1 + - IPv4Prefix1/24 IPv6Prefix1/64 + - IPv4Prefix2/24 IPv6Prefix2/64 + - IPv4Prefix3/24 IPv6Prefix3/64 + - IPv4Prefix4/24 IPv6Prefix4/64 + - IPv4Prefix5/24 IPv6Prefix5/64 + ATE2:Port1 advertieses following prefixes to DUT:Port2 over EBGP + - IPv4Prefix6/24 IPv6Prefix6/64 + - IPv4Prefix7/24 IPv6Prefix7/64 + - IPv4Prefix8/24 IPv6Prefix8/64 + - IPv4Prefix9/24 IPv6Prefix9/64 + - IPv4Prefix10/24 IPv6Prefix10/64 ### Flows: -Flows from ATE1:Port1 to DUT:Port1 - - * Following are destinations. - * IPv4Prefix1/24 to IPv4Prefix6/24 [DSCP:BE1] - * IPv6Prefix1/64 to IPv6Prefix6/64 [DSCP:BE1] - * IPv4Prefix2/24 to IPv4Prefix7/24 [DSCP:AF1] - * IPv6Prefix2/64 to IPv6Prefix7/64 [DSCP:AF1] - * IPv4Prefix3/24 to IPv4Prefix8/24 [DSCP:AF2] - * IPv6Prefix3/64 to IPv6Prefix8/64 [DSCP:AF2] - * IPv4Prefix4/24 to IPv4Prefix9/24 [DSCP:AF3] - * IPv6Prefix4/64 to IPv6Prefix9/64 [DSCP:AF3] - * IPv4Prefix5/24 to IPv4Prefix10/24 [DSCP:AF4] - * IPv6Prefix5/64 to IPv6Prefix10/64 [DSCP:AF4] br>

- - -### Following Health checks to be run Pre and Post every sub test - * No system/kernel/process/component coredumps - * No high CPU spike or usage on control or forwarding plane - * No high memory utilization or usage on control or forwarding plane - * No processes/daemons high CPU/Memory utilization - * No generic drop counters - * QUEUE drops - * Interfaces - * VOQ - * Fabric drops - * ASIC drops - * No flow control frames tx/rx - * No CRC or Layer 1 errors on interfaces - * No config commit errors - * No system level alarms - * In spec hardware should be in proper state - * No hardware errors - * Major Alarms - * No HW component or SW processes crash -Openconfig-paths for the above are covered in the `OpenConfig Path and RPC Coverage` section below


- - - - - -**RT-3.33.1: [Baseline] Traffic flow between ATE1:Port1 and ATE2:Port2 via DUT's Default VRF** - * Please run all the health checks suggested above prior to starting the test as a baseline. - * Start all the Flows from ATE1:Port1 to DUT:Port1 - * DUT has the following VRF selection policy - * Statement1: traffic matching any IPV4 0r IPV6 destination with any DSCP value, Punt to default vrf
- * Expectations: - * All traffic received in the Default VRF destined for any IPv4Prefix is sent back to ATE2:Port2 based on LPM lookup of EBGP learnt routes. - * Run post test Health checks above to ensure no anomalies


- - -**RT-3.33.2: Identify traffic by DSCP (BE1) and punt to non-default VRF** - * Please run all the health checks suggested above prior to starting the test. - * Start all the Flows from ATE1:Port1 to DUT:Port1 - * DUT has the following VRF selection policy - * Statement1: Traffic matching any IPV4 or IPV6 destination with DSCP value BE1, Punt to non-default vrf - * Statement2: Traffic matching any IPV4 or IPV6 destination with DSCP value AF1,AF2,AF3,AF4, Punt to default vrf
- * Expectations: - * All traffic received in the Default VRF destined for any Destination but with DSCP value BE1 is punted to Non-Default VRF and sent back to ATE2:Port3 based on LPM lookup of EBGP learnt routes. - * All traffic received in the Default VRF destined for any Destination but with DSCP value AF1,AF2,AF3,AF4 is sent back to ATE2:Port2 based on LPM lookup of EBGP learnt routes. - - * Run post test Health checks above to ensure no anomalies


- - -**RT-3.33.3: Identify traffic by DSCP (BE1,AF1,AF2,AF3,AF4) and punt to non-default VRF** - - -* Please run all the health checks suggested above prior to starting the test. - * Start all the Flows from ATE1:Port1 to DUT:Port1 - * DUT has the following VRF selection policy - * Statement1: Traffic matching any IPV4 or IPV6 destination with DSCP value BE1,AF1,AF2,AF3,AF4 Punt to non-default vrf
- * Expectations: - * All traffic received in the Default VRF destined for any Destination but with DSCP value BE1,AF1,AF2,AF3,AF4 is punted to Non-Default VRF and sent back to ATE2:Port3 based on LPM lookup of EBGP learnt routes. - * Run post test Health checks above to ensure no anomalies


- - -**RT-3.33.4: Identify traffic by DSCP (BE1) and prefix and punt to default VRF** - - -* Please run all the health checks suggested above prior to starting the test. - * Start all the Flows from ATE1:Port1 to DUT:Port1 - * DUT has the following VRF selection policy - * Statement1: Traffic matching any IPv4Prefix6/24 and IPv6Prefix6/64 destination with DSCP value BE1 Punt to default vrf
- * Expectations: - * All traffic received in the Default VRF destined for IPv4Prefix6/24 and IPv6Prefix6/64 and with DSCP value BE1 is punted to Default VRF and sent back to ATE2:Port2 based on LPM lookup of EBGP learnt routes. - * All traffic received in the Default VRF destined for any other Destination but with DSCP value AF1,AF2,AF3,AF4 is sent to ATE2:Port3 based on LPM lookup of EBGP learnt routes. - - * Run post test Health checks above to ensure no anomalies


- -**RT-3.33.5: Identify traffic by DSCP (BE1,AF1,AF2,AF3,AF4) and prefix and punt to non-default VRF** - - -* Please run all the health checks suggested above prior to starting the test. - * Start all the Flows from ATE1:Port1 to DUT:Port1 + From ATE1:Port1 to ATE2:Port1 + - IPv4Prefix1/24 to IPv4Prefix6/24 + - IPv6Prefix1/64 to IPv6Prefix6/64 + + - IPv4Prefix2/24 to IPv4Prefix7/24 + - IPv6Prefix2/64 to IPv6Prefix7/64 + + - IPv4Prefix3/24 to IPv4Prefix8/24 + - IPv6Prefix3/64 to IPv6Prefix8/64 + + - IPv4Prefix4/24 to IPv4Prefix9/24 + - IPv6Prefix4/64 to IPv6Prefix9/64 + + - IPv4Prefix5/24 to IPv4Prefix10/24 + - IPv6Prefix5/64 to IPv6Prefix10/64 + + Flows from ATE2:Port1 to ATE1:Port1 + - IPv4Prefix6/24 to IPv4Prefix1/24 + - IPv6Prefix6/64 to IPv6Prefix1/64 + + - IPv4Prefix7/24 to IPv4Prefix2/24 + - IPv6Prefix7/64 to IPv6Prefix2/64 + + - IPv4Prefix8/24 to IPv4Prefix3/24 + - IPv6Prefix8/64 to IPv6Prefix3/64 + + - IPv4Prefix9/24 to IPv4Prefix4/24 + - IPv6Prefix9/64 to IPv6Prefix4/64 + + - IPv4Prefix10/24 to IPv4Prefix5/24 + - IPv6Prefix10/64 to IPv6Prefix5/64 + + +**RT-3.33.1: [Baseline] Default VRF for all flows. Regular traffic.** + +In this case ATE2:Port1 simulates the regular flows from ATE2:Port1 as stated above. + * ATE2 sends following IPv4 and IPv6 flows: + - IPv4Prefix6/24 to IPv4Prefix1/24 + - IPv4Prefix7/24 to IPv4Prefix2/24 + - IPv4Prefix8/24 to IPv4Prefix3/24 + - IPv4Prefix9/24 to IPv4Prefix4/24 + - IPv4Prefix10/24 to IPv4Prefix5/24 + - IPv6Prefix6/64 to IPv6Prefix1/64 + - IPv6Prefix7/64 to IPv6Prefix2/64 + - IPv6Prefix8/64 to IPv6Prefix3/64 + - IPv6Prefix9/64 to IPv6Prefix4/64 + - IPv6Prefix10/64 to IPv6Prefix5/64 + - Expectations: + - All traffic must be successful


+ +**RT-3.33.2: Traffic from ATE2:Port1 to ATE1:Port1 Prefix 1 migrated to Non-Default VRF using the VRF selection policy.** + * ATE2 sends following IPv4 and IPv6 flows: + * IPv4Prefix6/24 to IPv4Prefix1/24 + * IPv4Prefix7/24 to IPv4Prefix2/24 + * IPv4Prefix8/24 to IPv4Prefix3/24 + * IPv4Prefix9/24 to IPv4Prefix4/24 + * IPv4Prefix10/24 to IPv4Prefix5/24 + * IPv6Prefix6/64 to IPv6Prefix1/64 + * IPv6Prefix7/64 to IPv6Prefix2/64 + * IPv6Prefix8/64 to IPv6Prefix3/64 + * IPv6Prefix9/64 to IPv6Prefix4/64 + * IPv6Prefix10/64 to IPv6Prefix5/64 * DUT has the following VRF selection policy - * Statement1: Traffic matching any IPv4Prefix6/24 and IPv6Prefix6/64 with DSCP value BE1 -IPv4Prefix7/24 and IPv6Prefix7/64 with DSCP value AF1, IPv4Prefix8/24 and IPv6Prefix8/64 with DSCP value AF2, IPv4Prefix9/24 and IPv6Prefix9/64 with DSCP value AF3, IPv4Prefix10/24 and IPv6Prefix10/64 with DSCP value AF4 Punt to default vrf
+ * Statement1: traffic matching IPv4Prefix1/24 & IPv6Prefix1/64, Punt to Non-default vrf + * Statement2: traffic matching IPv4Prefix2/24 & IPv6Prefix2/64, Punt to default vrf + * Statement3: traffic matching IPv4Prefix3/24 & IPv6Prefix3/64, Punt to default vrf + * Statement4: traffic matching IPv4Prefix4/24 & IPv6Prefix4/64, Punt to default vrf + * Statement5: traffic matching IPv4Prefix5/24 & IPv6Prefix5/64, Punt to default vrf + * Statement6: traffic matching IPv4Prefix6/24 & IPv6Prefix6/64, Punt to default vrf + * DUT must also leak all the routes from the Default VRF to the non-default VRF * Expectations: - * All traffic received in the Default VRF destined for IPv4Prefix6/24 and IPv6Prefix6/64 with DSCP value BE1 -IPv4Prefix7/24 and IPv6Prefix7/64 with DSCP value AF1, IPv4Prefix8/24 and IPv6Prefix8/64 with DSCP value AF2, IPv4Prefix9/24 and IPv6Prefix9/64 with DSCP value AF3, IPv4Prefix10/24 and IPv6Prefix10/64 with DSCP value AF4 is punted to Default VRF and sent back to ATE2:Port2 based on LPM lookup of EBGP learnt routes. - - * Run post test Health checks above to ensure no anomalies


- - - -## To Dos: - -Following paths yet to be defied in Yang - - 1. `/network-instances/network-instance/inter-instance-policies` is missing option to configure "export-to" or "import-from" VRF` - - 2. Configuring the IPv4oUDP encapsulation/decapsulation is dependent on the proposal in https://github.com/openconfig/public/pull/1153

- - -## OpenConfig Path and RPC Coverage -```yaml -paths: - # Policy for route leaking between VRFs - /network-instances/network-instance/inter-instance-policies/apply-policy - # Following applied in Default VRF - /network-instances/network-instance/inter-instance-policies/apply-policy/config/export-policy - # Following applied in Non-default VRF - /network-instances/network-instance/inter-instance-policies/apply-policy/config/import-policy - - # Config for VRF selection - # Create different VRFs: "Default or Non-default" - /network-instances/network-instance/config/name: - # Create VRF seletion policy with different rules that match on desination-prefix-set as first rule and then few other rules to match different Traffic-classes that determine BE1 to AF4 traffic - /network-instances/network-instance/policy-forwarding/policies/policy-id: - /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/config/destination-address-prefix-set: - /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/config/dscp-set: - /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6/config/dscp-set: - - # Action that sets the VRF for matching conditions. - /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/config/network-instance: - - # Creating the Prefix-Set required for the above VRF selection policy - /routing-policy/defined-sets/prefix-sets/prefix-set/name: - /routing-policy/defined-sets/prefix-sets/prefix-set/config/name: - /routing-policy/defined-sets/prefix-sets/prefix-set/prefixes/prefix/config/ip-prefix: - /routing-policy/defined-sets/prefix-sets/prefix-set/prefixes/prefix/config/masklength-range: - - # Apply VRF selection policy as per the Test procedure above - /network-instances/network-instance/policy-forwarding/interfaces/interface/config/apply-vrf-selection-policy: - - # BGP configuration at the neighbor and peer-group levels - /network-instances/network-instance/protocols/protocol/bgp/neighbors/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 - - # BGP Policy definition for sharing of routes between IBGP and EBGP - /routing-policy/policy-definitions/policy-definition/config/name - /routing-policy/policy-definitions/policy-definition/statements/statement/config/name - /routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-prefix-set/config/prefix-set - /routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-prefix-set/config/match-set-options - /routing-policy/policy-definitions/policy-definition/statements/statement/actions/config/policy-result/ACCEPT_ROUTE - - # Static route for VPNH for routes learnt via BGP. Routes MUST be in Default VRF and Protocol is Static - /network-instances/network-instance/protocols/protocol/static-routes/static/config/prefix: - /network-instances/network-instance/protocols/protocol/static-routes/ipv4/route/next-hops/next-hop/config/index - /network-instances/network-instance/protocols/protocol/static-routes/ipv4/route/next-hops/next-hop/config/next-hop - - # Next-hop defined in the Static route above must lead to a IPv4oUDP encap to a destination learnt via EBGP - - - # Config for policy-based Decap of IPv4oUDP packets - /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/config/destination-address-prefix-set - /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/config/decapsulate-gue - - # State Paths: - # Folliwing for normal health check pre and post each test - /system/processes/process/state/cpu-utilization - /system/processes/process/state/memory-utilization - /qos/interfaces/interface/input/queues/queue/state/dropped-pkts - /qos/interfaces/interface/output/queues/queue/state/dropped-pkts - /qos/interfaces/interface/input/virtual-output-queues/voq-interface/queues/queue/state/dropped-pkts - /interfaces/interface/state/counters/in-discards - /interfaces/interface/state/counters/in-errors - /interfaces/interface/state/counters/in-multicast-pkts - /interfaces/interface/state/counters/in-unknown-protos - /interfaces/interface/state/counters/out-discards - /interfaces/interface/state/counters/out-errors - /interfaces/interface/state/oper-status - /interfaces/interface/state/admin-status - /interfaces/interface/state/counters/out-octets - /interfaces/interface/state/description - /interfaces/interface/state/type - /interfaces/interface/subinterfaces/subinterface/state/counters/in-discards - /interfaces/interface/subinterfaces/subinterface/state/counters/in-errors - /interfaces/interface/subinterfaces/subinterface/state/counters/in-unknown-protos - /interfaces/interface/subinterfaces/subinterface/state/counters/out-discards - /interfaces/interface/subinterfaces/subinterface/state/counters/out-errors - /interfaces/interface/ethernet/state/counters/in-mac-pause-frames - /interfaces/interface/ethernet/state/counters/out-mac-pause-frames - /interfaces/interface/ethernet/state/counters/in-crc-errors - /interfaces/interface/ethernet/state/counters/in-block-errors - - # IPv4oUDP Decap state - /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/state/decapsulate-gue - - # BGP state paths - /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/session-state - /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/received-prefixes - /network-instances/network-instance/protocols/protocol[identifier='BGP']/bgp/neighbors/neighbor/state/advertised-prefixes - /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/peer-as - - # Packet counters matching forwarding rules for IPv4oUDP Decap - /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/state/counters/forwarded-packets - /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/state/counters/dropped-packets - /network-instances/network-instance[name='']/policy-forwarding/state/active-policy - /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/state/next-hop - - - -rpcs: - gnmi: - gNMI.Set: - union_replace: true - gNMI.Subscribe: - on_change: true -``` -## Required DUT platform -* Specify the minimum DUT-type: - * MFF - A modular form factor device containing LINECARDs, FABRIC and redundant CONTROLLER_CARD components - * FFF - fixed form factor - - - - - + * Traffic for Prefix 1 received from ATE2:Port1 once punted to non-defailt VRF by the VRF selection policy, must be received by ATE1:Port1 + * Traffic sent by ATE2:Port1 must be routed to ATE1:Port1 via the DEFAULT VRF in the DUT.


+ +**RT-3.33.3 to RT-3.33.6: Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy.** +Follow the steps in RT-3.31.2 above to gradually move different traffic flows from the Default VRF to the Non-Defailt in the following sequence: + + * RT-3.33.3 Prefix 1-2 Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy. + VRF selection policy on DUT:Port2 changes as follows: + * Statement1: traffic matching IPv4Prefix1/24 & IPv6Prefix1/64, Punt to Non-default vrf + * Statement2: traffic matching IPv4Prefix2/24 & IPv6Prefix2/64, Punt to Non-default vrf + * Statement3: traffic matching IPv4Prefix3/24 & IPv6Prefix3/64, Punt to default vrf + * Statement4: traffic matching IPv4Prefix4/24 & IPv6Prefix4/64, Punt to default vrf + * Statement5: traffic matching IPv4Prefix5/24 & IPv6Prefix5/64, Punt to default vrf + * Statement6: traffic matching IPv4Prefix6/24 & IPv6Prefix6/64, Punt to default vrf

+ * RT-3.33.4 Prefix 1-3 Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy. + VRF selection policy on DUT:Port2 changes as follows: + * Statement1: traffic matching IPv4Prefix1/24 & IPv6Prefix1/64, Punt to Non-default vrf + * Statement2: traffic matching IPv4Prefix2/24 & IPv6Prefix2/64, Punt to Non-default vrf + * Statement3: traffic matching IPv4Prefix3/24 & IPv6Prefix3/64, Punt to Non-default vrf + * Statement4: traffic matching IPv4Prefix4/24 & IPv6Prefix4/64, Punt to default vrf + * Statement5: traffic matching IPv4Prefix5/24 & IPv6Prefix5/64, Punt to default vrf + * Statement6: traffic matching IPv4Prefix6/24 & IPv6Prefix6/64, Punt to default vrf

+ * RT-3.31.5 Prefix 1-4 Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy. + VRF selection policy on DUT:Port2 changes as follows: + * Statement1: traffic matching IPv4Prefix1/24 & IPv6Prefix1/64, Punt to Non-default vrf + * Statement2: traffic matching IPv4Prefix2/24 & IPv6Prefix2/64, Punt to Non-default vrf + * Statement3: traffic matching IPv4Prefix3/24 & IPv6Prefix3/64, Punt to Non-default vrf + * Statement4: traffic matching IPv4Prefix4/24 & IPv6Prefix4/64, Punt to Non-default vrf + * Statement5: traffic matching IPv4Prefix5/24 & IPv6Prefix5/64, Punt to default vrf + * Statement6: traffic matching IPv4Prefix6/24 & IPv6Prefix6/64, Punt to default vrf

+ * RT-3.31.6 Prefix 1-5 Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy. + VRF selection policy on DUT:Port2 changes as follows: + * Statement1: traffic matching IPv4Prefix1/24 & IPv6Prefix1/64, Punt to Non-default vrf + * Statement2: traffic matching IPv4Prefix2/24 & IPv6Prefix2/64, Punt to Non-default vrf + * Statement3: traffic matching IPv4Prefix3/24 & IPv6Prefix3/64, Punt to Non-default vrf + * Statement4: traffic matching IPv4Prefix4/24 & IPv6Prefix4/64, Punt to Non-default vrf + * Statement5: traffic matching IPv4Prefix5/24 & IPv6Prefix5/64, Punt to Non-default vrf + * Statement6: traffic matching IPv4Prefix6/24 & IPv6Prefix6/64, Punt to default vrf

+ * RT-3.31.7 Prefix 1-6 Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy. + VRF selection policy on DUT:Port2 changes as follows: + * Statement1: traffic matching IPv4Prefix1/24 & IPv6Prefix1/64, Punt to Non-default vrf + * Statement2: traffic matching IPv4Prefix2/24 & IPv6Prefix2/64, Punt to Non-default vrf + * Statement3: traffic matching IPv4Prefix3/24 & IPv6Prefix3/64, Punt to Non-default vrf + * Statement4: traffic matching IPv4Prefix4/24 & IPv6Prefix4/64, Punt to Non-default vrf + * Statement5: traffic matching IPv4Prefix5/24 & IPv6Prefix5/64, Punt to Non-default vrf + * Statement6: traffic matching IPv4Prefix6/24 & IPv6Prefix6/64, Punt to default vrf

+ * Expectations are the same for traffic routed via the Default and the Non-Default VRFs on the DUT. From 7d16dec72bc61f67c9184ad4679fca7c91af887c Mon Sep 17 00:00:00 2001 From: Lakshmana Varahabhotla <77013369+vvlakshmanamurthy@users.noreply.github.com> Date: Wed, 9 Oct 2024 09:39:26 -0500 Subject: [PATCH 3/5] Update README.md Updated the test case numbers. --- .../README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md b/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md index b3cd9e3a633..430f955f8d9 100644 --- a/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md +++ b/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md @@ -116,7 +116,7 @@ In this case ATE2:Port1 simulates the regular flows from ATE2:Port1 as stated ab * Traffic for Prefix 1 received from ATE2:Port1 once punted to non-defailt VRF by the VRF selection policy, must be received by ATE1:Port1 * Traffic sent by ATE2:Port1 must be routed to ATE1:Port1 via the DEFAULT VRF in the DUT.


-**RT-3.33.3 to RT-3.33.6: Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy.** +**RT-3.33.3 to RT-3.33.7: Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy.** Follow the steps in RT-3.31.2 above to gradually move different traffic flows from the Default VRF to the Non-Defailt in the following sequence: * RT-3.33.3 Prefix 1-2 Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy. @@ -158,5 +158,5 @@ Follow the steps in RT-3.31.2 above to gradually move different traffic flows fr * Statement3: traffic matching IPv4Prefix3/24 & IPv6Prefix3/64, Punt to Non-default vrf * Statement4: traffic matching IPv4Prefix4/24 & IPv6Prefix4/64, Punt to Non-default vrf * Statement5: traffic matching IPv4Prefix5/24 & IPv6Prefix5/64, Punt to Non-default vrf - * Statement6: traffic matching IPv4Prefix6/24 & IPv6Prefix6/64, Punt to default vrf

+ * Statement6: traffic matching IPv4Prefix6/24 & IPv6Prefix6/64, Punt to Non-default vrf

* Expectations are the same for traffic routed via the Default and the Non-Default VRFs on the DUT. From 03929a8bf00a48467b8fda340e9d2fc371fd171e Mon Sep 17 00:00:00 2001 From: Lakshmana Varahabhotla <77013369+vvlakshmanamurthy@users.noreply.github.com> Date: Wed, 9 Oct 2024 10:05:11 -0500 Subject: [PATCH 4/5] Update README.md Updated the TC number to PF-1.6.x --- .../README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md b/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md index 430f955f8d9..769370b2bd2 100644 --- a/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md +++ b/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md @@ -75,7 +75,7 @@ B2 <-- EBGP(ASN100:ASN200) --> C1; - IPv6Prefix10/64 to IPv6Prefix5/64 -**RT-3.33.1: [Baseline] Default VRF for all flows. Regular traffic.** +**PF-1.6.1: [Baseline] Default VRF for all flows. Regular traffic.** In this case ATE2:Port1 simulates the regular flows from ATE2:Port1 as stated above. * ATE2 sends following IPv4 and IPv6 flows: @@ -92,7 +92,7 @@ In this case ATE2:Port1 simulates the regular flows from ATE2:Port1 as stated ab - Expectations: - All traffic must be successful


-**RT-3.33.2: Traffic from ATE2:Port1 to ATE1:Port1 Prefix 1 migrated to Non-Default VRF using the VRF selection policy.** +**PF-1.6.2: Traffic from ATE2:Port1 to ATE1:Port1 Prefix 1 migrated to Non-Default VRF using the VRF selection policy.** * ATE2 sends following IPv4 and IPv6 flows: * IPv4Prefix6/24 to IPv4Prefix1/24 * IPv4Prefix7/24 to IPv4Prefix2/24 @@ -116,10 +116,10 @@ In this case ATE2:Port1 simulates the regular flows from ATE2:Port1 as stated ab * Traffic for Prefix 1 received from ATE2:Port1 once punted to non-defailt VRF by the VRF selection policy, must be received by ATE1:Port1 * Traffic sent by ATE2:Port1 must be routed to ATE1:Port1 via the DEFAULT VRF in the DUT.


-**RT-3.33.3 to RT-3.33.7: Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy.** -Follow the steps in RT-3.31.2 above to gradually move different traffic flows from the Default VRF to the Non-Defailt in the following sequence: +**PF-1.6.3 to PF-1.6.7: Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy.** +Follow the steps in PF-1.6.2 above to gradually move different traffic flows from the Default VRF to the Non-Defailt in the following sequence: - * RT-3.33.3 Prefix 1-2 Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy. + * PF-1.6.3 Prefix 1-2 Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy. VRF selection policy on DUT:Port2 changes as follows: * Statement1: traffic matching IPv4Prefix1/24 & IPv6Prefix1/64, Punt to Non-default vrf * Statement2: traffic matching IPv4Prefix2/24 & IPv6Prefix2/64, Punt to Non-default vrf @@ -127,7 +127,7 @@ Follow the steps in RT-3.31.2 above to gradually move different traffic flows fr * Statement4: traffic matching IPv4Prefix4/24 & IPv6Prefix4/64, Punt to default vrf * Statement5: traffic matching IPv4Prefix5/24 & IPv6Prefix5/64, Punt to default vrf * Statement6: traffic matching IPv4Prefix6/24 & IPv6Prefix6/64, Punt to default vrf

- * RT-3.33.4 Prefix 1-3 Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy. + * PF-1.6.4 Prefix 1-3 Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy. VRF selection policy on DUT:Port2 changes as follows: * Statement1: traffic matching IPv4Prefix1/24 & IPv6Prefix1/64, Punt to Non-default vrf * Statement2: traffic matching IPv4Prefix2/24 & IPv6Prefix2/64, Punt to Non-default vrf @@ -135,7 +135,7 @@ Follow the steps in RT-3.31.2 above to gradually move different traffic flows fr * Statement4: traffic matching IPv4Prefix4/24 & IPv6Prefix4/64, Punt to default vrf * Statement5: traffic matching IPv4Prefix5/24 & IPv6Prefix5/64, Punt to default vrf * Statement6: traffic matching IPv4Prefix6/24 & IPv6Prefix6/64, Punt to default vrf

- * RT-3.31.5 Prefix 1-4 Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy. + * PF-1.6.5 Prefix 1-4 Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy. VRF selection policy on DUT:Port2 changes as follows: * Statement1: traffic matching IPv4Prefix1/24 & IPv6Prefix1/64, Punt to Non-default vrf * Statement2: traffic matching IPv4Prefix2/24 & IPv6Prefix2/64, Punt to Non-default vrf @@ -143,7 +143,7 @@ Follow the steps in RT-3.31.2 above to gradually move different traffic flows fr * Statement4: traffic matching IPv4Prefix4/24 & IPv6Prefix4/64, Punt to Non-default vrf * Statement5: traffic matching IPv4Prefix5/24 & IPv6Prefix5/64, Punt to default vrf * Statement6: traffic matching IPv4Prefix6/24 & IPv6Prefix6/64, Punt to default vrf

- * RT-3.31.6 Prefix 1-5 Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy. + * PF-1.6.6 Prefix 1-5 Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy. VRF selection policy on DUT:Port2 changes as follows: * Statement1: traffic matching IPv4Prefix1/24 & IPv6Prefix1/64, Punt to Non-default vrf * Statement2: traffic matching IPv4Prefix2/24 & IPv6Prefix2/64, Punt to Non-default vrf @@ -151,7 +151,7 @@ Follow the steps in RT-3.31.2 above to gradually move different traffic flows fr * Statement4: traffic matching IPv4Prefix4/24 & IPv6Prefix4/64, Punt to Non-default vrf * Statement5: traffic matching IPv4Prefix5/24 & IPv6Prefix5/64, Punt to Non-default vrf * Statement6: traffic matching IPv4Prefix6/24 & IPv6Prefix6/64, Punt to default vrf

- * RT-3.31.7 Prefix 1-6 Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy. + * PF-1.6.7 Prefix 1-6 Traffic from ATE2:Port1 to ATE1:Port1 migrated to Non-Default VRF using the VRF selection policy. VRF selection policy on DUT:Port2 changes as follows: * Statement1: traffic matching IPv4Prefix1/24 & IPv6Prefix1/64, Punt to Non-default vrf * Statement2: traffic matching IPv4Prefix2/24 & IPv6Prefix2/64, Punt to Non-default vrf From c1ea778565bc69bfb395ae227a3c4f0c20bc3dd7 Mon Sep 17 00:00:00 2001 From: Lakshmana Varahabhotla <77013369+vvlakshmanamurthy@users.noreply.github.com> Date: Thu, 10 Oct 2024 10:08:31 -0500 Subject: [PATCH 5/5] Update README.md Updated all the suggested changes and resolved the comments . --- .../README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md b/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md index 769370b2bd2..578c0f40981 100644 --- a/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md +++ b/feature/experimental/policy/policy_vrf_selection/otg_tests/policy_based_traffic_steering_default_to_nondefault/README.md @@ -1,10 +1,10 @@ +# PF-1.6: Policy forwarding based GUE tunnel decap to default and non-default network-instance ## Summary This test ensures NOS is able to host multiple VRFs, perform GUE tunnel DECAP in the default VRF and also allows for gradual traffic migration from Default to Non-Default VRF using VRF selection policy. -## Procedure -Test environment setup +## Test environment setup ### Topology Create the following connections: @@ -75,7 +75,8 @@ B2 <-- EBGP(ASN100:ASN200) --> C1; - IPv6Prefix10/64 to IPv6Prefix5/64 -**PF-1.6.1: [Baseline] Default VRF for all flows. Regular traffic.** +## Procedure +### PF-1.6.1: [Baseline] Default VRF for all flows with regular traffic profile In this case ATE2:Port1 simulates the regular flows from ATE2:Port1 as stated above. * ATE2 sends following IPv4 and IPv6 flows: @@ -92,7 +93,7 @@ In this case ATE2:Port1 simulates the regular flows from ATE2:Port1 as stated ab - Expectations: - All traffic must be successful


-**PF-1.6.2: Traffic from ATE2:Port1 to ATE1:Port1 Prefix 1 migrated to Non-Default VRF using the VRF selection policy.** +### PF-1.6.2: Traffic from ATE2:Port1 to ATE1:Port1 Prefix 1 migrated to Non-Default VRF using the VRF selection policy * ATE2 sends following IPv4 and IPv6 flows: * IPv4Prefix6/24 to IPv4Prefix1/24 * IPv4Prefix7/24 to IPv4Prefix2/24