diff --git a/TestPlans/routing/IPSLA/IP_SLA_Testplan.md b/TestPlans/routing/IPSLA/IP_SLA_Testplan.md new file mode 100644 index 000000000000..6e31f65adf66 --- /dev/null +++ b/TestPlans/routing/IPSLA/IP_SLA_Testplan.md @@ -0,0 +1,414 @@ +# SQA Test Plan +# IP SLA +# SONiC 3.0.1 Project and Buzznik Plus Release +[TOC] +# Test Plan Revision History +| Rev | Date | Author | Change Description | +|:---:|:-----------:|:------------------:|-----------------------------| +| 0.1 | 06/22/2019 | Nagappa Chincholi | Initial version | + +# List of Reviewers +| Function | Name | +|:---:|:-----------:| +| | | + +# List of Approvers +| Function | Name | Date Approved| +|:---:|:-----------:|:------------------:| +| | | | + +# Definition/Abbreviation +| **Term** | **Meaning** | +| -------- | ------------------------------- | +| ICMP | Internet Control Message Protocol | +| SLA | Service Level Agreement | +| TCP | Transmission Control Protocol | +| PBR | Policy Based Routing | + + +# Feature Overview +Services (e.g. TCP optimizer, Firewall, etc.) in the network are provisioned with some level of redundancy. And routers are required to conditionally forward traffic towards those services based on availability of the services. ICMP and TCP SLA track features provide periodic reachability check for the tracked services and conditionally install or uninstall static route(s) toward the service based on the health and liveliness of the service being tracked. + +# 1 Test Focus Areas +## 1.1 Functional Testing + - All CLI and debug commands + - Scaling with max supported IP SLA of 50 ICMP-Echo target or 50 TCP-Connect target + - Test on default and user VRFs +## 1.2 Negative Testing + - Link flaps + - Reload/kill daemon + - Withdraw/advertise routes + - Clear bgp neighbors/clear ipv4/v6 route table/clear arp/clear mac + - Warm reboot + - Fast reboot + - Config save and reload + - Stress test + +## 1.3 Scale and Performance Testing + +# 2 Topologies +## 2.1 Topology 1 +#### +![IP SLA](Topology1.PNG "Figure 1: IP SLA") +## 2.2 Topology 2 + +![IP SLA](Topology2.PNG "Figure 2: IP SLA with MLAG") + +# 3 Test Case and Objectives +## 3.1 CLI +### 3.1.1 Verify cli command to configure ip sla for icmp-echo and sub options + +| **Test ID** | **FtOpSoRoIpSlaCli001** | +|--------|:----------------| +| **Test Name** | **Verify cli command to configure ip sla for icmp-echo and sub options.** | +| **Test Setup** | **Topology1** | +| **Type** | **CLI** | +| **Steps** | **1) Verify help strings are displayed while enabling ip sla mode in cli mode
2) Verify sub options source-address, source-interface, request-data-size are availble and verify running-config** | + +### 3.1.2 Verify cli command to configure ip sla for tcp-connect and sub options + +| **Test ID** | **FtOpSoRoIpSlaCli002** | +|--------|:----------------| +| **Test Name** | **Verify cli command to configure ip sla for tcp-connect and sub options.** | +| **Test Setup** | **Topology1** | +| **Type** | **CLI** | +| **Steps** | **1) Verify help strings are displayed for ip sla sub options
2) Verify sub options source-address, source-port are availble and verify running-config** | + +### 3.1.3 Verify cli command to configure ip sla options - frequency, threshold and timeout + +| **Test ID** | **FtOpSoRoIpSlaCli003** | +|--------|:----------------| +| **Test Name** | **Verify cli command to configure ip sla for tcp-connect and sub options.** | +| **Test Setup** | **Topology1** | +| **Type** | **CLI** | +| **Steps** | **1) Verify help strings are displayed.
2) Verify options frequency, threshold ad timeout are availble and verify running-config.
3) Verify boundary values.** | + +## 3.2 Functional +### 3.2.1 Track ICMP-Echo target + +| **Test ID** | **FtOpSoRoIpSlaFt001** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify ip sla to track icmp-echo target.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip sla to track icmp-echo target
2) Map ip sla to a static route
3) Verify ip sla state
4) Verify configured/default ip sla parameters using 'show ip sla #' command.
5) Verify static route is installed if the target is reachable
6) Send L3 data traffic and verify
7) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts. | + +### 3.2.2 Track TCP-Connect target + +| **Test ID** | **FtOpSoRoIpSlaFt002** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify ip sla to track tcp-connect target.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip sla to track tcp-connect target
2) Map ip sla to a static route
3) Verify ip sla state
4) Verify configured/default ip sla parameters using 'show ip sla #' command.
5) Verify static route is installed if the target is reachable
6) Send L3 data traffic and verify
7) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
8) Bring back the target and verify after configured/default threshold route is reinstalled.| + +### 3.2.3 Track TCP-Connect target + +| **Test ID** | **FtOpSoRoIpSlaFt003** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify ip sla to track tcp-connect target.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip sla to track tcp-connect target. Test for both ssh tcp port 22 and bgp port 179
2) Map ip sla to a static route
3) Verify ip sla state
4) Verify configured/default ip sla parameters using 'show ip sla #' command.
5) Verify static route is installed if the target is reachable
6) Send L3 data traffic and verify
7) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
8) Bring back the target and verify after configured/default threshold route is reinstalled. | + +### 3.2.4 Switch between SLAs + +| **Test ID** | **FtOpSoRoIpSlaFt004** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Switch between SLAs** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure icmp-echo and tcp-connect IP SLAs
2) Map ip sla icmp-echo to a static route
3) Verify ip sla state
4) Verify static route is installed if the target is reachable.
5) Unconfigure and reconfigure tcp-connect ip sla.
6) Verify static route is installed if the target is reachable
7) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
8) Bring back the target and verify after configured/default threshold route is reinstalled.| + +### 3.2.5 ICMP-Echo target in user vrf + +| **Test ID** | **FtOpSoRoIpSlaFt005** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify icmp-echo target in user vrf.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip sla to track icmp-echo target in user defined vrf
2) Map ip sla to a static route under a vrf
3) Verify ip sla state
4) Verify configured/default ip sla parameters using 'show ip sla #' command.
5) Verify static route is installed if the target is reachable
6) Send L3 data traffic and verify
7) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
8) Bring back the target and verify after configured/default threshold route is reinstalled. | + +### 3.2.6 TCP-Connect target in user vrf + +| **Test ID** | **FtOpSoRoIpSlaFt006** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify icmp-echo target in user vrf.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip sla to track tcp-connect target in user defined vrf
2) Map ip sla to a static route under a vrf
3) Verify ip sla state
4) Verify configured/default ip sla parameters using 'show ip sla #' command.
5) Verify static route is installed if the target is able to bring up tcp connection.
6) Send L3 data traffic and verify
7) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
8) Bring back the target and verify after configured/default threshold route is reinstalled. | + + +### 3.2.7 ICMP-Echo and tcp-connect target with different frequency and threshold values + +| **Test ID** | **FtOpSoRoIpSlaFt007** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** ICMP-Echo and tcp-connect target with different frequency and threshold values.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip slas to track icmp-echo and tcp-connect targets in default and user defined vrf
2) Map ip sla to a static route under a vrf
3) Verify ip sla state
4) configure max frequency and minimum threshold value.
5) Verify icmp and tcp connect are sent at configured frequency
6) When the target is not reachable.
7) Bring down the target and verify static route is uninstalled after configured threshold number of unsuccessful attempts.
8) Bring back the target and verify after configured threshold route is reinstalled. | + +### 3.2.8 ICMP-Echo target with source interface + +| **Test ID** | **FtOpSoRoIpSlaFt008** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify icmp-echo target with source interface configured.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip slas to track icmp-echo target in default and user defined vrf
2) Map ip sla to a static route under a vrf
3) Verify ip sla state
4) Verify with different source interfaces - Vlan, Portchannel, physical port.
5) Verify static route is installed if the target is reachable
6) Send L3 data traffic and verify
7) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
8) Bring back the target and verify after configured/default threshold route is reinstalled. | + +### 3.2.9 ICMP-Echo and TCP-Connect target with source address + +| **Test ID** | **FtOpSoRoIpSlaFt009** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify icmp-echo target with source interface configured.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip slas to track icmp-echo and tcp-connect target in default and user defined vrf
2) Map ip sla to a static route under a vrf
3) Verify ip sla state
4) Configure a source address from which target is not reachable .
5) Verify static route is not installed
6) Reconfigured valid source address and verify static route is installed.
7) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
8) Bring back the target and verify after configured/default threshold route is reinstalled. | + +### 3.2.10 ICMP-Echo target with different request-data-size + +| **Test ID** | **FtOpSoRoIpSlaFt010** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify icmp-echo target with source interface configured.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip slas to track icmp-echo target in default and user defined vrf
2) Map ip sla to a static route under a vrf
3) Verify ip sla state
4) Configure a request-data-size as 28.
5) Verify static route is installed
6) Reconfigure max request-data-size and verify static route is installed.
7) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
8) Bring back the target and verify after configured/default threshold route is reinstalled. | + +### 3.2.11 ICMP-Echo and tcp-connect target with different ttl and tos values + +| **Test ID** | **FtOpSoRoIpSlaFt011** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** ICMP-Echo and tcp-connect target with different ttl and tos values.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip slas to track icmp-echo and tcp-connect targets in default and user defined vrf
2) Map ip sla to a static route under a vrf
3) Verify ip sla state
4) configure ttl and tos values.
5) Verify static route is installed
6) Reconfigure ttl and tos and verify configured values.
7) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
8) Bring back the target and verify after configured/default threshold route is reinstalled. | + +### 3.2.12 Verify IP SLA with target reachability via default IPv6 route + +| **Test ID** | **FtOpSoRoIpSlaFt012** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** ICMP-Echo and tcp-connect target with different ttl and tos values.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip slas to track icmp-echo and tcp-connect targets in default and user defined vrf
2) Map ip sla to a static route under a vrf
3) Enable target reachability via default ipv6 route
4) verify ip sla state.
5) Verify static route is installed
6) Reconfigure reachability via IPv6 link-local and verify static route is installed.
7) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
8) Bring back the target and verify after configured/default threshold route is reinstalled. | + +### 3.2.13 Verify IP SLA with target reachability via connected and static routes + +| **Test ID** | **FtOpSoRoIpSlaFt013** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** ICMP-Echo and tcp-connect target with different ttl and tos values.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip slas to track icmp-echo and tcp-connect targets in default and user defined vrf
2) Map ip sla to a static route under a vrf
3) Enable target reachability via connected route
4) verify ip sla state.
5) Verify static route is installed
6) Reconfigure reachability via static route and verify static route is installed.
7) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
8) Bring back the target and verify after configured/default threshold route is reinstalled. | + +### 3.2.14 Verify IP SLA with target reachability via bgp and ospf routes + +| **Test ID** | **FtOpSoRoIpSlaFt014** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** ICMP-Echo and tcp-connect target with different ttl and tos values.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip slas to track icmp-echo and tcp-connect targets in default and user defined vrf
2) Map ip sla to a static route under a vrf
3) Enable target reachability via bgp route
4) verify ip sla state.
5) Verify static route is installed
6) Reconfigure reachability via ospf route and verify static route is installed.
7) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
8) Bring back the target and verify after configured/default threshold route is reinstalled. | + +### 3.2.15 Verify IP SLA with target reachability via leaked routes + +| **Test ID** | **FtOpSoRoIpSlaFt015** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** ICMP-Echo and tcp-connect target with different ttl and tos values.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip slas to track icmp-echo and tcp-connect targets in default and user defined vrf
2) Map ip sla to a static route under a vrf
3) Enable target reachability via vrf leaked routes
4) verify ip sla state.
5) Verify static route is installed
/>6) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
7) Bring back the target and verify after configured/default threshold route is reinstalled. | + +### 3.2.16 Verify ip sla history + +| **Test ID** | **FtOpSoRoIpSlaFt016** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify ip sla history** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure icmp-echo and tcp-connect IP SLAs
2) Map ip slas to static routes
3) Verify ip sla states
4) Verify static routes installed if the targets are reachable.
5) Configure user vrf routes and map to slas .
6) Flap the routes.
7) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
8) Verify ip sla history is updated.| + +### 3.2.17 Verify IP SLA with MLAG + +| **Test ID** | **FtOpSoRoIpSlaFt017** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** ICMP-Echo and tcp-connect target with different ttl and tos values.** | +| **Test Setup** | **Topology2** | +| **Type** | **Functional** | +| **Steps** | 1) Configure MLAG as per topology.
2)Configure ip slas to track icmp-echo and tcp-connect targets in default and user defined vrf via mlag nodes.
2) Map ip sla to a static route under a vrf
3) Enable target reachability via default ipv6 route
4) verify ip sla state.
5) Verify static route is installed
6) Reconfigure reachability via IPv6 link-local and verify static route is installed.
7) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
8) Bring back the target and verify after configured/default threshold route is reinstalled. | + +### 3.2.18 Verify IP SLA with ACL Config for assigning CIR/PIR + +| **Test ID** | **FtOpSoRoIpSlaFt018** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** Verify IP SLA with ACL Config for assigning CIR/PIR.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip slas to track icmp-echo and tcp-connect targets in default and user defined vrf
2) Map ip sla to a static route under a vrf
3) Configure acls, classifier and policy with CIR 1000.
4) verify ip sla state.
5) Verify static route is installed
6) Send line rate data traffic.
7) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
8) Bring back the target and verify after configured/default threshold route is reinstalled.
| + +### 3.2.19 Verify IP SLA with PBR + +| **Test ID** | **FtOpSoRoIpSlaFt019** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** Verify IP SLA with PBR.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip slas to track icmp-echo and tcp-connect targets in default and user defined vrf
2) Map ip sla to a static route under a vrf
3) Configure PBR.
4) verify ip sla state.
5) Verify static route is installed
6) Send line rate data traffic.
7) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
8) Bring back the target and verify after configured/default threshold route is reinstalled.
| + +### 3.2.20 IP SLA to configure default routes + +| **Test ID** | **FtOpSoRoIpSlaFt020** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** Verify IP SLA to install default ipv4 and ipv6 routes** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip slas to track icmp-echo and tcp-connect targets in default and user defined vrf
2) Map ip slas to default static routes under a vrf
3) verify ip sla states.
4) verify ipv4 and ipv6 static routes are installed
5) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
6) Bring back the target and verify after configured/default threshold route is reinstalled. | + +### 3.2.21 Clear IP SLA statistics + +| **Test ID** | **FtOpSoRoIpSlaFt021** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** Clear IP SLA statistcs.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip slas to track icmp-echo and tcp-connect targets in default and user defined vrf
2) Map ip sla to a static route under a vrf
3) Verify ip sla counters and history.
4) verify ip sla state.
5) Verify static route is installed
6) Use clear ip sla commands to clear statistics and history.
7) Verify counters are reset to zero and history is erased. | + +### 3.2.22 Verify debug commands for IP SLA + +| **Test ID** | **FtOpSoRoIpSlaFt022** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** Verify debug commands for IP SLA.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure ip slas to track icmp-echo and tcp-connect targets in default and user defined vrf
2) Map ip sla to a static route under a vrf
3) Enable IP SLA debug commands "debug iptrack" and "debug iptrack sla #"
4) verify debug logs. | + +## 3.3 Scale + +### 3.3.1 Verify max ICMP-Echo IP SLA in same vrf + +| **Test ID** | **FtOpSoRoIpSlaScale001** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify max ICMP-Echo IP SLA in same vrf ** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure max 50 icmp-echo IP SLAs
2) Map ip slas to static routes
3) Verify ip sla states
4) Verify static routes installed if the targets are reachable.
5) Flap the routes.
6) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
7) Verify ip sla history is updated. | + +### 3.3.2 Verify max ICMP-Echo IP SLA in different vrfs + +| **Test ID** | **FtOpSoRoIpSlaScale002** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify max ICMP-Echo IP SLA in different vrfs** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure max 50 icmp-echo IP SLAs
2) Map ip slas to static routes
3) Verify ip sla states
4) Verify static routes installed if the targets are reachable.
5) Flap the routes.
6) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
7) Verify ip sla history is updated. | + +### 3.3.3 Verify max TCP-Connect IP SLA in same vrf + +| **Test ID** | **FtOpSoRoIpSlaScale003** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify max TCP-Connect IP SLA in same vrf ** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure max 50 tcp-connect with ssh,bgp IP SLAs
2) Map ip slas to static routes
3) Verify ip sla states
4) Verify static routes installed if the targets are reachable.
5) Flap the routes.
6) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
7) Verify ip sla history is updated.| + +### 3.3.4 Verify max TCP-Connect IP SLA in different vrfs + +| **Test ID** | **FtOpSoRoIpSlaScale004** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify max TCP-Connect IP SLA in different vrfs** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure max 50 tcp-connect IP SLAs
2) Map ip slas to static routes
3) Verify ip sla states
4) Verify static routes installed if the targets are reachable.
5) Flap the routes.
6) Bring down the target and verify static route is uninstalled after configured/default threshold number of unsuccessful attempts.
7) Verify ip sla history is updated.| + +## 3.4 Reboot/Reload/Upgrade Test Cases +#### 3.4.1 Warm reboot + +| **Test ID** | **FtOpSoRoIpSlaTrig001** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** Warm reboot with IP sla configs.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure max ip slas to track icmp-echo and tcp-connect targets in default and user defined vrf
2) Map ip sla to a static route under a vrf
3) Enable target reachability via default ipv6 route
4) verify ip sla state.
5) Verify static route is installed
6) Send traffic over the static route .
7) Initiate warm reboot.
8) Verify there is no traffic drop | + +#### 3.4.2 Cold reboot +| **Test ID** | **FtOpSoRoIpSlaTrig002** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** Fast reboot with ip sla configs.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure max ip slas to track icmp-echo and tcp-connect targets in default and user defined vrf
2) Map ip sla to a static route under a vrf
3) Enable target reachability via default ipv6 route
4) verify ip sla state.
5) Verify static route is installed
6) Send traffic over the static route .
7) Initiate warm reboot.
8) Verify there is no traffic drop | + +#### 3.4.3 Config reload + +| **Test ID** | **FtOpSoRoIpSlaTrig003** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** Config reload with ip sla configs.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure max ip slas to track icmp-echo and tcp-connect targets in default and user defined vrf
2) Map ip sla to a default vrf and user vrf static route.
3)verify ip sla state
4) Save config and initiate config reload.
5) Verify ip sla state and static route is installed after bgp daemon is up.
6) Send traffic over the static route . | + +#### 3.4.4 Docker restart + +| **Test ID** | **FtOpSoRoIpSlaTrig004** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** BGP docker restart with IP SLA configs.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure max ip slas to track icmp-echo and tcp-connect targets in default and user defined vrf
2) Map ip sla to a default vrf and user vrf static route.
3)verify ip sla state
4) Initiate bgp docker restart.
5) Verify ip sla state and static route is installed after bgp daemon is up.
6) Send traffic over the static route . | + +## 3.5 Management + +#### 3.5.1 SNMP + +#### 3.5.2 gNMI + +#### 3.5.3 REST API +##### 3.5.3.1 POST operation + +| **Test ID** | **FtOpSoRoIpSlaRest001** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** REST API POST to configure IP SLA.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Use REST POST method to configure IP SLA for ICMP-Echo and TCP-Connect. | + +##### 3.5.3.2 PATCH operation + +| **Test ID** | **FtOpSoRoIpSlaRest002** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** REST API PATCH to configure IP SLA.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Use REST PATCH method to configure IP SLA paramters like frequency, threshold, source-address etc.. | + +##### 3.5.3.3 GET operation + +| **Test ID** | **FtOpSoRoIpSlaRest003** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** REST API GET to verify all configured IP SLA paramters.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Use REST GET method to verify all configured IP SLA paramters. | + +##### 3.5.3.4 DELETE operation + +| **Test ID** | **FtOpSoRoIpSlaRest004** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** REST API DELETE to unconfigure IP SLA.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Use REST DELETE method to unconfigure IP SLA for ICMP-Echo and TCP-Connect. | +## 3.6 Stress,Scale and Performance +#### 3.6.1 Stress test IP SLA with link flap +| **Test ID** | **FtOpSoRoIpSlaStress001** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | ** Stress test IP SLA with link flap.** | +| **Test Setup** | **Topology1** | +| **Type** | **Functional** | +| **Steps** | 1) Configure IP SLA ICMP-Echo and TCP-Connect.
2) Flap route reachability tiggering static route install and unstall. Run the test for 24 hrs.
3) Verify memory and cpu utilizations before and after the test run. | + +# 4 Reference Links + + + diff --git a/TestPlans/routing/IPSLA/Topology1.png b/TestPlans/routing/IPSLA/Topology1.png new file mode 100644 index 000000000000..c24598acca1b Binary files /dev/null and b/TestPlans/routing/IPSLA/Topology1.png differ diff --git a/TestPlans/routing/IPSLA/Topology2.png b/TestPlans/routing/IPSLA/Topology2.png new file mode 100644 index 000000000000..c0e159909d52 Binary files /dev/null and b/TestPlans/routing/IPSLA/Topology2.png differ diff --git a/TestPlans/system/Syslog_B+Enhancemnt/Source Intf and Vrf Support for Syslog.md b/TestPlans/system/Syslog_B+Enhancemnt/Source Intf and Vrf Support for Syslog.md new file mode 100644 index 000000000000..da677da89c33 --- /dev/null +++ b/TestPlans/system/Syslog_B+Enhancemnt/Source Intf and Vrf Support for Syslog.md @@ -0,0 +1,248 @@ +# SQA Test Plan +# Source Intf and Vrf Support for Syslog +# SONiC 3.1 Project and Buzznik+ Release +[TOC] + + + +# Test Plan Revision History +| Rev | Date | Author | Change Description | +|:---:|:-----------:|:------------------:|-----------------------------| +| 0.1 | 05/20/2020 | Manisha Joshi | Initial version | +| 0.2 | 07/12/2020 | Hafis Saly | Added review comments| +| 0.3 | 07/15/2020 | Manisha Joshi | Addressed all the review comments | + +# List of Reviewers +| Function | Name | +|:---:|:-----------:| +| Remote syslog with source-interface and vrf support | Suresh Babu | + +# List of Approvers +| Function | Name | Date Approved| +|:---:|:-----------:|:------------------:| +| | | | + +# Definition/Abbreviation +| **Term** | **Meaning** | +| -------- | ------------------------------- | +| | | + + + +# Feature Overview + +Configure switch using REST and KLISH cli to forward messages to remote syslog server. Also provide source-ip and VRF to be used while sending out syslog messages. Below is the ling for the High level design of the feature + + + +# 1 Test Focus Areas +This document provides test cases for the configuration and verification of remote syslog server using KLISH CLI and REST/OCYANG Method + + +# 2 Topologies +## 2.1 Topology 1 + +![Dynamic](syslog.png "Topology 1") + +# 3 Test Case and Objectives +## 3.1 **CLI** +## 3.2 **Functional** +#### 3.2.1 Verify remote syslog server over management interface + +| Test ID | FtOpSoRoSyslogFun001 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Verify remote syslog server over management interface | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1) Configure the remote syslog server with host address as management interface. 2) Verify using show logging servers command. 3) Re-verify the messages are sent after delete/re-add the server configuration and shut/no-shut of the management interface. | + +#### 3.2.2 Verify remote syslog server with physical interface as a source-interface + +| Test ID | FtOpSoRoSyslogFun002 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Verify remote syslog server with physical interface as a source-interface | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1)Configure an IPv4 address on a physical interface connected to the server 2) Configure the remote syslog server with host address as IPv4 address and physical interface as source interface. 3) Verify using show logging servers command. 4) Re-verify the messages are sent after delete/re-add the server configuration and shut/no-shut of the interface. 5) Modify the address to another IPv4 address and verify the server picks up the address 6) Capture the packets using tcpdump and verify 7) Reverify the steps with ipv6 address | + +#### 3.2.3 Verify remote syslog server with vlan as a source-interface + +| Test ID | FtOpSoRoSyslogFun003 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Verify remote syslog server with vlan as a source-interface | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1) Configure an IPv4 address on a vlan interface connected to the server 2) Configure the remote syslog server with host address as IPv4 address and vlan as source interface. 3) Verify using show logging servers command. 4) Re-verify the messages are sent after delete/re-add the server configuration and remove/add of the vlan. 5) Modify the address to another IPv4 address and verify the server picks up the address 6) Capture the packets using tcpdump and verify 7) Reverify the steps with ipv6 address | + +#### 3.2.4 Verify remote syslog server with portchannel as a source-interface + +| Test ID | FtOpSoRoSyslogFun004 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Verify remote syslog server with port channel as a source-interface | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1) Configure an IPv4 address on a portchannel connected to the server 2) Configure the remote syslog server with host address as IPv4 address and portchannel as source interface. 3) Verify using show logging servers command. 4) Re-verify the messages are sent after delete/re-add the server configuration, remove/add member ports and add/delete portchannel. 5) Modify the address to another IPv4 address and verify the server picks up the address 6) Capture the packets using tcpdump and verify 7) Reverify the steps with ipv6 address | + +#### 3.2.5 Verify remote syslog server with loopback as a source-interface + +| Test ID | FtOpSoRoSyslogFun005 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Verify remote syslog server with loopback as a source-interface | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1) Configure an IPv4 address on a loopback connected to the server 2) Configure the remote syslog server with host address as IPv4 address and loopback as source interface. 3) Verify using show logging servers command. 4) Re-verify the messages are sent after delete/re-add the server configuration and add/delete loopback. 5) Modify the address to another IPv4 address and verify the server picks up the address 6) Capture the packets using tcpdump and verify 7) Reverify the steps with ipv6 address 8) Modify the configuration to use ethernet/vlan interface as the source interface and repeat steps 4-4 | + +#### 3.2.6 Verify remote syslog server with physical interface as a source-interface over a user-defined VRF + +| Test ID | FtOpSoRoSyslogFun006 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Verify remote syslog server with physical interface as a source-interface over a user-defined VRF | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1)Configure an IPv4 address on a physical interface bound to a VRF 2) Configure the remote syslog server with host address as IPv4 address and physical interface as source interface. 3) Verify using show logging servers command. 4) Re-verify the messages are sent after delete/re-add the server configuration, bind/unbind the interface and remove/add vrf. 5) Modify the address to another IPv4 address, non default syslog port and verify the server picks up the address 6) Capture the packets using tcpdump and verify 7) Reverify the steps with ipv6 address | + +#### 3.2.7 Verify remote syslog server with vlan as a source-interface over a user-defined VRF + +| Test ID | FtOpSoRoSyslogFun007 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Verify remote syslog server with vlan as a source-interface over a user-defined VRF | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1) Configure an IPv4 address on a vlan bound to a vrf 2) Configure the remote syslog server with host address as IPv4 address and vlan as source interface. 3) Verify using show logging servers command. 4) Re-verify the messages are sent after remove/add of the vrf and bind/unbind the vlan. 5) Modify the address to another IPv4 address and verify the server picks up the address 6) Capture the packets using tcpdump and verify 7) Reverify the steps with ipv6 address | + +#### 3.2.8 Verify remote syslog server with portchannel as a source-interface over a user-defined VRF + +| Test ID | FtOpSoRoSyslogFun008 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Verify remote syslog server with port channel as a source-interface as a source-interface over a user-defined VRF | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1) Configure an IPv4 address on a portchannel bound to a vrf 2) Configure the remote syslog server with host address as IPv4 address and portchannel as source interface. 3) Verify using show logging servers command. 4) Re-verify the messages are sent after bind/unbind of portchannel. 5) Modify the address to another IPv4 address and verify the server picks up the address 6) Capture the packets using tcpdump and verify 7) Verify Deletion of VRF is not allowed 8) Reverify the steps with ipv6 address | + +#### 3.2.9 Verify remote syslog server with loopback as a source-interface over user-defined VRF + +| Test ID | FtOpSoRoSyslogFun009 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Verify remote syslog server with loopback as a source-interface over user-defined VRF | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1) Configure an IPv4 address on a loopback bound to a VRF 2) Configure the remote syslog server with host address as IPv4 address and loopback as source interface. 3) Verify using show logging servers command. 4) Re-verify the messages are sent after bind/unbind of the loopback. 5) Modify the address to another IPv4 address and verify the server picks up the address 6) Capture the packets using tcpdump and verify 7) Reverify the steps with ipv6 address | + +#### 3.2.10 Configure and verify syslog server after modifying the source-interface + +| Test ID | FtOpSoRoSyslogFun010 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Verify remote syslog server after modifying the source-interface | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1) Configure a remote syslog server using with physical interface. 2) Modify the source interface from a physical interface to a vlan followed by a portchannel and loopback | + +#### 3.2.11 Configure and verify syslog server with non default remote port configuration + +| Test ID | FtOpSoRoSyslogFun0011 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Verify remote syslog server without source-interface configuration | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1) Configure a remote syslog server using a non default remote-port using logging server host ip command. 2) Verify the configuration using the show command | + +#### 3.2.12 Configure and verify syslog server without source-interface configuration over a user-defined VRF + +| Test ID | FtOpSoRoSyslogFun0012 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Verify remote syslog server without source-interface configuration | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1) Configure a remote syslog server using logging server host ip command with the connected interface bound to a VRF. 2) Verify the configuration using the show command 3) Modify the host address to a IPv6 address and reverify 4)Modify the VRF interface and revierfy | + +#### 3.2.13 Configure and verify syslog server over a management VRF + +| Test ID | FtOpSoRoSyslogFun0013 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Verify remote syslog server over a management VRF | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1) Configure a remote syslog server using logging server host ip command with the management interface bound to management VRF. 2) Verify the configuration using the show command 3) Modify the host address to a IPv6 address and reverify | + +#### 3.2.14 Configure and verify syslog server over management interface with DHCP enabled + +| Test ID | FtOpSoRoSyslogFun0014 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Verify remote syslog server over a management VRF with DHCP enabled | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1) Configure a remote syslog server using logging server host ip command with the management interface where the IP is from a DHCP server. 2) Verify the configuration using the show command 3) Modify the host address to a IPv6 address and reverify | + +## + +## 3.3 Negative + +#### 3.3.15 Verify remote syslog server with IPv6 host address and IPv4 source-interface address + +| Test ID | FtOpSoRoSyslogFun015 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Verify remote syslog server with IPv6 host address and IPv4 source-interface address | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1) Configure a remote syslog server with IPv6 host address and IPv4 source-interface address. 2) Verify this will fail | + +#### 3.3.16 Verify remote syslog server with mismatched source-interface and vrf values + +| Test ID | FtOpSoRoSyslogFun016 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Verify remote syslog server with mismatched source-interface and vrf values | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1) Configure a remote syslog server using with physical interface as part of Vrf-red and Vrf-blue in the remote server combination. 2) Verify this will fail | + +#### 3.3.17 Verify remote syslog server without IP in source-interface + +| Test ID | FtOpSoRoSyslogFun017 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Verify remote syslog server without IP in source interface | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1) Configure a remote syslog server without IP source-interface. 2) Verify this will fail 3) Try adding a non-existing vlan/portchannel as source-interface and verify it will fail | + +#### 3.3.18 Delete a vrf when remote syslog server is configured with it + +| Test ID | FtOpSoRoSyslogFun018 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Delete a vrf when remote syslog server is configured with it | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1) Configure a remote syslog server using with physical interface as part of Vrf-red and Vrf-Red in the remote server combination. 2) Unbind the physical interface/delete the Vrf and verify. 3)This should fail | + +#### 3.3.19 Delete a source-interface when remote syslog server is configured with it + +| Test ID | FtOpSoRoSyslogFun019 | +| ---------- | ------------------------------------------------------------ | +| Test Name | Delete a source-interface when remote syslog server is configured with it | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1) Configure a remote syslog server using with vlan/portchannel as source-interface. 2) Delete the vlan and verify. 3) Delete the portchannel and verify 4) This should fail | + +## + +## 3.4 Reboot + +#### 3.4.1 Verify multiple remote syslog server across a cold reboot + +| **Test ID** | **FtOpSoRoSyslogFun020** | +| ------------ | ------------------------------------------------------------ | +| Test Name | Verify remote syslog server across a cold reboot | +| Test Setup | Topology1 | +| Type | Functional | +| Steps | 1) Configure multiple syslog servers with multiple configurations like with/without source-interface, with/without VRF 2) Verify the show running config and verify the functionality 3) Verify after a cold reboot that the configs are saved | + +## 3.5 Stress,Scale and Performance + +## 3.6 Management + +### 3.6.1 SNMP +### 3.6.2 gNMI/RESTAPI + + +# 4 Reference Links + +HLD link - ≠ \ No newline at end of file diff --git a/TestPlans/system/Syslog_B+Enhancemnt/Source Intf and Vrf Support for Syslog.png b/TestPlans/system/Syslog_B+Enhancemnt/Source Intf and Vrf Support for Syslog.png new file mode 100644 index 000000000000..cb14b5e92deb Binary files /dev/null and b/TestPlans/system/Syslog_B+Enhancemnt/Source Intf and Vrf Support for Syslog.png differ