|
| 1 | +# **Next Hop Split Test Plan** |
| 2 | + |
| 3 | + - [Introduction](#introduction) |
| 4 | + - [Scope](#scope) |
| 5 | + - [Test Setup](#test-setup) |
| 6 | + - [Test Cases](#test-cases) |
| 7 | + |
| 8 | +# Introduction |
| 9 | + |
| 10 | +This is the test plan for the next hop group split enhancement |
| 11 | + |
| 12 | +The PR covered in this test plan is [Next hop group split HLD PR 712](https://github.com/Azure/SONiC/pull/712) |
| 13 | + |
| 14 | +## Scope |
| 15 | + |
| 16 | +This test plan covers a new method of programming routes into APP_DB, where the next hop information is included in a separate NEXT_HOP_GROUP_TABLE referenced by the ROUTE_TABLE and LABEL_ROUTE_TABLE. |
| 17 | + |
| 18 | +There is no support in the BGP container/fpmsyncd for this feature, so routes and next hop groups are all programmed directly into APP_DB by the test scripts. |
| 19 | + |
| 20 | +# Test Setup |
| 21 | + |
| 22 | +These test cases will be run in the T0 topology. |
| 23 | + |
| 24 | +# Test Cases |
| 25 | + |
| 26 | +The methods used to support these test cases will be very similar to the methods in test_static_route.py (for adding IP addresses and routes and for checking traffic). |
| 27 | + |
| 28 | +## Test Case 1. IPv4 routes |
| 29 | + |
| 30 | +### Test Objective |
| 31 | +Verify that IPv4 routes and next hop groups can be programmed and cause the correct data plane behaviour. |
| 32 | + |
| 33 | +### Test Steps |
| 34 | +* Create an IPv4 next hop group with a single next hop |
| 35 | +* Create an IPv4 prefix route referencing the next hop |
| 36 | +* Create an IPv4 next hop group with multiple next hops |
| 37 | +* Update the route to reference the new next hop group |
| 38 | + |
| 39 | +### Pass/Fail Criteria |
| 40 | +* After the route is created verify that traffic for the prefix is routed via the next hop |
| 41 | +* After the route is updated verify that traffic for the prefix is routed via a next hop in the group |
| 42 | + |
| 43 | +## Test Case 2. IPv6 routes |
| 44 | + |
| 45 | +### Test Objective |
| 46 | +Verify that IPv4 routes and next hop groups can be programmed and cause the correct data plane behaviour. |
| 47 | + |
| 48 | +### Test Steps |
| 49 | +* Create an IPv6 next hop group with a single next hop |
| 50 | +* Create an IPv6 prefix route referencing the next hop |
| 51 | +* Create an IPv6 next hop group with multiple next hops |
| 52 | +* Update the route to reference the new next hop group |
| 53 | + |
| 54 | +### Pass/Fail Criteria |
| 55 | +* After the route is created verify that traffic for the prefix is routed via the next hop |
| 56 | +* After the route is updated verify that traffic for the prefix is routed via a next hop in the group |
| 57 | + |
| 58 | +## Test Case 3. MPLS routes |
| 59 | + |
| 60 | +### Test Objective |
| 61 | +Verify that MPLS routes and next hop groups can be programmed and cause the correct data plane behaviour. |
| 62 | + |
| 63 | +### Test Steps |
| 64 | +* Create an IPv4 next hop group with a single labeled next hop |
| 65 | +* Create a label route referencing the next hop |
| 66 | +* Create an IPv4 next hop group with multiple labeled next hops |
| 67 | +* Update the label route to reference the new next hop group |
| 68 | + |
| 69 | +### Pass/Fail Criteria |
| 70 | +* After the route is created verify that traffic for the prefix is routed via the next hop |
| 71 | +* After the route is updated verify that traffic for the prefix is routed via a next hop in the group |
0 commit comments