Skip to content

Commit c1533cc

Browse files
Yuriy Harhasaputriax
authored andcommitted
Dash ptf overlay testplan update with new cases.
- Updated Connection tracking test plan - ENI test plan update - Vnet test plan: listed all new test cases, added tests description - Updated requirements and underlay routing dependencies. - Style minor updated Signed-off-by: Yuriy Harhas <[email protected]>
1 parent 5f9b6b7 commit c1533cc

File tree

3 files changed

+140
-121
lines changed

3 files changed

+140
-121
lines changed

test/docs/testplans/conntrack.md

Lines changed: 44 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
2. [Requirements](#requirements)
55
3. [Automation](#automation)
66
4. [Test Suites](#test-suites)
7-
- [Basic](#eni-creation)
8-
- [Ageing](#eni-removal)
9-
- [Performance](#eni-scale)
7+
- [Basic](#basic)
8+
- [Ageing](#ageing)
9+
- [Performance](#performance)
1010

1111
---
1212

@@ -17,10 +17,12 @@ Connection per Second (CPS) is the most important attribute of the DASH products
1717

1818
# Requirements
1919

20-
| Item | Expected value
21-
|---|---
22-
| Active Connections/ENI | 1M (Bidirectional)
23-
| CPS per card | 4M+
20+
| Item | Expected value |
21+
|:-------------------|:-------------------------|
22+
| Active Connections | 1M per ENI (Bidirectional, +oversubscription capabilities) |
23+
| CPS | 4M+ per card |
24+
| bg TCP flows | - |
25+
| bg UDP flows | - |
2426

2527
**To clarify**
2628
1. Ageing time
@@ -36,51 +38,58 @@ Test cases are automated:
3638
1. Each test should be executed using TCP and UDP streams.
3739
1. Each test should be executed for Inbound and Outbound routing scenario.
3840
1. So far there is **no direct API to get active connection number** or CPS. Verification might be done using indirect ways:
39-
- Based on packets forwarding - check whether packets are passed or dropped
41+
- Based on packets forwarding - check whether packets are passed or dropped
4042
- Based on routing and ACL counters that are incremented on slow path. So when connection is established the counters should not be incremented.
4143

4244
# Test suites
4345

4446
## Basic
4547

46-
| # | Test case | Test Class.Method
47-
| --- | --- | ---
48-
| 1 | Basic positive TCP session verification with counters check | -
49-
| 2 | Basic positive UDP session verification with counters check | -
50-
| 3 | TCP session verification with fragmented packets | -
51-
| 4 | UDP session verification with fragmented packets | -
52-
| 5 | ICMP traffic. **to clarify** no session is expected? | -
53-
| 6 | Same overlay IPs but different ENIs | -
48+
| # | Test case purpose | Test Class.Method | Test description |
49+
|:---:|:------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
50+
| 1 | Basic positive TCP session verification with counters check for VNET Outbound Routing. | `ConnTrackOutboundSessionTest.`<br/> `connTrackOutboundTcpSessionTest` | Creates single ENI outbound configuration. Verifies connection tracking with bidirectional TCP traffic and counters verification. |
51+
| 2 | Basic positive TCP session verification with counters check for VNET Inbound Routing. | `ConnTrackInboundSessionTest.`<br/> `connTrackInboundTcpSessionTest` | Creates single ENI inbound configuration. Verifies connection tracking with bidirectional TCP traffic and counters verification. |
52+
| 3 | Basic positive UDP session verification with counters check for VNET Outbound Routing. | `ConnTrackOutboundSessionTest.`<br/> `connTrackOutboundUdpSessionTest` | Creates single ENI outbound configuration. Verifies connection tracking with bidirectional UDP traffic and counters verification. |
53+
| 4 | Basic positive UDP session verification with counters check for VNET Inbound Routing. | `ConnTrackInboundSessionTest.`<br/> `connTrackInboundUdpSessionTest` | Creates single ENI inbound configuration. Verifies connection tracking with bidirectional UDP traffic and counters verification. |
54+
| 5 | TCP session verification with fragmented packets | - | - |
55+
| 6 | UDP session verification with fragmented packets | - | - |
56+
| 7 | ICMP traffic for VNET Inbound routing. **to clarify** no session is expected? | `ConnTrackInboundSessionTest.`<br/> `connTrackInboundIcmpSessionTest` | Creates single ENI inbound configuration. Verifies connection tracking with bidirectional ICMP traffic (echo request & reply) and counters verification. |
57+
| 8 | ICMP traffic for VNET Outbound routing. **to clarify** | `ConnTrackOutboundSessionTest.`<br/> `connTrackOutboundIcmpSessionTest` | Creates single ENI outbound configuration. Verifies connection tracking with bidirectional ICMP traffic (echo request & reply) and counters verification. |
58+
| 9 | Same overlay MAC/IP but different ENI, Inbound Routing. | `ConnTrackInboundSameOverlayIpDiffEniTest.`<br/>`verifyEni0TcpSessionTest`<br/>`verifyEni0UdpSessionTest`<br/>`verifyEni1TcpSessionTest`<br/>`verifyEni1UdpSessionTest` | Creates two the same ENIs with same MAC addresses and different VNIs. Creates the same Inbound configuration for ENIs.<br/> Verifies connection tracking with bidirectional TCP & UDP traffic and counters verification. |
59+
| 10 | Same overlay MAC/IP but different ENI, Outbound Routing. | `ConnTrackOutboundSameOverlayIpDiffEniTest.`<br/>`verifyEni0TcpSessionTest`<br/>`verifyEni0UdpSessionTest`<br/>`verifyEni1TcpSessionTest`<br/>`verifyEni1UdpSessionTest` | Creates two the same ENIs with same MAC addresses and different VNIs. Creates the same Outbound configuration for ENIs.<br/> Verifies connection tracking with bidirectional TCP & UDP traffic and counters verification. |
5460

5561
## Ageing
5662

57-
| # | Test case | Test Class.Method
58-
| --- | --- | ---
59-
| 1 | Standard ageing (fully correct TCP session, session dropped immediately). | -
60-
| 2 | Standard ageing (fully correct UDP session, session dropped after timeout). | -
61-
| 3 | Custom ageing (fully correct TCP session). | -
62-
| 4 | Custom ageing (fully correct UDP session). | -
63-
| 5 | Open TCP session but no data and no FIN. | -
64-
| 6 | TCP session started from the middle (no SYN packet). | -
63+
| # | Test case purpose | Test Class.Method | Test description |
64+
|:---:|:-----------------------------------------------------------------------------------|:------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
65+
| 1 | Verify standard ageing (fully correct TCP session). | `ConnTrackInboundSessionAgeingTest.`<br/> `connTrackInboundTcpStandardAgeingTest` | Creates single ENI inbound configuration. Bidirectionally send TCP packets needed for standard TCP session start and termination.<br/> Send TCP inbound packet to verify session is terminated and packet is dropped immediately after last TCP termination packet. |
66+
| 2 | -//- (but VNET Outbound Routing) | `ConnTrackOutboundSessionAgeingTest.`<br/> `connTrackOutboundTcpStandardAgeingTest` | Creates single ENI outbound configuration. Bidirectionally send TCP packets needed for standard TCP session start and termination.<br/> Immediately after last TCP termination packets sends TCP outbound packet to verify session is terminated and packet dropped. |
67+
| 3 | Verify standard ageing (fully correct UDP session). | `ConnTrackInboundSessionAgeingTest.`<br/> `connTrackInboundUdpStandardAgeingTest` | Creates single ENI inbound configuration. Bidirectionally send UDP packets. Wait default ageing time for session termination.<br/> Send UDP packet to verify session is terminated and packet is dropped after default ageing time. |
68+
| 4 | -//- (but VNET Outbound Routing) | `ConnTrackOutboundSessionAgeingTest.`<br/> `connTrackOutboundUdpStandardAgeingTest` | Creates single ENI outbound configuration. Bidirectionally send UDP packets. Wait default ageing time for session termination.<br/> Immediately after default ageing time sends UDP packet to verify session is terminated and packet dropped. |
69+
| 5 | Verify custom ageing (fully correct TCP session). | - | - |
70+
| 6 | Verify custom ageing (fully correct UDP session). | - | - |
71+
| 7 | Verify open TCP session but no data and no FIN. | `ConnTrackInboundSessionAgeingTest.`<br/> `connTrackInboundTcpAgeingTest` | Creates single ENI inbound configuration. Bidirectionally send TCP packets needed only for TCP session start. Wait default ageing time for session termination.<br/> Immediately after default ageing time sends TCP packet to verify session is terminated and packet dropped. |
72+
| 8 | -//- (but VNET Outbound Routing) | `ConnTrackOutboundSessionAgeingTest`.<br/> `connTrackOutboundTcpAgeingTest` | Creates single ENI outbound configuration. Bidirectionally send TCP packets needed only for TCP session start. Wait default ageing time for session termination.<br/> Immediately after default ageing time sends TCP packet to verify session is terminated and packet dropped. |
73+
| 6 | Verify TCP session started from the middle (no SYN packet). | - | - |
6574

6675
## Integration
6776

68-
| # | Test case | Test Class.Method
69-
| --- | --- | ---
70-
| 1 | Inbound and outbound configuration in parallel | -
71-
| 2 | Routes update during active session | -
72-
| 3 | ACL update during active session | -
73-
| 4 | Configuration removal during active session (Route, VNET, ENI removal) | -
77+
| # | Test case purpose | Test Class.Method | Test description |
78+
|:---:|:------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------|
79+
| 1 | Verify Inbound and outbound configuration in parallel | `ConnTrackInboundOutboundParallelConfigsTest.`<br/> `verifyOutboundTcpSessionTest`<br/> `verifyInboundTcpSessionTest`<br/> `verifyOutboundUdpSessionTest`<br/> `verifyOutboundUdpSessionTest` | Creates Inbound and Outbound configuration on single ENI.<br/> Verifies connection tracking with bidirectional TCP & UDP traffic and counters verification. |
80+
| 2 | Verify Routes update during active session | - | - |
81+
| 3 | Verify ACL update during active session | - | - |
82+
| 4 | Verify configuration removal during active session (Route, VNET, ENI removal) | - | - |
7483

7584
## Performance
7685

7786
**TBD**
7887

79-
| # | Test case | Test Class.Method
80-
| --- | --- | ---
81-
| 1 | CPS | -
82-
| 2 | Max sessions per ENI. (Verify resources clean up) | -
83-
| 3 | Max sessions per card (multiple ENIs). (Verify resources clean up) | -
88+
| # | Test case | Test Class.Method | Test description |
89+
|:---:|:-------------------------------------------------------------------|:------------------|:-----------------|
90+
| 1 | CPS | - | - |
91+
| 2 | Max sessions per ENI. (Verify resources clean up) | - | - |
92+
| 3 | Max sessions per card (multiple ENIs). (Verify resources clean up) | - | - |
8493

8594
## Future
8695

test/docs/testplans/overlay.md

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -24,23 +24,22 @@ Two test frameworks are suggested for automation:
2424
# Requirements
2525

2626
### Scaling
27-
| Item | Expected value
28-
|---|---
29-
| VNETs | 1024
30-
| ENI per card | 64
31-
| Routes per ENI | 100k
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)
27+
| Item | Expected value |
28+
|------------------------|:--------------------:|
29+
| VNETs | 1024 |
30+
| ENI per card | 64 |
31+
| Routes per ENI | 100k |
32+
| NSGs per ENI | 5in + 5out |
33+
| ACLs per ENI | 10x100K prefixes |
34+
| ACLs per ENI | 10x10K SRC/DST ports |
35+
| CA-PA Mappings per ENI | 160k |
36+
| Active Connections/ENI | 1M (Bidirectional) |
3737

3838
### Performance
39-
| Item | Expected value
40-
|---|---
41-
| CPS per card | 5M
42-
| Flows per ENI | 1M
43-
| Flows per card | 16M per 200G (**64M**)
39+
| Item | Expected value |
40+
|----------------|:----------------------:|
41+
| CPS per card | 4M+ |
42+
| Flows per ENI | 1M |
4443

4544
### Other
4645

@@ -52,21 +51,21 @@ More requirements may be found in [DASH SONiC HLD](https://github.com/Azure/DASH
5251

5352
1. [ENI config](./eni.md)<br>
5453
Verifies base CRUD operations and scaling for Elastic Network Interface (ENI),
55-
1. [Connection tracking](./conntrack.md)<br>
54+
2. [Connection tracking](./conntrack.md)<br>
5655
Verifies the connection tracking mechanism, ageing, scaling and performance.
57-
1. ACL
58-
1. [VNET-to-VNET](./vnet.md)<br>
56+
3. ACL
57+
4. [VNET-to-VNET](./vnet.md)<br>
5958
Verifies VM to VM communication in VNET, using an Appliance for rules and routing offload.
60-
1. VNET Peering<br>
59+
5. VNET Peering<br>
6160
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.
62-
1. High Availability (HA)<br>
61+
6. High Availability (HA)<br>
6362
Useful for failure and failover events.
6463
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
65-
1. Load Balancer<br>
64+
7. Load Balancer<br>
6665
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).
67-
1. Service Tunnel & Private Link<br>
66+
8. Service Tunnel & Private Link<br>
6867
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.
69-
1. Encryption Gateway<br>
68+
9. Encryption Gateway<br>
7069
Express Route Gateway.
71-
1. gNMI
72-
1. Multiple DPUs device
70+
10. gNMI
71+
11. Multiple DPUs device

0 commit comments

Comments
 (0)