Skip to content

Commit f415d04

Browse files
committed
Added overlay test plan.
- Overlay test plan page. - ENI detaild test plan. Signed-off-by: Anton Putria <[email protected]>
1 parent 6d1c50a commit f415d04

File tree

3 files changed

+150
-0
lines changed

3 files changed

+150
-0
lines changed

test/docs/testplans/README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Table of Contents - Test Plans
2+
3+
| Document | Description |
4+
|----------|-------------|
5+
| [Overlay Test Plans](./overlay.md) | Home page of all overlay test plans. |
6+
| [ENI Test Plan](./eni.md) | Detailed ENI test plan. |
7+
8+
9+
You can start with the [Overlay Test Plans](./overlay.md).

test/docs/testplans/eni.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Table of content
2+
3+
1. [Objectives](#objectives)
4+
2. [Requirements](#requirements)
5+
3. [Automation](#automation)
6+
4. [Test Suites](#test-suites)
7+
- [ENI creation](#eni-creation)
8+
- [ENI removal](#eni-removal)
9+
- [ENI scale](#eni-scale)
10+
11+
---
12+
13+
# Objectives
14+
15+
Verify proper CRUD API operations and scaling for Elastic Network Interface (ENI).
16+
17+
# Requirements
18+
19+
| Item | Expected value
20+
|---|---
21+
| ENI per card | 64
22+
| Bulk operations | Yes
23+
| Admin state | When the ENI is admin-state down, the packets destined to this ENI shall be dropped.
24+
| Remove | - During ENI delete, implementation must support ability to delete all mappings or routes in a single API call.<br>- Deleting an object that doesn't exists shall not return an error and shall not perform any force-deletions or delete dependencies implicitly. Sonic implementation shall validate the entire API as pre-checks before applying and return accordingly
25+
| Memory | Flexible memory allocation for ENI and not reserve max scale during initial create. (To allow oversubscription)
26+
| Error handling | Implementation must not have silent failures for APIs.
27+
28+
# Automation
29+
30+
Test cases are automated using SAI PTF test framework.
31+
32+
# Test suites
33+
34+
## ENI creation
35+
36+
Verifies create operations, an association with VNI, MAC.
37+
38+
| Test case | Test Class.Method
39+
| --- | ---
40+
| create inbound/outbound DASH ACL groups | CreateDeleteEniTest.createInOutAclGroupsTest
41+
| create VNET | CreateDeleteEniTest.createVnetTest
42+
| create ENI | CreateDeleteEniTest.createEniTest
43+
| create ENI Ether address map entry | CreateDeleteEniTest.createEniEtherAddressMapTest
44+
| create PA validation entry | CreateDeleteEniTest.createPaValidationTest
45+
| create Outbound routing entry | CreateDeleteEniTest.createOutboundRoutingEntryTest
46+
| verify ENI attributes getting/setting | CreateDeleteEniTest.eniAttributesTest
47+
| verify ENI Ether address map entry attributes getting/setting | CreateDeleteEniTest.eniEtherAddressMapAttributesTest
48+
| verify PA validation entry attributes getting/setting | CreateDeleteEniTest.paValidationEntryAttributesTest
49+
| verify Outbound routing entry attributes getting/setting | CreateDeleteEniTest.outboundRoutingEntryAttributesTest
50+
51+
## ENI removal
52+
53+
Verifies remove operations.
54+
55+
| Test case | Test Class.Method
56+
| --- | ---
57+
| normal delete:<br>verify deletion of: inbound/outbound DASH ACL groups, VNET, ENI, ENI Ether address map entry, PA validation entry, Outbound routing entry | CreateDeleteEniTest.deleteEniTest
58+
| error id mapped rules exist:<br>verify ENI cannot be deleted when map exist | CreateDeleteEniTest.deleteEniWhenMapExistTest
59+
| duplicated deletion<br>no errors | CreateDeleteEniTest.duplicatedEniDeletionTest
60+
| normal bulk delete | -
61+
| bulk delete does not remove any if there is a mapping for some ENI | -
62+
63+
## ENI scale.
64+
65+
Verifies basic ENI scale, create/remove/recreate maximum number of ENIs.
66+
67+
| Test case | Test Class.Method
68+
| --- | ---
69+
| Create/remove a max number of ENI entries | EniScaleTest.eniScaleTest
70+
| Recreate (repeated creation/removal a max number of ENI entries) | EniScaleTest.eniScaleTest

test/docs/testplans/overlay.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Table of content
2+
3+
1. [Objectives](#objectives)
4+
2. [Requirements](#requirements)
5+
- [Scaling](#scaling)
6+
- [Performance](#performance)
7+
- [Other](#other)
8+
3. [Test Suites](#test-suites)
9+
10+
---
11+
12+
# Objectives
13+
14+
The test plan designed to cover **overlay** related features for the **DASH SmartAppliances** use case.
15+
16+
The test suites should validate that the DASH devices satisfy the standard SONiC functional requirements. This is a black-box testing concerned with validating whether the device works as intended with SONiC.
17+
18+
Two test frameworks are suggested for automation:
19+
- **SAI PTF** - Functional verification
20+
- **sonic-mgmt** - System/Integration verification
21+
22+
---
23+
24+
# Requirements
25+
26+
### Scaling
27+
| Item | Expected value
28+
|---|---
29+
| VNETs | 1024
30+
| ENI per card | 64
31+
| Routes per ENI | 100k (**to clarify** in some md docs it is 200k)
32+
| NSGs per ENI | 6
33+
| ACLs per ENI | 6x100K prefixes
34+
| ACLs per ENI | 6x10K SRC/DST ports
35+
| CA-PA Mappings | 10M
36+
| Active Connections/ENI | 1M (Bidirectional)
37+
38+
### Performance
39+
| Item | Expected value
40+
|---|---
41+
| CPS per card | 4M+
42+
| Flows per ENI | 1M
43+
| Flows per card | 16M per 200G (**64M**)
44+
45+
### Other
46+
47+
More requirements may be found in [DASH SONiC HLD](https://github.com/Azure/DASH/blob/main/documentation/general/design/dash-sonic-hld.md#15-design-considerations).
48+
49+
---
50+
51+
# Test suites
52+
53+
1. [ENI config](./eni.md)<br>
54+
Verifies base CRUD operations and scaling for Elastic Network Interface (ENI),
55+
1. Connection tracking
56+
1. ACL
57+
1. [VNET-to-VNET](./vnet.md)<br>
58+
Verifies VM to VM communication in VNET, using an Appliance for rules and routing offload.
59+
1. VNET Peering<br>
60+
Virtual network peering connects two virtual networks seamlessly. Once peered, for connectivity purposes, the virtual networks appear as one. For background information, see Virtual network peering.
61+
1. High Availability (HA)<br>
62+
Useful for failure and failover events.
63+
flow efficiently replicates to secondary card; Active/Passive (depending upon ENI policy) or can even have Active/Active; OR provision the same ENI over multiple devices w/o multiple SDN appliances – Primaries for a certain set of VMS can be on both
64+
1. Load Balancer<br>
65+
The feature that switches traffic from using VIP-to-VIP connectivity (which involves transiting SLB MUXes), into using a direct path between VMs (direct PA to PA path).
66+
1. Service Tunnel & Private Link<br>
67+
Service Tunnel prevents Internet access to specific services. Access is permitted only from a specific virtual network (VNET). The Service Tunnel feature provides this capability by encoding certain id's via packet transformation. Private Link feature is an extension to the Service Tunnel feature and enables customers to access public facing shared services via their private IP addresses within their VNET.
68+
1. Encryption Gateway<br>
69+
Express Route Gateway.
70+
1. gNMI
71+
1. Multiple DPUs device

0 commit comments

Comments
 (0)