|
| 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 |
0 commit comments