Scott Baker | af71a72 | 2021-12-15 16:30:01 -0800 | [diff] [blame^] | 1 | Aether 1.6 Release |
| 2 | ================== |
| 3 | |
| 4 | Highlights |
| 5 | ---------- |
| 6 | |
| 7 | The focus of this release of Aether is expanding the Quality of Service (QoS) |
| 8 | feature to include the ability to have per-Slice and per-Device-by-Application |
| 9 | QoS settings, as well as to add a new Application Filtering feature. Aether |
| 10 | modeling continues to be improved as documented below, and many additional |
| 11 | reliability improvements have been made to the underlying subsystems. |
| 12 | |
| 13 | New Features & Improvements |
| 14 | --------------------------- |
| 15 | |
| 16 | Three Levels of Quality of Service (QoS) Control |
| 17 | """""""""""""""""""""""""""""""""""""""""""""""" |
| 18 | |
| 19 | Aether now supports Maximum Bitrate Quality of Service (MBR QoS) settings at |
| 20 | three different levels: |
| 21 | |
| 22 | * Per-Device. Configured as part of the Device-Group abstraction. Each slice may |
| 23 | contain multiple device groups, and therefore configure a heterogeneous set of |
| 24 | devices. These settings are mandatory. |
| 25 | |
| 26 | * Per-Device by Application. These allow the MBR to be limited for the flow |
| 27 | between a pair of Device and Application. These QoS settings are optional and |
| 28 | are specified as part of Application Filtering. |
| 29 | |
| 30 | * Per-Slice. The per-Slice settings allow the aggregate bandwidth of all devices |
| 31 | in a slice to be limited. This is enforced as part of the User Plane Function |
| 32 | (UPF). These QoS settings are optional. |
| 33 | |
| 34 | In addition to MBR, Aether also allows a Traffic Class to be specified at the |
| 35 | Per-Device (Device-Group) and Application contexts. The Traffic Class further |
| 36 | defines the QCI and ARP used for 5G. |
| 37 | |
| 38 | Application Filtering |
| 39 | """"""""""""""""""""" |
| 40 | |
| 41 | Aether supports application filtering performed by the User Plane Function |
| 42 | (UPF). The application filtering feature allows devices in a slice to have |
| 43 | access to only those applications allocated to the slice, and vice-versa, |
| 44 | thereby extending the isolation capabilities of a slice to the |
| 45 | edge-applications. Some applications (such as public Internet access) can also |
| 46 | be shared across slices. |
| 47 | |
| 48 | Aether allows a total of five user-defined application endpoint filtering |
| 49 | rules, plus one default rule that may be set to either Allow-All or Deny-All. |
| 50 | The application endpoint filtering rules allow the filter to be composed of |
| 51 | application IP address, protocol (TCP, UDP, etc), and port. Each rule is |
| 52 | assigned a priority, and the rules are executed in priority order until a match |
| 53 | is found. The default rule (for example Deny-All), is assigned the least |
| 54 | priority and is executed last. |
| 55 | |
| 56 | UPF Pools |
| 57 | """"""""" |
| 58 | |
| 59 | Aether allows a set of UPFs to be created at customer onboarding, and those |
| 60 | UPFs may later be associated with Slices as the customer creates additional |
| 61 | slices. Additional UPFs may be added to the pool at any time by the operator. |
| 62 | The GUI maintains the invariant that a UPF may only be assigned to one Slice at |
| 63 | a time, that the UPF must be located at the same Site as the VCS, and assists |
| 64 | the user in filtering out in-use UPFs when a VCS is created. |
| 65 | |
| 66 | Monitoring Support |
| 67 | """""""""""""""""" |
| 68 | |
| 69 | The Aether GUI now displays site health statistics. These statistics are |
| 70 | collected by Aether using the Prometheus tool set, and are fetched on demand by |
| 71 | the GUI. Aether can display metrics such as the number of nodes and number of |
| 72 | healthy edge monitoring devices at a site. |
| 73 | |
| 74 | Modeling Updates |
| 75 | """""""""""""""" |
| 76 | |
| 77 | The following other miscellaneous modeling updates have been added: |
| 78 | |
| 79 | * Standardized all bitrates to be specified as bits per second (bps). |
| 80 | |
| 81 | * Several models have been updated to make it so that their names may be easily |
| 82 | changed, without requiring the model to be deleted and re-created. |
| 83 | |
| 84 | * The AP-List model has been renamed to Small-Cell and has been merged into the |
| 85 | Site model. |
| 86 | |
| 87 | Testing |
| 88 | ------- |
| 89 | |
| 90 | Aether uses automated testing based on Jenkins and Robot Framework. The tests |
| 91 | performed are described below. |
| 92 | |
| 93 | SD-Core Tests |
| 94 | """"""""""""" |
| 95 | |
| 96 | * 4G |
| 97 | |
| 98 | * Functional coverage: attach, detach, dataplane traffic, handover, TAU, paging, |
| 99 | error scenarios, failure/restart of network functions |
| 100 | |
| 101 | * 5G |
| 102 | |
| 103 | * Functional Coverage: register, deregister,dataplane traffic scenarios, |
| 104 | handover, TAU, DDN, few error scenarios, few failure/restart of network |
| 105 | functions |
| 106 | |
| 107 | Jenkins jobs for functional and scale tests can be found on `Aether Jenkins - |
| 108 | SD-Core System Tests |
| 109 | <https://jenkins.aetherproject.org/view/SD%20Core%20System%20Tests/>`_ |
| 110 | |
| 111 | ROC |
| 112 | """ |
| 113 | |
| 114 | * Functional API and GUI test coverages |
| 115 | |
| 116 | Jenkins jobs: `Aether Jenkins - ROC System Tests |
| 117 | <https://jenkins.aetherproject.org/view/ROC%20System%20Tests/>`_ |
| 118 | |
| 119 | System Tests |
| 120 | """""""""""" |
| 121 | |
| 122 | * 4G |
| 123 | |
| 124 | * Functional testing includes multiple slice creations, enable/disable of device |
| 125 | groups, add/update IMSI ranges, QoS validations, rate limiting tests (at UE, |
| 126 | slice, application), application filtering tests, container restart tests |
| 127 | |
| 128 | Jenkins Jobs: `Aether Jenkins - Aether System Tests |
| 129 | <https://jenkins.aetherproject.org/view/Aether%20System%20Tests/>`_ |
| 130 | |
| 131 | Documentation |
| 132 | ------------- |
| 133 | |
| 134 | Aether documentation is available at `docs.aetherproject.org |
| 135 | <https://docs.aetherproject.org>`_ |
| 136 | |
| 137 | Known Issues and Limitations |
| 138 | ---------------------------- |
| 139 | |
| 140 | * An individual Device may participate in a 4G core or a 5G core, but not both. |
| 141 | |
| 142 | * 4G Devices may each participate in a single DeviceGroup, and 4G DeviceGroups |
| 143 | may each participate in a single VCS. |
| 144 | |
| 145 | * Application endpoints may only specify an IPv4 address, and may not specify |
| 146 | ports (either a single one or a range). As a consequence, we support the |
| 147 | definition of only one application per IPv4 address. This limitation will |
| 148 | be removed in Aether 2.0. |
| 149 | |
| 150 | * When ROC’s sdcore-adapter-v4 pod restarts, its cached internal state must be |
| 151 | manually refreshed. |
| 152 | |
| 153 | * If ConfigPod is crashed/restarted then we need a manual restart of simapp pod. |
| 154 | |
| 155 | * UPFs listed in the ROC should all be reachable, cannot include an unreachable |
| 156 | UPF which may keep the existing UPFs to not function properly. |
| 157 | |
| 158 | Component Versions |
| 159 | ------------------ |
| 160 | |
| 161 | ROC: |
| 162 | |
| 163 | * atomix-controller: 0.6.8 |
| 164 | |
| 165 | * atomix-raft-storage: 0.1.15 |
| 166 | |
| 167 | * onos-operator: v0.4.14 |
| 168 | |
| 169 | * aether-roc-umbrella: 1.4.64 |
| 170 | |
| 171 | SD-Core: |
| 172 | |
| 173 | * sdcore-helm-chart: 0.9.16 |
| 174 | |
| 175 | BESS UPF |
| 176 | |
| 177 | * omec-user-plane: 0.5.4 |
| 178 | |
| 179 | SD-Fabric 1.0.1 release (`release note |
| 180 | <https://docs.sd-fabric.org/1.0.1/release/1.0.1.html>`_) |
| 181 | |
| 182 | * sdfabric: 1.0.10 |
| 183 | |
| 184 | * onos-classic chart: 0.1.26 |
| 185 | |
| 186 | * stratum chart: 0.1.18 |
| 187 | |
| 188 | * pfcp-agent chart: 0.0.1 |
| 189 | |
| 190 | * dbuf chart: 0.0.1 |
| 191 | |
| 192 | * int-host-reporter chart: 0.0.1 |
| 193 | |
| 194 | Sercomm eNB |
| 195 | |
| 196 | * Firmware version: TEST3918@210224 |
| 197 | |
| 198 | * Configuration file version: 0.1.0 |