From 2c4cc485b4b93bb9c89bafaf6b730b9036948919 Mon Sep 17 00:00:00 2001 From: Changping Ma Date: Mon, 21 Dec 2020 20:09:42 +0800 Subject: [PATCH 01/89] OP6645 fix the error in openvino document of network-edge-applications-onboarding.md --- .../network-edge-applications-onboarding.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/applications-onboard/network-edge-applications-onboarding.md b/doc/applications-onboard/network-edge-applications-onboarding.md index a41b2c69..c5826d3c 100644 --- a/doc/applications-onboard/network-edge-applications-onboarding.md +++ b/doc/applications-onboard/network-edge-applications-onboarding.md @@ -592,7 +592,7 @@ The following is an example of how to set up DNS resolution for OpenVINO consume Add to the file: nameserver ``` -2. Verify that `openvino.openness` is correctly resolved (“ANSWER” section should contain IP of Edge DNS). +2. Verify that `openvino.openness` is correctly resolved (“ANSWER” section should contain IP of Consumer pod IP). ``` dig openvino.openness ``` From 829ab92eba68af271677170e92a3b7b551efe562 Mon Sep 17 00:00:00 2001 From: Changping Ma Date: Sun, 17 Jan 2021 17:15:10 +0800 Subject: [PATCH 02/89] update openvino doc for networkpolicy error. --- .../network-edge-applications-onboarding.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/applications-onboard/network-edge-applications-onboarding.md b/doc/applications-onboard/network-edge-applications-onboarding.md index bcb86953..1f13258f 100644 --- a/doc/applications-onboard/network-edge-applications-onboarding.md +++ b/doc/applications-onboard/network-edge-applications-onboarding.md @@ -540,7 +540,7 @@ By default, in a Network Edge environment, all *ingress* traffic is blocked (ser spec: podSelector: matchLabels: - name: openvino-cons-app + app: openvino-cons-app policyTypes: - Ingress ingress: From fb9fbfd84705e632b4f319c8aaa77603f13128ef Mon Sep 17 00:00:00 2001 From: Changping Ma Date: Tue, 26 Jan 2021 00:52:33 +0800 Subject: [PATCH 03/89] update openness_openvino.md file form using UDP to TCP. --- doc/applications/openness_openvino.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/applications/openness_openvino.md b/doc/applications/openness_openvino.md index 5fa90b36..a6fcfc43 100644 --- a/doc/applications/openness_openvino.md +++ b/doc/applications/openness_openvino.md @@ -133,7 +133,7 @@ openvino-prod-app 1.0 ### Streaming & Displaying the Augmented Video -The OpenVINO edge application accepts a UDP video stream. This video stream can +The OpenVINO edge application accepts a TCP video stream. This video stream can be from any video source such as an IP camera. The Client Simulator provided in this project uses a sample mp4 video file to continuously transmit the video stream to the OpenNESS Edge Node. Object detection is executed on this video From ecb930d63d77cad72a3822205b52e62f758f0016 Mon Sep 17 00:00:00 2001 From: tomaszwesolowski <50956170+tomaszwesolowski@users.noreply.github.com> Date: Fri, 29 Jan 2021 10:22:54 +0100 Subject: [PATCH 04/89] Feature/default2minimal (#391) * infromation about required flavor param (#389) * infromation about required flavor param * customization info * correct software version * change suggested name for overrrides file * added parentheses for flavor param * fixed typos * Updated specs with new host_vars paths. (#390) * Updated specs with new host_vars paths. * Changed description regarding host_vars. * Changed 10-open.yml to 10-default.yml in documentation * Update openness-dedicated-core.md From what I understand, CMK in this instance is referenced for xoek, so it should be 10-open.yml * fixed typo in minimal flavor notes Co-authored-by: Jakub Rymsza <51228427+jakubrym@users.noreply.github.com> --- .../openness-network-edge-vm-support.md | 6 ++++-- .../using-openness-cnca.md | 4 ++-- .../openness-dedicated-core.md | 11 +++++++---- .../openness-fpga.md | 7 +++++-- .../openness-hugepage.md | 8 ++++---- .../openness-sriov-multiple-interfaces.md | 4 ++-- doc/flavors.md | 3 +++ .../controller-edge-node-setup.md | 19 ++++++++++++++----- .../openness-experience-kits.md | 4 ++-- .../ran/openness_xran.md | 11 +++++++---- 10 files changed, 50 insertions(+), 27 deletions(-) diff --git a/doc/applications-onboard/openness-network-edge-vm-support.md b/doc/applications-onboard/openness-network-edge-vm-support.md index 8ad9e2aa..486ef20b 100644 --- a/doc/applications-onboard/openness-network-edge-vm-support.md +++ b/doc/applications-onboard/openness-network-edge-vm-support.md @@ -97,7 +97,7 @@ The KubeVirt role responsible for bringing up KubeVirt components is enabled by ``` - Enable necessary Network Interfaces with SRIOV: ```yaml - # host_vars/node01.yml + # host_vars/node01/10-default.yml sriov: network_interfaces: {: 1} ``` @@ -108,7 +108,9 @@ The KubeVirt role responsible for bringing up KubeVirt components is enabled by kubevirt_default_pv_vol_name: vol kubevirt_pv_vm_max_num: 64 ``` - 2. Set up other common configurations for the cluster and enable other EPA features as needed and deploy the cluster using the `deploy_ne.sh` script in the OpenNESS experience kit top-level directory. + 2. Set up other common configurations for the cluster and enable other EPA features as needed and deploy the cluster using the `deploy_ne.sh -f ` script in the OpenNESS experience kit top-level directory. + +Note: Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/x-specs/blob/master/doc/flavors.md). 3. On successful deployment, the following pods will be in a running state: ```shell diff --git a/doc/applications-onboard/using-openness-cnca.md b/doc/applications-onboard/using-openness-cnca.md index eb4ec045..84234ca3 100644 --- a/doc/applications-onboard/using-openness-cnca.md +++ b/doc/applications-onboard/using-openness-cnca.md @@ -118,10 +118,10 @@ OpenNESS provides ansible scripts for setting up NGC components for two scenario ### Bring-up of NGC components in Network Edge mode 1. If the Edge controller is not yet deployed through openness-experience-kit then: - Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `group_vars/all/10-default.yml` before running `deploy_ne.sh controller` or `deploy_ne.sh` as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/network-edge/controller-edge-node-setup.md) document, **otherwise skip this step.** + Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `group_vars/all/10-default.yml` before running `deploy_ne.sh -f controller` or `deploy_ne.sh -f ` as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/network-edge/controller-edge-node-setup.md) document, **otherwise skip this step.** 2. If Edge-controller is already deployed (but without enabling ngc role) and at a later stage you want to enable NGC components on edge-controller then, - Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `group_vars/all/10-default.yml` and then re-run `deploy_ne.sh controller` as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/network-edge/controller-edge-node-setup.md) document. + Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `group_vars/all/10-default.yml` and then re-run `deploy_ne.sh -f controller` as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/network-edge/controller-edge-node-setup.md) document. **NOTE:** In addition to the OpenNESS controller bringup, by enabling the ngc rule the playbook scripts performs: Clone epcforedge repo from github, builds AF, NEF and OAM micro services, generates certificate files, creates docker images and starts PODs. diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md index 71da7ebe..45bf360f 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md @@ -56,7 +56,7 @@ CMK can be deployed using a [Helm chart](https://helm.sh/). The CMK Helm chart u **Edge Controller / Kubernetes control plane** -1. In `group_vars/all/10-open.yml`, change `ne_cmk_enable` to `true` and adjust the settings if needed. +1. In `group_vars/all/10-default.yml`, change `ne_cmk_enable` to `true` and adjust the settings if needed. CMK default settings are: ```yaml # CMK - Number of cores in exclusive pool @@ -66,16 +66,19 @@ CMK can be deployed using a [Helm chart](https://helm.sh/). The CMK Helm chart u # CMK - Comma separated list of nodes' hostnames cmk_host_list: "node01,node02" ``` -2. Deploy the controller with `deploy_ne.sh controller`. +2. Deploy the controller with `deploy_ne.sh -f controller`. **Edge Node / Kubernetes node** -1. In `group_vars/all/10-default.yml`, change `ne_cmk_enable` to “true”. +1. In `group_vars/all/10-open.yml`, change `ne_cmk_enable` to “true”. 2. To change core isolation set isolated cores in `group_vars/edgenode_group/10-default.yml` as `additional_grub_params` for your node e.g. in `group_vars/edgenode_group/10-default.yml`, set `additional_grub_params: "isolcpus=1-10,49-58"`. -3. Deploy the node with `deploy_ne.sh node`. +3. Deploy the node with `deploy_ne.sh -f node`. The environment setup can be validated using steps from the [CMK operator manual](https://github.com/intel/CPU-Manager-for-Kubernetes/blob/master/docs/operator.md#validating-the-environment). +**Note:** +Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/x-specs/blob/master/doc/flavors.md). + ### Usage The following example creates a `Pod` that can be used to deploy an application pinned to a core: diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md b/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md index 83a3b807..4da63818 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md @@ -85,7 +85,7 @@ For information on how to update and flash the MAX10 to supported version see [I To run the OpenNESS package with FPGA (FEC) functionality, the feature needs to be enabled on both Edge Controller and Edge Node. #### OpenNESS Experience Kit -To enable FPGA support from OEK, change the variable `ne_opae_fpga_enable` in `group_vars/all/10-default.yml` (or flavour alternative file) to `true`: +To enable FPGA support from OEK, change the variable `ne_opae_fpga_enable` in `group_vars/all/10-default.yml` (or flavor alternative file) to `true`: ```yaml # group_vars/all/10-default.yml ne_opae_fpga_enable: true @@ -119,7 +119,10 @@ The following packages need to be placed into specific directories for the featu 1. The OPAE package `OPAE_SDK_1.3.7-5_el7.zip` needs to be placed inside the `openness-experience-kits/opae_fpga` directory. The package can be obtained as part of Intel® FPGA PAC N3000 OPAE beta release. To obtain the package, contact your Intel representative. -Run setup script `deploy_ne.sh`. +Run setup script `deploy_ne.sh -f `. + +**Note:** +Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/x-specs/blob/master/doc/flavors.md). After a successful deployment, the following pods will be available in the cluster (CNI pods may vary depending on deployment): ```shell diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-hugepage.md b/doc/building-blocks/enhanced-platform-awareness/openness-hugepage.md index 7a3e7512..ba7313a1 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-hugepage.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-hugepage.md @@ -34,7 +34,7 @@ Find below a guide on changing these values. Customizations must be made before Variables for hugepage customization can be placed in several files: * `group_vars/controller_group/10-default.yml` and `group_vars/edgenode_group/10-default.yml` will affect Edge Controller and Edge Nodes in every mode -* `host_vars/.yml` will only affect the `` host present in `inventory.ini` (in all modes) +* `host_vars//10-default.yml` will only affect the `` host present in `inventory.ini` (in all modes) * Hugepages can be also specified for mode and machine type, (e.g., hugepages for On-Premises Edge Node can be set in `network_edge.yml` in a play for Edge Nodes: ```yaml # network_edge.yml @@ -50,7 +50,7 @@ The usage is summarized in the following table: | --------------------------------------------- | :----------: | :---------: | :------------------------------------: | :-----------------------------------------------: | :-----------------------------------------------------------------------------: | | `group_vars/controller_group/10-default.yml` | yes | yes | yes | | | | `group_vars/edgenode_group/10-default.yml` | yes | yes | | yes - every node | | -| `host_vars/.yml` | yes | yes | yes | yes | affects machine specified in `inventory.ini` with name `` | +| `host_vars//10-default.yml` | yes | yes | yes | yes | affects machine specified in `inventory.ini` with name `` | | `network_edge.yml` | yes | | `vars` under `hosts: controller_group` | `vars` under `hosts: edgenode_group` - every node | not recommended | Note that variables have precedence: @@ -82,9 +82,9 @@ Change the following lines in the `group_vars/edgenode_group/10-default.yml` or ``` #### Customizing hugepages for specific machine -To specify the size or amount only for a specific machine, `hugepage_size` and/or `hugepage_amount` can be provided in `host_vars/.yml` (i.e., if host is named `node01`, then the file is `host_vars/node01.yml`). For example: +To specify the size or amount only for a specific machine, `hugepage_size` and/or `hugepage_amount` can be provided in `host_vars//10-default.yml` (i.e., if host is named `node01`, then the file is `host_vars/node01/10-default.yml`). For example: ```yaml -# host_vars/node01.yml +# host_vars/node01/10-default.yml hugepage_size: "2M" hugepage_amount: "1500" diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md b/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md index acd46703..2df6b212 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md @@ -135,11 +135,11 @@ SR-IOV CNI and device plugin are deployed in OpenNESS using Helm chart. The Helm #### Edge Node SR-IOV interfaces configuration For the installer to turn on the specified number of SR-IOV VFs for a selected network interface of node, provide that information in the format `{interface_name: VF_NUM, ...}` in the `sriov.network_interfaces` variable inside the config files in `host_vars` Ansible directory. -For technical reasons, each node must be configured separately. Copy the example file `host_vars/node01.yml` and then create a similar one for each node being deployed. +For technical reasons, each node must be configured separately. Copy the example file `host_vars/node01/10-default.yml` and then create a similar one for each node being deployed. Also, each node must be added to the Ansible inventory file `inventory.ini`. -For example, providing `host_vars/node01.yml` with the following options will enable 4 VFs for network interface (PF) `ens787f0` and 8 VFs for network interface `ens787f1` of `node1`. +For example, providing `host_vars/node01/10-default.yml` with the following options will enable 4 VFs for network interface (PF) `ens787f0` and 8 VFs for network interface `ens787f1` of `node1`. ```yaml sriov: diff --git a/doc/flavors.md b/doc/flavors.md index 23436e02..a890b3e5 100644 --- a/doc/flavors.md +++ b/doc/flavors.md @@ -35,6 +35,9 @@ This deployment flavor enables the following ingredients: * The default Kubernetes CNI: `kube-ovn` * Telemetry +To customize this flavor we recommend creating additional file in openness-experience-kits that will override any variables used in previous configuration. This file should be placed in location: `openness-experiance-kits/group_vars/all` and filenames should start withnumber greater than highest value currently present (e.g. `40-overrides.yml`). + + ## CERA Access Edge Flavor The pre-defined *flexran* deployment flavor provisions an optimized system configuration for vRAN workloads on Intel Xeon servers. It also provisions for deployment of PACN3000 FPGA tools and components enabling the offload of acceleration of FEC (Forward Error Correction) to the FPGA. diff --git a/doc/getting-started/network-edge/controller-edge-node-setup.md b/doc/getting-started/network-edge/controller-edge-node-setup.md index 19311842..31587ff2 100644 --- a/doc/getting-started/network-edge/controller-edge-node-setup.md +++ b/doc/getting-started/network-edge/controller-edge-node-setup.md @@ -45,9 +45,12 @@ The following set of actions must be completed to set up the Open Network Edge S 3. Run the [deployment helper script](#running-playbooks) for the Ansible\* playbook: ```shell - ./deploy_ne.sh + ./deploy_ne.sh -f ``` +**Note:** +Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/x-specs/blob/master/doc/flavors.md). + # Preconditions To use the playbooks, several preconditions must be fulfilled. These preconditions are described in the [Q&A](#qa) section below. The preconditions are: @@ -76,13 +79,16 @@ The following subsections describe the playbooks in more detail. For convenience, playbooks can be executed by running helper deployment scripts from the Ansible host. These scripts require that the Edge Controller and Edge Nodes be configured on different hosts (for deployment on a single node, refer to [Single-node Network Edge cluster](#single-node-network-edge-cluster)). This is done by configuring the Ansible playbook inventory, as described later in this document. -The command syntax for the scripts is: `action_mode.sh [-f flavor] [group]`, i.e., +The command syntax for the scripts is: `action_mode.sh -f [group]`, i.e., - - `deploy_ne.sh [-f flavor] [ controller | nodes ]` - - `cleanup_ne.sh [-f flavor] [ controller | nodes ] ` + - `deploy_ne.sh -f [ controller | nodes ]` + - `cleanup_ne.sh -f [ controller | nodes ] ` The parameter `controller` or `nodes` in each case deploys or cleans up the Edge Controller or the Edge Nodes, respectively. +**Note:** +Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/x-specs/blob/master/doc/flavors.md). + For an initial installation, `deploy_ne.sh controller` must be run before `deploy_ne.sh nodes`. During the initial installation, the hosts may reboot. After reboot, the deployment script that was last run should be run again. The `cleanup_ne.sh` script is used when a configuration error in the Edge Controller or Edge Nodes must be fixed. The script causes the appropriate installation to be reverted, so that the error can be fixed and `deploy_ne.sh` rerun. `cleanup_ne.sh` does not do a comprehensive cleanup (e.g., installation of DPDK or Golang will not be rolled back). @@ -139,7 +145,10 @@ To deploy Network Edge in a single-node cluster scenario, follow the steps below 3. Settings regarding the kernel, grub, HugePages\*, and tuned can be customized in `group_vars/edgenode_group/10-default.yml`. > Default settings in the single-node cluster mode are those of the Edge Node (i.e., kernel and tuned customization enabled). -4. Single-node cluster can be deployed by running command: `./deploy_ne.sh single` +4. Single-node cluster can be deployed by running command: `./deploy_ne.sh -f single` + +**Note:** +Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/x-specs/blob/master/doc/flavors.md). ## Harbor registry diff --git a/doc/getting-started/openness-experience-kits.md b/doc/getting-started/openness-experience-kits.md index 12b843ec..34d9e5f4 100644 --- a/doc/getting-started/openness-experience-kits.md +++ b/doc/getting-started/openness-experience-kits.md @@ -33,11 +33,11 @@ OEKs allow a user to customize kernel, grub parameters, and tuned profiles by le > **NOTE**: `groups_vars/[edgenode|controller|edgenode_vca]_group` directories contain variables applicable for the respective groups and they can be used in `host_vars` to change on per node basis while `group_vars/all` contains cluster wide variables. -OEKs contain a `host_vars/` directory that can be used to place a YAML file (`nodes-inventory-name.yml`, e.g., `node01.yml`). The file would contain variables that would override roles' default values. +OEKs contain a `host_vars/` directory in which we can create another directory (`nodes-inventory-name`) and place a YAML file (`10-default.yml`, e.g., `node01/10-default.yml`). The file would contain variables that would override roles' default values. > **NOTE**: Despite the ability to customize parameters (kernel), it is required to have a clean CentOS\* 7.8.2003 operating system installed on hosts (from a minimal ISO image) that will be later deployed from Ansible scripts. This OS shall not have any user customizations. -To override the default value, place the variable's name and new value in the host's vars file. For example, the contents of `host_vars/node01.yml` that would result in skipping kernel customization on that node: +To override the default value, place the variable's name and new value in the host's vars file. For example, the contents of `host_vars/node01/10-default.yml` that would result in skipping kernel customization on that node: ```yaml kernel_skip: true diff --git a/doc/reference-architectures/ran/openness_xran.md b/doc/reference-architectures/ran/openness_xran.md index dd2f4966..212e0eaf 100644 --- a/doc/reference-architectures/ran/openness_xran.md +++ b/doc/reference-architectures/ran/openness_xran.md @@ -426,7 +426,7 @@ Additional configuration steps are provided below. kubeovn_dpdk: false ``` -2. Modify `host_vars/.yml`. Provide the physical addresses of the connected interface to be used by the xRAN sample application and the number of VFs to be created on each of the connected physical ports. Each port needs to have 2 VFs. The SRIOV setting should look similar to: +2. Modify `host_vars//10-default.yml`. Provide the physical addresses of the connected interface to be used by the xRAN sample application and the number of VFs to be created on each of the connected physical ports. Each port needs to have 2 VFs. The SRIOV setting should look similar to: ```yaml sriov: @@ -491,11 +491,11 @@ To enable PTP synchronization, modify one setting in `./group_vars/all.sh`: ptp_sync_enable: true ``` -For the two nodes that are to be synchronized with PTP, modify files `host_vars/nodeXX.yml` +For the two nodes that are to be synchronized with PTP, modify files `host_vars/nodeXX/10-default.yml` Example: -For node "node01", modify file `host_vars/node01.yml` +For node "node01", modify file `host_vars/node01/10-default.yml` 1. For PTP Configuration 1 [see](#xran-sample-app-deployment-in-openness) @@ -543,8 +543,11 @@ Example: ### Deploy Openness NE Run the deployment script: ```shell - ./deploy_ne.sh + ./deploy_ne.sh -f ``` +**Note:** +Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/x-specs/blob/master/doc/flavors.md). + Check the `/proc/cmd` output. It should look similar to: ```shell From 2b8fb7dd4bff7bd480d1159cc67140be21c9b6ab Mon Sep 17 00:00:00 2001 From: i-kwilk <50014376+i-kwilk@users.noreply.github.com> Date: Fri, 5 Feb 2021 11:14:30 +0100 Subject: [PATCH 05/89] [OP-6897] non-root user doc (#393) * non-root user doc --- .../openness-nonroot.md | 51 +++++++++++++++++++ .../controller-edge-node-setup.md | 11 +++- 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 doc/building-blocks/enhanced-platform-awareness/openness-nonroot.md diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-nonroot.md b/doc/building-blocks/enhanced-platform-awareness/openness-nonroot.md new file mode 100644 index 00000000..b775617e --- /dev/null +++ b/doc/building-blocks/enhanced-platform-awareness/openness-nonroot.md @@ -0,0 +1,51 @@ +```text +SPDX-License-Identifier: Apache-2.0 +Copyright (c) 2021 Intel Corporation +``` + +# The non-root user on the OpenNESS Platform +- [Overview](#overview) +- [Steps on K8s nodes](#steps-on-k8s-nodes) +- [Repository modification](#repository-modification) + +## Overview + +OpenNESS provides a possibility to install all required files on Kubernetes a control plane and nodes with or without root rights. From security perspective it is advised to use non-root user installation of our platform where all tasks are executed with non-root user’s permissions. Tasks that require root privileges use privilege escalation property "become". + + ```yml + - name: Run a command as root + command: whoami + become: yes + ``` +>**NOTE**: For more about privileges escalation in ansible please refer to https://docs.ansible.com/ansible/latest/user_guide/become.html# + +## Steps on K8s nodes + +Before ansible installation is started a non-root user needs to be created on the machines marked in Ansible's inventory. To create a user `openness` a command can be executed: + +```bash +adduser "openness" +``` + +A password for the given user is required. + +```bash +passwd "openness" +``` + +As some tasks require root privileges the non-root user needs to have a possibility to become a root. For the user `openness` the following command must be performed: + +```bash +echo "openness ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/openness +``` + +## Repository modification + +To be able to start ansible as a non-root user a modification in inventory is required. Replacement of root user in variable `ansible_ssh_user` to already created non-root user will cause an execution of all tasks as non-root user specified. + +```ini +[all] +controller ansible_ssh_user=openness ansible_host=192.168.1.10 +node01 ansible_ssh_user=openness ansible_host=192.168.1.11 +node02 ansible_ssh_user=openness ansible_host=192.168.1.12 +``` diff --git a/doc/getting-started/network-edge/controller-edge-node-setup.md b/doc/getting-started/network-edge/controller-edge-node-setup.md index 31587ff2..0f5b85fb 100644 --- a/doc/getting-started/network-edge/controller-edge-node-setup.md +++ b/doc/getting-started/network-edge/controller-edge-node-setup.md @@ -5,6 +5,7 @@ Copyright (c) 2019-2020 Intel Corporation # OpenNESS Network Edge: Controller and Edge node setup +- [OpenNESS Network Edge: Controller and Edge node setup](#openness-network-edge-controller-and-edge-node-setup) - [Quickstart](#quickstart) - [Preconditions](#preconditions) - [Running playbooks](#running-playbooks) @@ -17,11 +18,17 @@ Copyright (c) 2019-2020 Intel Corporation - [Single-node Network Edge cluster](#single-node-network-edge-cluster) - [Harbor registry](#harbor-registry) - [Deploy Harbor registry](#deploy-harbor-registry) + - [System Prerequisite](#system-prerequisite) + - [Ansible Playbooks](#ansible-playbooks) + - [Projects](#projects) - [Harbor login](#harbor-login) - [Harbor registry image push](#harbor-registry-image-push) - [Harbor registry image pull](#harbor-registry-image-pull) - [Harbor UI](#harbor-ui) - - [Harbor CLI](#harbor-registry-CLI) + - [Harbor CLI](#harbor-cli) + - [CLI - List Project](#cli---list-project) + - [CLI - List Image Repositories](#cli---list-image-repositories) + - [CLI - Delete Image](#cli---delete-image) - [Kubernetes cluster networking plugins (Network Edge)](#kubernetes-cluster-networking-plugins-network-edge) - [Selecting cluster networking plugins (CNI)](#selecting-cluster-networking-plugins-cni) - [Adding additional interfaces to pods](#adding-additional-interfaces-to-pods) @@ -559,6 +566,8 @@ and check to make sure that only the key(s) you wanted were added. To make sure the key is copied successfully, try to SSH into the host: `ssh 'root@host'`. It should not ask for the password. +>**NOTE**: Where non-root user is used for example `openness` the command should be replaced to `ssh openness@host`. For more information about non-root user please refer to: +[The non-root user on the OpenNESS Platform](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-nonroot.md) ## Setting proxy If a proxy is required to connect to the Internet, it is configured via the following steps: From fe30c099b616fb929c384ae58c5ad45b6ab8a966 Mon Sep 17 00:00:00 2001 From: ANAND B JYOTI <58255927+abjyoti@users.noreply.github.com> Date: Mon, 8 Feb 2021 19:27:38 +0530 Subject: [PATCH 06/89] Correcting the sequence of operations Consumer Application POD needs to be started before approving consumer's CSR OP-6836 : (OpenNESS-20.12) (Specs repo) Documentation error in sample app onboarding --- .../network-edge-applications-onboarding.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/applications-onboard/network-edge-applications-onboarding.md b/doc/applications-onboard/network-edge-applications-onboarding.md index a41b2c69..bcb86953 100644 --- a/doc/applications-onboard/network-edge-applications-onboarding.md +++ b/doc/applications-onboard/network-edge-applications-onboarding.md @@ -411,13 +411,13 @@ Kubernetes NetworkPolicy is a mechanism that enables control over how pods are a - name: certs emptyDir: {} ``` -8. Accept the consumer's CSR: +8. Deploy the pod: ``` - kubectl certificate approve consumer + kubectl create -f sample_consumer.yml ``` -9. Deploy the pod: +9. Accept the consumer's CSR: ``` - kubectl create -f sample_consumer.yml + kubectl certificate approve consumer ``` 10. Check that the pod is running: ``` From 43661d647293fd46aacf882950c76cb3e9a97c02 Mon Sep 17 00:00:00 2001 From: Dariusz Walczak <48008266+i-wally@users.noreply.github.com> Date: Tue, 9 Feb 2021 17:46:20 +0100 Subject: [PATCH 07/89] Added release notes for OpenNESS 20.12.02 (#397) --- openness_releasenotes.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/openness_releasenotes.md b/openness_releasenotes.md index d702386d..657b7794 100644 --- a/openness_releasenotes.md +++ b/openness_releasenotes.md @@ -31,6 +31,7 @@ This document provides high-level system features, issues, and limitations infor - [OpenNESS - 20.06](#openness---2006-2) - [OpenNESS - 20.09](#openness---2009-2) - [OpenNESS - 20.12](#openness---2012-2) + - [OpenNESS - 20.12.02](#openness---201202) - [Known Issues and Limitations](#known-issues-and-limitations) - [OpenNESS - 19.06](#openness---1906-3) - [OpenNESS - 19.06.01](#openness---190601-3) @@ -40,6 +41,7 @@ This document provides high-level system features, issues, and limitations infor - [OpenNESS - 20.06](#openness---2006-3) - [OpenNESS - 20.09](#openness---2009-3) - [OpenNESS - 20.12](#openness---2012-3) + - [OpenNESS - 20.12.02](#openness---201202-1) - [Release Content](#release-content) - [OpenNESS - 19.06](#openness---1906-4) - [OpenNESS - 19.06.01](#openness---190601-4) @@ -49,6 +51,7 @@ This document provides high-level system features, issues, and limitations infor - [OpenNESS - 20.06](#openness---2006-4) - [OpenNESS - 20.09](#openness---2009-4) - [OpenNESS - 20.12](#openness---2012-4) + - [OpenNESS - 20.12.02](#openness---201202-2) - [Hardware and Software Compatibility](#hardware-and-software-compatibility) - [Intel® Xeon® D Processor](#intel-xeon-d-processor) - [2nd Generation Intel® Xeon® Scalable Processors](#2nd-generation-intel-xeon-scalable-processors) @@ -329,6 +332,13 @@ There are no non-Intel issues relevant to this release. - Known issue with Pod that uses hugepage get stuck in terminating state on deletion hs been fixed after upgrading to Kubernetes 1.19.3 - Upgraded to Kube-OVN v1.5.2 for further Kube-OVN CNI enhancements +## OpenNESS - 20.12.02 +- Fixed EdgeDNS service building failure resulting in deployment failure +- Fixed FlexRAN and FlexRAN Telemetry flavors to eliminate deployment failures +- Fixed Calico and SR-IOV deployment failures +- Fixed TAS deployment +- Updated SR-IOV CNI and device plugin to fix issues with image build in offline package creator + # Known Issues and Limitations ## OpenNESS - 19.06 There are no issues relevant to this release. @@ -376,6 +386,9 @@ There is one issue relevant to this release: it is not possible to remove the ap - An issue appears when the KubeVirt Containerized Data Importer (CDI) upload pod is deployed with Kube-OVN CNI, the deployed pods readiness probe fails and pod is never in ready state. It is advised that the user uses other CNI such as Calico CNI when using CDI with OpenNESS - Telemetry deployment with PCM enabled will cause a deployment failure in single node cluster deployments due to PCM dashboards for Grafana not being found +## OpenNESS - 20.12.02 +- Offline deployment issues related to zlib-devel version 1.2.7-19 + # Release Content ## OpenNESS - 19.06 @@ -407,6 +420,10 @@ OpenNESS Edge node, OpenNESS Controller, Common, Spec, OpenNESS Applications, an > **NOTE**: Edge applications repo is common to Open Source and IDO +## OpenNESS - 20.12.02 +- Open Source: Edge node, Controller, Epcforedge, Common, Spec, Applications and Experience kit. +- IDO: IDO Edge node, IDO Controller, IDO Epcforedge, IDO Spec and IDO Experience kit. + # Hardware and Software Compatibility OpenNESS Edge Node has been tested using the following hardware specification: From 4bf5fa6c50d646a5dc799392636ce415bf4a6b0e Mon Sep 17 00:00:00 2001 From: Karina Murawko-Wisniewska <48431435+i-karina@users.noreply.github.com> Date: Tue, 23 Feb 2021 14:49:23 +0100 Subject: [PATCH 08/89] Centos 7.9 upgrade, openssl 1.1.1i upgrade, docker 20.10.2, K8s 1.20.0 upgrade (#392) --- .../openness-vcac-a.md | 6 +- doc/cloud-adapters/openness_baiducloud.md | 4 +- .../controller-edge-node-setup.md | 4 +- .../openness-experience-kits.md | 16 ++-- .../ran/openness_xran.md | 4 +- openness_releasenotes.md | 77 ++++++++++--------- 6 files changed, 57 insertions(+), 54 deletions(-) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md b/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md index d86e9b9b..e735d715 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md @@ -1,6 +1,6 @@ ```text SPDX-License-Identifier: Apache-2.0 -Copyright (c) 2020 Intel Corporation +Copyright (c) 2020-2021 Intel Corporation ``` # Using Visual Compute Accelerator Card - Analytics (VCAC-A) in OpenNESS @@ -27,7 +27,7 @@ Equipped with a CPU, the VCAC-A card is installed with a standalone operating sy > * The full acronym *VCAC-A* is loosely used when talking about the PCIe card. The VCAC-A installation involves a [two-stage build](https://github.com/OpenVisualCloud/VCAC-SW-Analytics/): -1. VCA host kernel build and configuration: this stage patches the CentOS\* 7.8 kernel and builds the necessary modules and dependencies. +1. VCA host kernel build and configuration: this stage patches the CentOS\* 7.9 kernel and builds the necessary modules and dependencies. 2. VCAC-A system image (VCAD) generation: this stage builds an Ubuntu\*-based (VCAD) image that is loaded on the VCAC-A card. The OEK automates the overall build and installation process of the VCAC-A card by joining it as a standalone logical node to the OpenNESS cluster. The OEK supports force build VCAC-A system image (VCAD) via flag (force\_build\_enable: true (default value)), it also allows the customer to disable the flag to re-use last system image built. When successful, the OpenNESS controller is capable of selectively scheduling workloads on the "VCA node" for proximity to the hardware acceleration. @@ -170,7 +170,7 @@ The pre-defined OpenNESS flavor *media-analytics-vca* is provided to provision a The VCAC-A installation in OEK performs the following tasks: - Pull the release package from [Open Visual Cloud VCAC-A card media analytics software](https://github.com/OpenVisualCloud/VCAC-SW-Analytics) and the required dependencies -- Apply CentOS 7.8 kernel patches and build kernel RPM +- Apply CentOS 7.9 kernel patches and build kernel RPM - Apply module patches and build driver RPM - Build daemon utilities RPM - Install docker-ce and kubernetes on the VCA host diff --git a/doc/cloud-adapters/openness_baiducloud.md b/doc/cloud-adapters/openness_baiducloud.md index 0f9601c7..5083d4ab 100644 --- a/doc/cloud-adapters/openness_baiducloud.md +++ b/doc/cloud-adapters/openness_baiducloud.md @@ -1,6 +1,6 @@ ```text SPDX-License-Identifier: Apache-2.0 -Copyright (c) 2019 Intel Corporation +Copyright (c) 2019-2021 Intel Corporation ``` # OpenNESS Integration with Baidu OpenEdge @@ -322,7 +322,7 @@ The scripts can be found in the release package with the subfolder name `setup_b └── measure_rtt_openedge.py ``` -Before running the scripts, install python3.6 and paho mqtt on a CentOS\* Linux\* machine, where the recommended version is CentOS Linux release 7.8.2003 (Core). +Before running the scripts, install python3.6 and paho mqtt on a CentOS\* Linux\* machine, where the recommended version is CentOS Linux release 7.9.2009 (Core). The following are recommended install commands: ```docker diff --git a/doc/getting-started/network-edge/controller-edge-node-setup.md b/doc/getting-started/network-edge/controller-edge-node-setup.md index 0f5b85fb..5e0af5b9 100644 --- a/doc/getting-started/network-edge/controller-edge-node-setup.md +++ b/doc/getting-started/network-edge/controller-edge-node-setup.md @@ -1,6 +1,6 @@ ```text SPDX-License-Identifier: Apache-2.0 -Copyright (c) 2019-2020 Intel Corporation +Copyright (c) 2019-2021 Intel Corporation ``` @@ -62,7 +62,7 @@ Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving To use the playbooks, several preconditions must be fulfilled. These preconditions are described in the [Q&A](#qa) section below. The preconditions are: -- CentOS\* 7.8.2003 must be installed on hosts where the product is deployed. It is highly recommended to install the operating system using a minimal ISO image on nodes that will take part in deployment (obtained from inventory file). Also, do not make customizations after a fresh manual install because it might interfere with Ansible scripts and give unpredictable results during deployment. +- CentOS\* 7.9.2009 must be installed on hosts where the product is deployed. It is highly recommended to install the operating system using a minimal ISO image on nodes that will take part in deployment (obtained from inventory file). Also, do not make customizations after a fresh manual install because it might interfere with Ansible scripts and give unpredictable results during deployment. - Hosts for the Edge Controller (Kubernetes control plane) and Edge Nodes (Kubernetes nodes) must have proper and unique hostnames (i.e., not `localhost`). This hostname must be specified in `/etc/hosts` (refer to [Setup static hostname](#setup-static-hostname)). diff --git a/doc/getting-started/openness-experience-kits.md b/doc/getting-started/openness-experience-kits.md index 34d9e5f4..f613a7a1 100644 --- a/doc/getting-started/openness-experience-kits.md +++ b/doc/getting-started/openness-experience-kits.md @@ -1,6 +1,6 @@ ```text SPDX-License-Identifier: Apache-2.0 -Copyright (c) 2019 Intel Corporation +Copyright (c) 2019-2021 Intel Corporation ``` # OpenNESS Experience Kits @@ -35,7 +35,7 @@ OEKs allow a user to customize kernel, grub parameters, and tuned profiles by le OEKs contain a `host_vars/` directory in which we can create another directory (`nodes-inventory-name`) and place a YAML file (`10-default.yml`, e.g., `node01/10-default.yml`). The file would contain variables that would override roles' default values. -> **NOTE**: Despite the ability to customize parameters (kernel), it is required to have a clean CentOS\* 7.8.2003 operating system installed on hosts (from a minimal ISO image) that will be later deployed from Ansible scripts. This OS shall not have any user customizations. +> **NOTE**: Despite the ability to customize parameters (kernel), it is required to have a clean CentOS\* 7.9.2009 operating system installed on hosts (from a minimal ISO image) that will be later deployed from Ansible scripts. This OS shall not have any user customizations. To override the default value, place the variable's name and new value in the host's vars file. For example, the contents of `host_vars/node01/10-default.yml` that would result in skipping kernel customization on that node: @@ -74,11 +74,11 @@ Here are several default values: # --- machine_setup/custom_kernel kernel_skip: false # use this variable to disable custom kernel installation for host -kernel_repo_url: http://linuxsoft.cern.ch/cern/centos/7.8.2003/rt/CentOS-RT.repo -kernel_repo_key: http://linuxsoft.cern.ch/cern/centos/7.8.2003/os/x86_64/RPM-GPG-KEY-cern +kernel_repo_url: http://linuxsoft.cern.ch/cern/centos/7.9.2009/rt/CentOS-RT.repo +kernel_repo_key: http://linuxsoft.cern.ch/cern/centos/7.9.2009/os/x86_64/RPM-GPG-KEY-cern kernel_package: kernel-rt-kvm kernel_devel_package: kernel-rt-devel -kernel_version: 3.10.0-1127.19.1.rt56.1116.el7.x86_64 +kernel_version: 3.10.0-1160.11.1.rt56.1145.el7.x86_64 kernel_dependencies_urls: [] kernel_dependencies_packages: [] @@ -95,8 +95,8 @@ additional_grub_params: "" # --- machine_setup/configure_tuned tuned_skip: false # use this variable to skip tuned profile configuration for host tuned_packages: - - tuned-2.11.0-8.el7 - - http://linuxsoft.cern.ch/scientific/7.8/x86_64/os/Packages/tuned-profiles-realtime-2.11.0-8.el7.noarch.rpm + - tuned-2.11.0-9.el7 + - http://ftp.scientificlinux.org/linux/scientific/7/x86_64/os/Packages/tuned-profiles-realtime-2.11.0-9.el7.noarch.rpm tuned_profile: realtime tuned_vars: | isolated_cores=2-3 @@ -105,7 +105,7 @@ tuned_vars: | ``` ### Use different realtime kernel (3.10.0-1062) -By default, `kernel-rt-kvm-3.10.0-1127.19.1.rt56.1116.el7.x86_64` from buil-in repository is installed. +By default, `kernel-rt-kvm-3.10.0-1160.11.1.rt56.1145.el7.x86_64` from buil-in repository is installed. To use another version (e.g., `kernel-rt-kvm-3.10.0-1062.9.1.rt56.1033.el7.x86_64`), create a `host_var` file for the host with content: ```yaml diff --git a/doc/reference-architectures/ran/openness_xran.md b/doc/reference-architectures/ran/openness_xran.md index 212e0eaf..bd49081f 100644 --- a/doc/reference-architectures/ran/openness_xran.md +++ b/doc/reference-architectures/ran/openness_xran.md @@ -1,6 +1,6 @@ ```text SPDX-License-Identifier: Apache-2.0 -Copyright (c) 2020 Intel Corporation +Copyright (c) 2020-2021 Intel Corporation ``` # O-RAN Front Haul Sample Application in OpenNESS @@ -553,7 +553,7 @@ Check the `/proc/cmd` output. It should look similar to: ```shell #cat /proc/cmdline - BOOT_IMAGE=/vmlinuz-3.10.0-1127.19.1.rt56.1116.el7.x86_64 root=/dev/mapper/centosroot ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap intel_iommu=on iommu=pt usbcore.autosuspend=-1 selinux=0 enforcing=0 nmi_watchdog=0 softlockup_panic=0 audit=0 intel_pstate=disable cgroup_memory=1 cgroup_enable=memory mce=off idle=poll hugepagesz=1G hugepages=16 hugepagesz=2M hugepages=0 default_hugepagesz=1G isolcpus=1-19,21-39 rcu_nocbs=1-19,21-39 kthread_cpus=0,20 irqaffinity=0,20 nohz_full=1-19,21-39 + BOOT_IMAGE=/vmlinuz-3.10.0-1160.11.1.rt56.1145.el7.x86_64 root=/dev/mapper/centosroot ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap intel_iommu=on iommu=pt usbcore.autosuspend=-1 selinux=0 enforcing=0 nmi_watchdog=0 softlockup_panic=0 audit=0 intel_pstate=disable cgroup_memory=1 cgroup_enable=memory mce=off idle=poll hugepagesz=1G hugepages=16 hugepagesz=2M hugepages=0 default_hugepagesz=1G isolcpus=1-19,21-39 rcu_nocbs=1-19,21-39 kthread_cpus=0,20 irqaffinity=0,20 nohz_full=1-19,21-39 ``` ### Configure Interfaces diff --git a/openness_releasenotes.md b/openness_releasenotes.md index 657b7794..eafc01df 100644 --- a/openness_releasenotes.md +++ b/openness_releasenotes.md @@ -1,10 +1,10 @@ ```text SPDX-License-Identifier: Apache-2.0 -Copyright (c) 2019-2020 Intel Corporation +Copyright (c) 2019-2021 Intel Corporation ``` -# Release Notes -This document provides high-level system features, issues, and limitations information for Open Network Edge Services Software (OpenNESS). +# Release Notes +This document provides high-level system features, issues, and limitations information for Open Network Edge Services Software (OpenNESS). - [Release history](#release-history) - [OpenNESS - 19.06](#openness---1906) - [OpenNESS - 19.09](#openness---1909) @@ -81,7 +81,7 @@ This document provides high-level system features, issues, and limitations infor - CentOS\* 7.6 / CentOS 7.6 + RT kernel - Basic telemetry support - Sample Reference Applications - - OpenVINO™ based Consumer Application + - OpenVINO™ based Consumer Application - Producer Application supporting OpenVINO™ - Dataplane - DPDK/KNI based Dataplane – NTS @@ -99,7 +99,7 @@ This document provides high-level system features, issues, and limitations infor ## OpenNESS - 19.09 - Edge Cloud Deployment options - - Async method for image download to avoid timeout. + - Async method for image download to avoid timeout. - Dataplane - Support for OVN/OVS based Dataplane and network overlay for Network Edge (based on Kubernetes) - Cloud Adapters @@ -164,13 +164,13 @@ This document provides high-level system features, issues, and limitations infor - Support for VM deployments on Kubernetes mode - Kubevirt based VM deployment support - EPA Support for SRIOV Virtual function allocation to the VMs deployed using Kubernetes -- EPA support - OnPremises +- EPA support - OnPremises - Support for dedicated core allocation to applications running as VMs or Containers - Support for dedicated SRIOV VF allocation to applications running in VM or containers - Support for system resource allocation into the application running as a container - Mount point for shared storage - Pass environment variables - - Configure the port rules + - Configure the port rules - Core Network Feature (5G) - PFD Management API support (3GPP 23.502 Sec. 52.6.3 PFD Management service) - AF: Added support for PFD Northbound API @@ -179,12 +179,12 @@ This document provides high-level system features, issues, and limitations infor - WEB UI: Enhanced CNCA WEB UI to configure PFD params in OnPerm mode - Auth2 based authentication between 5G Network functions: (as per 3GPP Standard) - Implemented oAuth2 based authentication and validation - - AF and NEF communication channel is updated to authenticated based on oAuth2 JWT token in addition to HTTP2. + - AF and NEF communication channel is updated to authenticated based on oAuth2 JWT token in addition to HTTP2. - HTTPS support - Enhanced the 5G OAM, CNCA (web-ui and kube-ctl) to HTTPS interface - Modular Playbook - Support for customers to choose real-time or non-realtime kernel for an edge node - - Support for customers to choose CNIs - Validated with Kube-OVN and Calico + - Support for customers to choose CNIs - Validated with Kube-OVN and Calico - Edge Apps - FlexRAN: Dockerfile and pod specification for the deployment of 4G or 5G FlexRAN - AF: Dockerfile and pod specification @@ -209,7 +209,7 @@ This document provides high-level system features, issues, and limitations infor - Provide ansible and Helm -playbook support for OVC codecs Intel® Xeon® CPU mode - video analytics service (REST API) for developers - Edge Applications - Smart City Application Pipeline supporting CPU or VCAC-A mode with Helm chart - - CDN Content Delivery using NGINX with SR-IOV capability for higher performance with Helm chart + - CDN Content Delivery using NGINX with SR-IOV capability for higher performance with Helm chart - CDN transcode sample application using Intel® Xeon® CPU optimized media SDK with Helm chart - Support for Transcoding Service using Intel® Xeon® CPU optimized media SDK with Helm chart - Intel Edge Insights application support with Helm chart @@ -230,9 +230,9 @@ This document provides high-level system features, issues, and limitations infor - CDN - Transcode - CDN - Content Delivery - Azure - Deployment of OpenNESS cluster on Microsoft\* Azure\* cloud -- Support for OpenNESS on CSP Cloud +- Support for OpenNESS on CSP Cloud - Azure - Deployment of OpenNESS cluster on Microsoft\* Azure\* cloud -- Telemetry Support +- Telemetry Support - Support for Collectd backend with hardware from Intel and custom metrics - cpu, cpufreq, load, hugepages, intel_pmu, intel_rdt, ipmi, ovs_stats, ovs_pmd_stats - FPGA – PACN3000 (collectd) - Temp, Power draw @@ -252,19 +252,22 @@ This document provides high-level system features, issues, and limitations infor - Basic support for Service Mesh using Istio Service Mesh within an OpenNESS cluster. > **NOTE**: When deploying Istio Service Mesh in VMs, a minimum of 8 CPU core and 16GB RAM must be allocated to each worker VM so that Istio operates smoothly - Application of Service Mesh openness 5G and Media analytics - A dedicated network for service to service communications -- EAA Update +- EAA Update - EAA microservices has been updated to be more cloud-native friendly - Edge Insights Application (update) - Industrial Edge Insights Software update to version 2.3. - - Experience Kit now supports multiple detection video's – Safety equipment detection, PCB default detection and also supports external video streams. + - Experience Kit now supports multiple detection video's – Safety equipment detection, PCB default detection and also supports external video streams. ## OpenNESS - 20.12 - Early access release of Edge Multi-Cluster Orchestration(EMCO), a Geo-distributed application orchestrator for Kubernetes. This release supports EMCO deploying and managing the life cycle of the Smart City Application pipeline on the edge cluster. More details in the [EMCO Release Notes](https://github.com/otcshare/EMCO/blob/main/ReleaseNotes.md). - Reference implementation of the offline installation package for the Converged Edge Reference Architecture (CERA) Access Edge flavor enabling installation of Kubernetes and related enhancements for Access edge deployments. - Azure Development kit (Devkit) supporting the installation of an OpenNESS Kubernetes cluster on the Microsoft* Azure* cloud. This is typically used by a customer who wants to develop applications and services for the edge using OpenNESS building blocks. -- Support Intel® vRAN Dedicated Accelerator ACC100, Kubernetes Cloud-native deployment supporting higher capacity 4G/LTE and 5G vRANs cells/carriers for FEC offload. +- Support Intel® vRAN Dedicated Accelerator ACC100, Kubernetes Cloud-native deployment supporting higher capacity 4G/LTE and 5G vRANs cells/carriers for FEC offload. - Major system Upgrades: Kubernetes 1.19.3, CentOS 7.8, Calico 3.16, and Kube-OVN 1.5.2. +## OpenNESS - 21.03 +- Major system Upgrades: CentOS 7.9, Kubernetes 1.20.0, Docker 20.10.2 + # Changes to Existing Features ## OpenNESS - 19.06 @@ -278,14 +281,14 @@ There are no unsupported or discontinued features relevant to this release. ## OpenNESS - 19.12 - NTS Dataplane support for Network edge is discontinued. -- Controller UI for Network edge has been discontinued except for the CNCA configuration. Customers can optionally leverage the Kubernetes dashboard to onboard applications. +- Controller UI for Network edge has been discontinued except for the CNCA configuration. Customers can optionally leverage the Kubernetes dashboard to onboard applications. - Edge node only supports non-realtime kernel. ## OpenNESS - 20.03 -- Support for HDDL-R only restricted to non-real-time or non-customized CentOS 7.6 default kernel. +- Support for HDDL-R only restricted to non-real-time or non-customized CentOS 7.6 default kernel. ## OpenNESS - 20.06 -- Offline install for Native mode OnPremises has be deprecated +- Offline install for Native mode OnPremises has be deprecated ## OpenNESS - 20.09 - Native on-premises is now located in a dedicated repository with no further feature updates from previous release. @@ -312,18 +315,18 @@ There are no non-Intel issues relevant to this release. - Application memory field is in MB ## OpenNESS - 19.12 -- Improved usability/automation in Ansible scripts +- Improved usability/automation in Ansible scripts ## OpenNESS - 20.03 - Realtime Kernel support for network edge with K8s. - Modular playbooks ## OpenNESS - 20.06 -- Optimized the Kubernetes based deployment by supporting multiple Flavors +- Optimized the Kubernetes based deployment by supporting multiple Flavors ## OpenNESS - 20.09 - Further optimized the Kubernetes based deployment by supporting multiple Flavors -- Network edge installation time is optimized using pre-built Docker images +- Network edge installation time is optimized using pre-built Docker images - cAdvisor occasional failure issue is resolved - "Traffic rule creation: cannot parse filled and cleared fields" in Legacy OnPremises is fixed - Issue fixed when removing Edge Node from Controller when its offline and traffic policy is configured or app deployed @@ -360,18 +363,18 @@ There is one issue relevant to this release: it is not possible to remove the ap - Real-time kernel support has been temporarily disabled to address the Kubernetes 1.16.2 and Realtime kernel instability. ## OpenNESS - 20.03 -- On-Premises edge installation takes more than 1.5 hours because of the Docker image build for OVS-DPDK +- On-Premises edge installation takes more than 1.5 hours because of the Docker image build for OVS-DPDK - Network edge installation takes more than 1.5 hours because of the Docker image build for OVS-DPDK - OpenNESS controller allows management NICs to be in the pool of configuration, which might allow configuration by mistake. Thus, disconnecting the node from control plane - When using the SRIOV EPA feature added in 20.03 with OVNCNI, the container cannot access the CNI port. This is due to the SRIOV port being set by changing the network used by the container from default to a custom network. This overwrites the OVNCNI network setting configured before this to enable the container to work with OVNCNI. Another issue with the SRIOV, is that this also overwrites the network configuration with the EAA and edgedns, agents, which prevents the SRIOV enabled container from communicating with the agents. - Cannot remove Edge Node from Controller when its offline and traffic policy is configured or the app is deployed. ## OpenNESS - 20.06 -- On-Premises edge installation takes 1.5hrs because of the Docker image build for OVS-DPDK +- On-Premises edge installation takes 1.5hrs because of the Docker image build for OVS-DPDK - Network edge installation takes 1.5hrs because of docker image build for OVS-DPDK - OpenNESS controller allows management NICs to be in the pool of configuration, which might allow configuration by mistake and thereby disconnect the node from control plane - When using the SRIOV EPA feature added in 20.03 with OVNCNI, the container cannot access the CNI port. This is due to the SRIOV port being set by changing the network used by the container from default to a custom network, This overwrites the OVNCNI network setting configured prior to this to enable the container to work with OVNCNI. Another issue with the SRIOV, is that this also overwrites the network configuration with the EAA and edgedns, agents, which prevents the SRIOV enabled container from communicating with the agents. -- Cannot remove Edge Node from Controller when its offline and traffic policy is configured or app is deployed. +- Cannot remove Edge Node from Controller when its offline and traffic policy is configured or app is deployed. - Legacy OnPremises - Traffic rule creation: cannot parse filled and cleared fields - There is an issue with using CDI when uploading VM images when CMK is enabled due to missing CMK taint toleration. The CDI upload pod does not get deployed and the `virtctl` plugin command times out waiting for the action to complete. A workaround for the issue is to invoke the CDI upload command, edit the taint toleration for the CDI upload to tolerate CMK, update the pod, create the PV, and let the pod run to completion. - There is a known issue with cAdvisor which in certain scenarios occasionally fails to expose the metrics for the Prometheus endpoint. See the following GitHub\* link: https://github.com/google/cadvisor/issues/2537 @@ -392,30 +395,30 @@ There is one issue relevant to this release: it is not possible to remove the ap # Release Content ## OpenNESS - 19.06 -OpenNESS Edge node, OpenNESS Controller, Common, Spec, and OpenNESS Applications. +OpenNESS Edge node, OpenNESS Controller, Common, Spec, and OpenNESS Applications. ## OpenNESS - 19.06.01 -OpenNESS Edge node, OpenNESS Controller, Common, Spec, and OpenNESS Applications. +OpenNESS Edge node, OpenNESS Controller, Common, Spec, and OpenNESS Applications. ## OpenNESS - 19.09 -OpenNESS Edge node, OpenNESS Controller, Common, Spec, and OpenNESS Applications. +OpenNESS Edge node, OpenNESS Controller, Common, Spec, and OpenNESS Applications. ## OpenNESS - 19.12 -OpenNESS Edge node, OpenNESS Controller, Common, Spec, OpenNESS Applications, and Experience kit. +OpenNESS Edge node, OpenNESS Controller, Common, Spec, OpenNESS Applications, and Experience kit. ## OpenNESS - 20.03 -OpenNESS Edge node, OpenNESS Controller, Common, Spec, OpenNESS Applications, and Experience kit. +OpenNESS Edge node, OpenNESS Controller, Common, Spec, OpenNESS Applications, and Experience kit. ## OpenNESS - 20.06 -- Open Source: Edge node, Controller, Epcforedge, Common, Spec, Applications, and Experience kit. +- Open Source: Edge node, Controller, Epcforedge, Common, Spec, Applications, and Experience kit. - IDO: IDO Edge node, IDO Controller, IDO Epcforedge, IDO Spec, and IDO Experience kit. -## OpenNESS - 20.09 -- Open Source: Edge node, Controller, Epcforedge, Common, Spec, Applications and Experience kit. +## OpenNESS - 20.09 +- Open Source: Edge node, Controller, Epcforedge, Common, Spec, Applications and Experience kit. - IDO: IDO Edge node, IDO Controller, IDO Epcforedge, IDO Spec and IDO Experience kit. -## OpenNESS - 20.12 -- Open Source: Edge node, Controller, Epcforedge, Common, Spec, Applications and Experience kit. +## OpenNESS - 20.12 +- Open Source: Edge node, Controller, Epcforedge, Common, Spec, Applications and Experience kit. - IDO: IDO Edge node, IDO Controller, IDO Epcforedge, IDO Spec and IDO Experience kit. > **NOTE**: Edge applications repo is common to Open Source and IDO @@ -472,9 +475,9 @@ OpenNESS Edge Node has been tested using the following hardware specification: # Supported Operating Systems -OpenNESS was tested on CentOS Linux release 7.8.2003 (Core) -> **NOTE**: OpenNESS is tested with CentOS 7.8 Pre-empt RT kernel to ensure VNFs and Applications can co-exist. There is no requirement from OpenNESS software to run on a Pre-empt RT kernel. +OpenNESS was tested on CentOS Linux release 7.9.2009 (Core) +> **NOTE**: OpenNESS is tested with CentOS 7.9 Pre-empt RT kernel to ensure VNFs and Applications can co-exist. There is no requirement from OpenNESS software to run on a Pre-empt RT kernel. # Packages Version -Package: telemetry, cadvisor 0.36.0, grafana 7.0.3, prometheus 2.16.0, prometheus: node exporter 1.0.0-rc.0, golang 1.15, docker 19.03.12, kubernetes 1.19.3, dpdk 19.11, ovs 2.14.0, ovn 2.14.0, helm 3.0, kubeovn 1.5.2, flannel 0.12.0, calico 3.16.0, multus 3.6, sriov cni 2.3, nfd 0.6.0, cmk v1.4.1, TAS (from specific commit "a13708825e854da919c6fdf05d50753113d04831") +Package: telemetry, cadvisor 0.36.0, grafana 7.0.3, prometheus 2.16.0, prometheus: node exporter 1.0.0-rc.0, golang 1.15, docker 20.10.2, kubernetes 1.20.0, dpdk 19.11, ovs 2.14.0, ovn 2.14.0, helm 3.0, kubeovn 1.5.2, flannel 0.12.0, calico 3.16.0, multus 3.6, sriov cni 2.3, nfd 0.6.0, cmk v1.4.1, TAS (from specific commit "a13708825e854da919c6fdf05d50753113d04831"), openssl 1.1.1i From 85e5643fd4c2bc9e72eca63f7669fed6e1b2d43c Mon Sep 17 00:00:00 2001 From: Nikita Basovs Date: Wed, 24 Feb 2021 14:00:28 +0000 Subject: [PATCH 09/89] Fixed dead links detected by the find_dead_links.py script --- .../network-edge-applications-onboarding.md | 8 ++++---- .../openness-interface-service.md | 2 +- doc/applications/openness_ovc.md | 2 +- doc/building-blocks/dataplane/openness-interapp.md | 2 +- doc/building-blocks/dataplane/openness-ovn.md | 2 +- .../openness-dedicated-core.md | 4 ++-- .../openness-node-feature-discovery.md | 2 +- .../openness-sriov-multiple-interfaces.md | 4 ++-- .../network-edge/controller-edge-node-setup.md | 6 +++--- doc/getting-started/network-edge/supported-epa.md | 14 +++++++------- doc/getting-started/openness-experience-kits.md | 2 +- doc/orchestration/openness-helm.md | 2 +- doc/reference-architectures/ran/openness_ran.md | 7 +++---- doc/reference-architectures/ran/openness_xran.md | 2 +- 14 files changed, 29 insertions(+), 30 deletions(-) diff --git a/doc/applications-onboard/network-edge-applications-onboarding.md b/doc/applications-onboard/network-edge-applications-onboarding.md index bcb86953..eb4caa26 100644 --- a/doc/applications-onboard/network-edge-applications-onboarding.md +++ b/doc/applications-onboard/network-edge-applications-onboarding.md @@ -49,7 +49,7 @@ This document explains the build and deployment of two applications: 2. OpenVINO™ application: A close to real-world inference application ## Building sample application images -The sample application is available in [the edgeapps repository](https://github.com/otcshare/edgeapps/tree/master/sample-app); further information about the application is contained within the `Readme.md` file. +The sample application is available in [the edgeapps repository](https://github.com/otcshare/edgeapps/tree/master/applications/sample-app); further information about the application is contained within the `Readme.md` file. The following steps are required to build the sample application Docker images for testing the OpenNESS Edge Application Agent (EAA) with consumer and producer applications: @@ -64,7 +64,7 @@ The following steps are required to build the sample application Docker images f docker images | grep consumer ``` ## Building the OpenVINO application images -The OpenVINO application is available in [the EdgeApps repository](https://github.com/otcshare/edgeapps/tree/master/openvino); further information about the application is contained within `Readme.md` file. +The OpenVINO application is available in [the EdgeApps repository](https://github.com/otcshare/edgeapps/tree/master/applications/openvino); further information about the application is contained within `Readme.md` file. The following steps are required to build the sample application Docker images for testing OpenVINO consumer and producer applications: @@ -726,10 +726,10 @@ kubectl interfaceservice get ## Inter application communication The IAC is available via the default overlay network used by Kubernetes - Kube-OVN. -For more information on Kube-OVN, refer to the Kube-OVN support in OpenNESS [documentation](https://github.com/otcshare/specs/blob/master/doc/dataplane/openness-interapp.md#interapp-communication-support-in-openness-network-edge) +For more information on Kube-OVN, refer to the Kube-OVN support in OpenNESS [documentation](https://github.com/otcshare/specs/blob/master/doc/building-blocks/dataplane/openness-interapp.md#interapp-communication-support-in-openness-network-edge) # Enhanced Platform Awareness -Enhanced platform awareness (EPA) is supported in OpenNESS via the use of the Kubernetes NFD plugin. This plugin is enabled in OpenNESS for Network Edge by default. Refer to the [NFD whitepaper](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-node-feature-discovery.md) for information on how to make your application pods aware of the supported platform capabilities. +Enhanced platform awareness (EPA) is supported in OpenNESS via the use of the Kubernetes NFD plugin. This plugin is enabled in OpenNESS for Network Edge by default. Refer to the [NFD whitepaper](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-node-feature-discovery.md) for information on how to make your application pods aware of the supported platform capabilities. Refer to [supported-epa.md](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/supported-epa.md) for the list of supported EPA features on OpenNESS network edge. diff --git a/doc/applications-onboard/openness-interface-service.md b/doc/applications-onboard/openness-interface-service.md index 4ed28b9c..03be4716 100644 --- a/doc/applications-onboard/openness-interface-service.md +++ b/doc/applications-onboard/openness-interface-service.md @@ -78,7 +78,7 @@ Currently, interface service supports the following values of the `driver` param ## Userspace (DPDK) bridge -The default DPDK-enabled bridge `br-userspace` is only available if OpenNESS is deployed with support for [Userspace CNI](https://github.com/otcshare/specs/blob/master/doc/dataplane/openness-userspace-cni.md) and at least one pod was deployed using the Userspace CNI. You can check if the `br-userspace` bridge exists by running the following command on your node: +The default DPDK-enabled bridge `br-userspace` is only available if OpenNESS is deployed with support for [Userspace CNI](https://github.com/otcshare/specs/blob/master/doc/building-blocks/dataplane/openness-userspace-cni.md) and at least one pod was deployed using the Userspace CNI. You can check if the `br-userspace` bridge exists by running the following command on your node: ```shell ovs-vsctl list-br diff --git a/doc/applications/openness_ovc.md b/doc/applications/openness_ovc.md index 68786b9f..a5af50af 100644 --- a/doc/applications/openness_ovc.md +++ b/doc/applications/openness_ovc.md @@ -38,7 +38,7 @@ OpenNESS provides the underpinning network edge infrastructure which comprises t ![Smart City Architecure Deployed with OpenNESS](ovc-images/smart-city-architecture.png) -The Open Visual Cloud website is located at the [Open Visual Cloud project](https://01.org/openvisualcloud). Smart City sample source code and documentation are available on [GitHub](https://github.com/OpenVisualCloud/Smart-City-Sample) and its integration with OpenNESS is available at [OpenNESS branch](https://github.com/OpenVisualCloud/Smart-City-Sample/tree/openness). +The Open Visual Cloud website is located at the [Open Visual Cloud project](https://01.org/openvisualcloud). Smart City sample source code and documentation are available on [GitHub](https://github.com/O-penVisualCloud/Smart-City-Sample) and its integration with OpenNESS is available at [OpenNESS branch](https://github.com/OpenVisualCloud/Smart-City-Sample). ## The Smart City Building Blocks The Smart City sample consists of the following major building blocks: diff --git a/doc/building-blocks/dataplane/openness-interapp.md b/doc/building-blocks/dataplane/openness-interapp.md index a9fc232f..6b8dbb68 100644 --- a/doc/building-blocks/dataplane/openness-interapp.md +++ b/doc/building-blocks/dataplane/openness-interapp.md @@ -15,7 +15,7 @@ Multi-core edge cloud platforms typically host multiple containers or virtual ma ## InterApp Communication support in OpenNESS Network Edge -InterApp communication on the OpenNESS Network Edge is supported using Open Virtual Network for Open vSwitch [OVN/OVS](https://github.com/otcshare/x-specs/blob/master/doc/dataplane/openness-ovn.md) as the infrastructure. OVN/OVS in the network edge is supported through the Kubernetes kube-OVN Container Network Interface (CNI). +InterApp communication on the OpenNESS Network Edge is supported using Open Virtual Network for Open vSwitch [OVN/OVS](https://github.com/otcshare/x-specs/blob/master/doc/building-blocks/dataplane/openness-ovn.md) as the infrastructure. OVN/OVS in the network edge is supported through the Kubernetes kube-OVN Container Network Interface (CNI). OVN/OVS is used as a default networking infrastructure for: - Data plane interface: User data transmission between User Equipment (UE) and edge applications diff --git a/doc/building-blocks/dataplane/openness-ovn.md b/doc/building-blocks/dataplane/openness-ovn.md index b519bad2..1adad3db 100644 --- a/doc/building-blocks/dataplane/openness-ovn.md +++ b/doc/building-blocks/dataplane/openness-ovn.md @@ -9,7 +9,7 @@ Copyright (c) 2019-2020 Intel Corporation - [Summary](#summary) ## OVN Introduction -Open Virtual Network (OVN) is an open-source solution based on the Open vSwitch-based (OVS) software-defined networking (SDN) solution for providing network services to instances. OVN adds to the capabilities of OVS to provide native support for virtual network abstractions, such as virtual L2 and L3 overlays and security groups. Further information about the OVN architecture can be found [here](https://www.openvswitch.org/support/dist-docs/ovn-architecture.7.html) +Open Virtual Network (OVN) is an open-source solution based on the Open vSwitch-based (OVS) software-defined networking (SDN) solution for providing network services to instances. OVN adds to the capabilities of OVS to provide native support for virtual network abstractions, such as virtual L2 and L3 overlays and security groups. Further information about the OVN architecture can be found [here](http://www.openvswitch.org/support/dist-docs-2.5/ovn-architecture.7.html) ## OVN/OVS support in OpenNESS Network Edge The primary objective of supporting OVN/OVS in OpenNESS is to demonstrate the capability of using a standard dataplane such as OVS for an Edge Compute platform. Using OVN/OVS further provides standard SDN-based flow configuration for the edge Dataplane. diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md index 45bf360f..2e80b804 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md @@ -50,7 +50,7 @@ CMK documentation available on GitHub\* includes: - [operator manual](https://github.com/intel/CPU-Manager-for-Kubernetes/blob/master/docs/operator.md) - [user manual](https://github.com/intel/CPU-Manager-for-Kubernetes/blob/master/docs/user.md) -CMK can be deployed using a [Helm chart](https://helm.sh/). The CMK Helm chart used in OpenNESS deployment is available on the following GitHub repository: [container-experience-kits](https://github.com/intel/container-experience-kits/tree/master/roles/cmk-install). +CMK can be deployed using a [Helm chart](https://helm.sh/). The CMK Helm chart used in OpenNESS deployment is available on the following GitHub repository: [container-experience-kits](https://github.com/intel/container-experience-kits/tree/master/roles/cmk_install). ### Setup @@ -61,7 +61,7 @@ CMK can be deployed using a [Helm chart](https://helm.sh/). The CMK Helm chart u ```yaml # CMK - Number of cores in exclusive pool cmk_num_exclusive_cores: "4" - # CMK - Number of cores in shared pool + # CMK - Number of cores in shared poolgit cmk_num_shared_cores: "1" # CMK - Comma separated list of nodes' hostnames cmk_host_list: "node01,node02" diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-node-feature-discovery.md b/doc/building-blocks/enhanced-platform-awareness/openness-node-feature-discovery.md index 98742fd7..a82a1485 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-node-feature-discovery.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-node-feature-discovery.md @@ -52,7 +52,7 @@ Node Feature Discovery is enabled by default. It does not require any configurat The connection between `nfd-nodes` and `nfd-control-plane` is secured by certificates generated before running NFD pods. -Node Feature Discovery is deployed in OpenNESS using a Helm chart downloaded from [container-experience-kits](https://github.com/intel/container-experience-kits/tree/master/roles/nfd-install/charts/node-feature-discovery) repository. +Node Feature Discovery is deployed in OpenNESS using a Helm chart downloaded from [container-experience-kits](https://github.com/intel/container-experience-kits/tree/master/roles/nfd_install/charts/node-feature-discovery) repository. #### Usage diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md b/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md index 2df6b212..bc34d562 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md @@ -61,7 +61,7 @@ kubernetes_cnis: ### Multus usage -Multus CNI is deployed in OpenNESS using a Helm chart. The Helm chart is available in [openness-experience-kits](https://github.com/otcshare/openness-experience-kits/tree/master/roles/kubernetes/cni/multus/master/files/multus-cni). The Multus image is pulled by Ansible\* Multus role and pushed to a local Docker\* registry on Edge Controller. +Multus CNI is deployed in OpenNESS using a Helm chart. The Helm chart is available in [openness-experience-kits](https://github.com/otcshare/openness-experience-kits/tree/master/roles/kubernetes/cni/multus/controlplane/files/multus-cni). The Multus image is pulled by Ansible\* Multus role and pushed to a local Docker\* registry on Edge Controller. [Custom resource definition](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#custom-resources) (CRD) is used to define an additional network that can be used by Multus. @@ -130,7 +130,7 @@ kubernetes_cnis: - sriov ``` -SR-IOV CNI and device plugin are deployed in OpenNESS using Helm chart. The Helm chart is available in [openness-experience-kits](https://github.com/otcshare/openness-experience-kits/tree/master/roles/kubernetes/cni/sriov/master/files/sriov). Additional chart templates for SR-IOV device plugin can be downloaded from [container-experience-kits repository](https://github.com/intel/container-experience-kits/tree/master/roles/sriov-dp-install/charts/sriov-net-dp/templates). SR-IOV images are built from source by the Ansible SR-IOV role and pushed to a local Harbor registry on Edge Controller. +SR-IOV CNI and device plugin are deployed in OpenNESS using Helm chart. The Helm chart is available in [openness-experience-kits](https://github.com/otcshare/openness-experience-kits/tree/master/roles/kubernetes/cni/sriov/controlplane/files/sriov). Additional chart templates for SR-IOV device plugin can be downloaded from [container-experience-kits repository](https://github.com/intel/container-experience-kits/tree/master/roles/sriov_dp_install/charts/sriov-net-dp/templates). SR-IOV images are built from source by the Ansible SR-IOV role and pushed to a local Harbor registry on Edge Controller. #### Edge Node SR-IOV interfaces configuration diff --git a/doc/getting-started/network-edge/controller-edge-node-setup.md b/doc/getting-started/network-edge/controller-edge-node-setup.md index 0f5b85fb..62fad9c9 100644 --- a/doc/getting-started/network-edge/controller-edge-node-setup.md +++ b/doc/getting-started/network-edge/controller-edge-node-setup.md @@ -123,7 +123,7 @@ Support for VM deployment on OpenNESS for Network Edge is available and enabled ### Application on-boarding -Refer to the [network-edge-applications-onboarding](https://github.com/otcshare/specs/blob/master/doc/aplications-onboard/network-edge-applications-onboarding.md) document for instructions on how to deploy edge applications for OpenNESS Network Edge. +Refer to the [network-edge-applications-onboarding](https://github.com/otcshare/specs/blob/master/doc/applications-onboard/network-edge-applications-onboarding.md) document for instructions on how to deploy edge applications for OpenNESS Network Edge. ### Single-node Network Edge cluster @@ -368,8 +368,8 @@ The following CNIs are currently supported: * Network attachment definition: openness-calico * [weavenet](https://github.com/weaveworks/weave) * CIDR: 10.32.0.0/12 -* [SR-IOV](https://github.com/intel/sriov-cni) (cannot be used as a standalone or primary CNI - [sriov setup](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md)) -* [Userspace](https://github.com/intel/userspace-cni-network-plugin) (cannot be used as a standalone or primary CNI - [Userspace CNI setup](https://github.com/otcshare/specs/blob/master/doc/dataplane/openness-userspace-cni.md) +* [SR-IOV](https://github.com/intel/sriov-cni) (cannot be used as a standalone or primary CNI - [sriov setup](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md)) +* [Userspace](https://github.com/intel/userspace-cni-network-plugin) (cannot be used as a standalone or primary CNI - [Userspace CNI setup](https://github.com/otcshare/specs/blob/master/doc/building-blocks/dataplane/openness-userspace-cni.md) Multiple CNIs can be requested to be set up for the cluster. To provide such functionality [the Multus CNI](https://github.com/intel/multus-cni) is used. diff --git a/doc/getting-started/network-edge/supported-epa.md b/doc/getting-started/network-edge/supported-epa.md index a96492e0..9832724e 100644 --- a/doc/getting-started/network-edge/supported-epa.md +++ b/doc/getting-started/network-edge/supported-epa.md @@ -12,11 +12,11 @@ Enhanced Platform Awareness (EPA) features are supported in on-premises using Ku ## Features The following EPA features are supported in Open Network Edge Services Software (OpenNESS) Network Edge: - * [openness-hugepage.md: Hugepages support for edge applications and network functions](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-hugepage.md) - * [openness-node-feature-discovery.md: Edge node hardware and software feature discovery support in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-node-feature-discovery.md) - * [openness-sriov-multiple-interfaces.md: Dedicated physical network interface allocation support for edge applications and network functions](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md) - * [openness-dedicated-core.md: Dedicated CPU core allocation support for edge applications and network functions](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-dedicated-core.md) - * [openness-bios.md: Edge platform BIOS and firmware and configuration support in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-bios.md) - * [openness-fpga.md: Dedicated FPGA IP resource allocation support for edge applications and network functions](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-fpga.md) - * [openness-topology-manager.md: Resource locality awareness support through topology manager in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-topology-manager.md) + * [openness-hugepage.md: Hugepages support for edge applications and network functions](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-hugepage.md) + * [openness-node-feature-discovery.md: Edge node hardware and software feature discovery support in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-node-feature-discovery.md) + * [openness-sriov-multiple-interfaces.md: Dedicated physical network interface allocation support for edge applications and network functions](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md) + * [openness-dedicated-core.md: Dedicated CPU core allocation support for edge applications and network functions](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md) + * [openness-bios.md: Edge platform BIOS and firmware and configuration support in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-bios.md) + * [openness-fpga.md: Dedicated FPGA IP resource allocation support for edge applications and network functions](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md) + * [openness-topology-manager.md: Resource locality awareness support through topology manager in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-topology-manager.md) diff --git a/doc/getting-started/openness-experience-kits.md b/doc/getting-started/openness-experience-kits.md index 34d9e5f4..8d687ca2 100644 --- a/doc/getting-started/openness-experience-kits.md +++ b/doc/getting-started/openness-experience-kits.md @@ -226,4 +226,4 @@ The following are basic prechecks that are currently executed: include_tasks: kube-ovn.yml when: "'kubeovn' in kubernetes_cnis" ``` -* If the CNI is used as an additional CNI (with Multus\*), the network attachment definition must be supplied ([refer to Multus docs for more info](https://github.com/intel/multus-cni/blob/master/doc/quickstart.md#storing-a-configuration-as-a-custom-resource)). +* If the CNI is used as an additional CNI (with Multus\*), the network attachment definition must be supplied ([refer to Multus docs for more info](https://github.com/intel/multus-cni/blob/master/docs/quickstart.md#storing-a-configuration-as-a-custom-resource)). diff --git a/doc/orchestration/openness-helm.md b/doc/orchestration/openness-helm.md index 50919e9c..b101e6cd 100644 --- a/doc/orchestration/openness-helm.md +++ b/doc/orchestration/openness-helm.md @@ -49,7 +49,7 @@ OpenNESS provides the following helm charts: - [Telemetry Sample Application Helm Charts](https://github.com/otcshare/edgeapps/tree/master/applications/telemetry-sample-app) - [EIS Sample Application Helm Charts](https://github.com/otcshare/edgeapps/tree/master/applications/eis-experience-kit) - Network Functions - - [FlexRAN Helm Charts](https://github.com/otcshare/edgeapps/tree/master/network-functions/ran/charts/flexran) + - [FlexRAN Helm Charts](https://github.com/otcshare/edgeapps/tree/master/network-functions/ran/charts/du-dev) - [xRAN Helm Charts](https://github.com/otcshare/edgeapps/tree/master/network-functions/xran/helmcharts/xranchart) - [UPF Helm Charts](https://github.com/otcshare/edgeapps/tree/master/network-functions/core-network/charts/upf) diff --git a/doc/reference-architectures/ran/openness_ran.md b/doc/reference-architectures/ran/openness_ran.md index 3f1eeaba..fd21a810 100644 --- a/doc/reference-architectures/ran/openness_ran.md +++ b/doc/reference-architectures/ran/openness_ran.md @@ -65,7 +65,7 @@ This section explains the steps involved in building the FlexRAN image. Only L1 cd edgeapps/network-functions/ran/5G/du-dev ./build-du-dev-image.sh ``` - The list of binary files that are used is documented in [dockerfile](https://github.com/otcshare/edgeapps/blob/master/network-functions/ran/5G/flexRAN-gnb/Dockerfile) + The list of binary files that are used is documented in [dockerfile](https://github.com/otcshare/edgeapps/blob/master/network-functions/ran/5G/du-dev/Dockerfile) - ICC, IPP mpi and mkl Runtime - DPDK build target directory - FlexRAN test vectors (optional) @@ -76,7 +76,6 @@ This section explains the steps involved in building the FlexRAN image. Only L1 6. The following example reflects the Docker image [expected by Helm chart](https://github.com/otcshare/edgeapps/blob/master/network-functions/ran/charts/du-dev/values.yaml), user needs to adjust the IP address and port of the Harbor registry where Docker image will be pushed: - ```shell image: repository: :/intel/flexran5g # Change Me! - please provide IP address and port @@ -92,7 +91,7 @@ This section explains the steps involved in building the FlexRAN image. Only L1 docker push :/intel/flexran5g:3.10.0-1127.19.1.rt56 ``` -By the end of step 7, the FlexRAN Docker image is created and available in the Harbor registry. This image is copied to the edge node where FlexRAN will be deployed and that is installed with OpenNESS Network edge with all the required EPA features including Intel® FPGA Programmable Acceleration Card (Intel® FPGA PAC) N3000. Please refer to the document [Using FPGA in OpenNESS: Programming, Resource Allocation, and Configuration](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-fpga.md) for details on setting up Intel® FPGA PAC N3000 with vRAN FPGA image. +By the end of step 7, the FlexRAN Docker image is created and available in the Harbor registry. This image is copied to the edge node where FlexRAN will be deployed and that is installed with OpenNESS Network edge with all the required EPA features including Intel® FPGA Programmable Acceleration Card (Intel® FPGA PAC) N3000. Please refer to the document [Using FPGA in OpenNESS: Programming, Resource Allocation, and Configuration](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md) for details on setting up Intel® FPGA PAC N3000 with vRAN FPGA image. # FlexRAN hardware platform configuration ## BIOS @@ -144,7 +143,7 @@ Instructions on how to configure the kernel command line in OpenNESS can be foun openness syslog-master-894hs 1/1 Running 0 7d19h openness syslog-ng-n7zfm 1/1 Running 16 7d19h ``` -4. Deploy the Kubernetes job to program the [FPGA](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-fpga.md#fpga-programming-and-telemetry-on-openness-network-edge) +4. Deploy the Kubernetes job to program the [FPGA](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md#fpga-programming-and-telemetry-on-openness-network-edge) 5. Deploy the Kubernetes job to configure the [BIOS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-bios.md) (note: only works on select Intel development platforms) 6. Deploy the Kubernetes job to configure the [Intel PAC N3000 FPGA](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md#fec-vf-configuration-for-openness-network-edge) 7. Deploy the FlexRAN Kubernetes pod using a helm chart provided in Edge Apps repository at `edgeapps/network-functions/ran/charts`: diff --git a/doc/reference-architectures/ran/openness_xran.md b/doc/reference-architectures/ran/openness_xran.md index 212e0eaf..6c44f0c6 100644 --- a/doc/reference-architectures/ran/openness_xran.md +++ b/doc/reference-architectures/ran/openness_xran.md @@ -437,7 +437,7 @@ Additional configuration steps are provided below. vm_vf_ports: 0 ``` -Detailed instructions on configuring SRIOV for OpenNESS can be found [here](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md) +Detailed instructions on configuring SRIOV for OpenNESS can be found [here](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md) 3. Modify SRIOV ConfigMap From d02fdb7a80f902510c97313755c81ab44db71202 Mon Sep 17 00:00:00 2001 From: Nikita Basovs Date: Wed, 24 Feb 2021 14:36:39 +0000 Subject: [PATCH 10/89] Fixed some accidental typing in middle of doc --- .../enhanced-platform-awareness/openness-dedicated-core.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md index 2e80b804..760da040 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md @@ -61,7 +61,7 @@ CMK can be deployed using a [Helm chart](https://helm.sh/). The CMK Helm chart u ```yaml # CMK - Number of cores in exclusive pool cmk_num_exclusive_cores: "4" - # CMK - Number of cores in shared poolgit + # CMK - Number of cores in shared pool cmk_num_shared_cores: "1" # CMK - Comma separated list of nodes' hostnames cmk_host_list: "node01,node02" From 468fcf53d380855990386580e4950cc472836f72 Mon Sep 17 00:00:00 2001 From: Nikita Basovs Date: Mon, 1 Mar 2021 15:07:49 +0000 Subject: [PATCH 11/89] Additional fixes --- doc/applications/openness_ovc.md | 2 +- .../enhanced-platform-awareness/openness-acc100.md | 2 +- .../enhanced-platform-awareness/openness-fpga.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/applications/openness_ovc.md b/doc/applications/openness_ovc.md index a5af50af..2374a07b 100644 --- a/doc/applications/openness_ovc.md +++ b/doc/applications/openness_ovc.md @@ -38,7 +38,7 @@ OpenNESS provides the underpinning network edge infrastructure which comprises t ![Smart City Architecure Deployed with OpenNESS](ovc-images/smart-city-architecture.png) -The Open Visual Cloud website is located at the [Open Visual Cloud project](https://01.org/openvisualcloud). Smart City sample source code and documentation are available on [GitHub](https://github.com/O-penVisualCloud/Smart-City-Sample) and its integration with OpenNESS is available at [OpenNESS branch](https://github.com/OpenVisualCloud/Smart-City-Sample). +The Open Visual Cloud website is located at the [Open Visual Cloud project](https://01.org/openvisualcloud). Smart City sample source code and documentation are available on [GitHub](https://github.com/OpenVisualCloud/Smart-City-Sample) and its integration with OpenNESS is available at [OpenNESS branch](https://github.com/OpenVisualCloud/Smart-City-Sample). ## The Smart City Building Blocks The Smart City sample consists of the following major building blocks: diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md b/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md index d37e3aea..6d641a83 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md @@ -182,7 +182,7 @@ kubectl get node -o json | jq '.status.allocatable' ``` To request the device as a resource in the pod, add the request for the resource into the pod specification file by specifying its name and the amount of resources required. If the resource is not available or the amount of resources requested is greater than the number of resources available, the pod status will be “Pending” until the resource is available. -**NOTE**: The name of the resource must match the name specified in the configMap for the K8s devices plugin [configMap.yml](https://github.com/otcshare/openness-experience-kits/blob/master/roles/kubernetes/cni/sriov/controlplane/files/sriov/templates/configMap.yml). +**NOTE**: The name of the resource must match the name specified in the configMap for the K8s devices plugin [configMap.yml](https://github.com/otcshare/openness-experience-kits/blob/master/roles/kubernetes/cni/sriov/controlplane/templates/configMap.yml.j2). A sample pod requesting the ACC100 (FEC) VF may look like this: diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md b/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md index 4da63818..353df3e6 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md @@ -269,7 +269,7 @@ kubectl get node -o json | jq '.status.allocatable' ``` To request the device as a resource in the pod, add the request for the resource into the pod specification file by specifying its name and amount of resources required. If the resource is not available or the amount of resources requested is greater than the number of resources available, the pod status will be “Pending” until the resource is available. -**NOTE**: The name of the resource must match the name specified in the configMap for the K8s devices plugin [configMap.yml](https://github.com/otcshare/openness-experience-kits/blob/master/roles/kubernetes/cni/sriov/controlplane/files/sriov/templates/configMap.yml). +**NOTE**: The name of the resource must match the name specified in the configMap for the K8s devices plugin [configMap.yml](https://github.com/otcshare/openness-experience-kits/blob/master/roles/kubernetes/cni/sriov/controlplane/templates/configMap.yml.j2). A sample pod requesting the FPGA (FEC) VF may look like this: From c2b1f776d671d61932e967048da78a67af24f3de Mon Sep 17 00:00:00 2001 From: root Date: Tue, 2 Mar 2021 14:00:57 +0530 Subject: [PATCH 12/89] Update repo with updates in other repos --- .../openness-network-edge-vm-support.md | 22 +++++++++---------- .../dataplane/openness-interapp.md | 2 +- .../openness-dedicated-core.md | 2 +- .../openness-fpga.md | 4 ++-- .../controller-edge-node-setup.md | 6 ++--- .../ran/openness_xran.md | 2 +- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/doc/applications-onboard/openness-network-edge-vm-support.md b/doc/applications-onboard/openness-network-edge-vm-support.md index 486ef20b..62aaa4ac 100644 --- a/doc/applications-onboard/openness-network-edge-vm-support.md +++ b/doc/applications-onboard/openness-network-edge-vm-support.md @@ -110,7 +110,7 @@ The KubeVirt role responsible for bringing up KubeVirt components is enabled by ``` 2. Set up other common configurations for the cluster and enable other EPA features as needed and deploy the cluster using the `deploy_ne.sh -f ` script in the OpenNESS experience kit top-level directory. -Note: Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/x-specs/blob/master/doc/flavors.md). +Note: Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/specs/blob/master/doc/flavors.md). 3. On successful deployment, the following pods will be in a running state: ```shell @@ -134,14 +134,14 @@ Note: Up to version 20.12 choosing flavor was optional. Since version 21.03 and ## VM deployment Provided below are sample deployment instructions for different types of VMs. -Please use sample `.yaml` specification files provided in the OpenNESS Edge Controller directory, [edgenode/edgecontroller/kubevirt/examples/](https://github.com/otcshare/edgenode/tree/master/edgecontroller/kubevirt/examples), to deploy the workloads. Some of the files require modification to suit the environment they will be deployed in. Specific instructions on modifications are provided in the following steps: +Please use sample `.yaml` specification files provided in the OpenNESS Edge Controller directory, [edgeservices/edgecontroller/kubevirt/examples/](https://github.com/otcshare/edgeservices/tree/master/edgecontroller/kubevirt/examples), to deploy the workloads. Some of the files require modification to suit the environment they will be deployed in. Specific instructions on modifications are provided in the following steps: ### Stateless VM deployment To deploy a sample stateless VM with containerDisk storage: 1. Deploy the VM: ```shell - [root@controller ~]# kubectl create -f /opt/openness/edgenode/edgecontroller/kubevirt/examples/statelessVM.yaml + [root@controller ~]# kubectl create -f /opt/openness/edgeservices/edgecontroller/kubevirt/examples/statelessVM.yaml ``` 2. Start the VM: ```shell @@ -172,7 +172,7 @@ To deploy a sample stateful VM with persistent storage and additionally use a Ge - Edit the sample yaml with the hostname of the node: ```yaml - # /opt/openness/edgenode/edgecontroller/kubevirt/examples/persistentLocalVolume.yaml + # /opt/openness/edgeservices/edgecontroller/kubevirt/examples/persistentLocalVolume.yaml # For both kv-pv0 and kv-pv1, enter the correct hostname: - key: kubernetes.io/hostname operator: In @@ -181,7 +181,7 @@ To deploy a sample stateful VM with persistent storage and additionally use a Ge ``` - Create the PV: ```shell - [root@controller ~]# kubectl create -f /opt/openness/edgenode/edgecontroller/kubevirt/examples/persistentLocalVolume.yaml + [root@controller ~]# kubectl create -f /opt/openness/edgeservices/edgecontroller/kubevirt/examples/persistentLocalVolume.yaml ``` - Check that PV is created: ```shell @@ -234,7 +234,7 @@ To deploy a sample stateful VM with persistent storage and additionally use a Ge ``` 8. Edit the .yaml file for the VM with the updated public key: ```yaml - # /opt/openness/edgenode/edgecontroller/kubevirt/examples/cloudGenericVM.yaml + # /opt/openness/edgeservices/edgecontroller/kubevirt/examples/cloudGenericVM.yaml users: - name: root password: root @@ -244,7 +244,7 @@ To deploy a sample stateful VM with persistent storage and additionally use a Ge ``` 9. Deploy the VM: ```shell - [root@controller ~]# kubectl create -f /opt/openness/edgenode/edgecontroller/kubevirt/examples/cloudGenericVM.yaml + [root@controller ~]# kubectl create -f /opt/openness/edgeservices/edgecontroller/kubevirt/examples/cloudGenericVM.yaml ``` 10. Start the VM: ```shell @@ -296,7 +296,7 @@ To deploy a VM requesting SRIOV VF of NIC: ``` 4. Deploy the VM requesting the SRIOV device (if a smaller amount is available on the platform, adjust the number of HugePages required in the .yaml file): ```shell - [root@controller ~]# kubectl create -f /opt/openness/edgenode/edgecontroller/kubevirt/examples/sriovVM.yaml + [root@controller ~]# kubectl create -f /opt/openness/edgeservices/edgecontroller/kubevirt/examples/sriovVM.yaml ``` 5. Start the VM: ```shell @@ -402,7 +402,7 @@ kubectl apply -f cdiUploadCentosDvToleration.yaml sleep 5 -kubectl create -f /opt/openness/edgenode/edgecontroller/kubevirt/examples/persistentLocalVolume.yaml +kubectl create -f /opt/openness/edgeservices/edgecontroller/kubevirt/examples/persistentLocalVolume.yaml ``` ## Useful Commands and Troubleshooting @@ -433,9 +433,9 @@ Check that the IP address of the `cdi-upload-proxy` is correct and that the Netw ``` 2. Cannot SSH to stateful VM with Cloud Generic Image due to the public key being denied. -Confirm that the public key provided in `/opt/openness/edgenode/edgecontroller/kubevirt/examples/cloudGenericVM.yaml` is valid and in a correct format. Example of a correct format: +Confirm that the public key provided in `/opt/openness/edgeservices/edgecontroller/kubevirt/examples/cloudGenericVM.yaml` is valid and in a correct format. Example of a correct format: ```yaml - # /opt/openness/edgenode/edgecontroller/kubevirt/examples/cloudGenericVM.yaml + # /opt/openness/edgeservices/edgecontroller/kubevirt/examples/cloudGenericVM.yaml users: - name: root password: root diff --git a/doc/building-blocks/dataplane/openness-interapp.md b/doc/building-blocks/dataplane/openness-interapp.md index a9fc232f..cddd4984 100644 --- a/doc/building-blocks/dataplane/openness-interapp.md +++ b/doc/building-blocks/dataplane/openness-interapp.md @@ -15,7 +15,7 @@ Multi-core edge cloud platforms typically host multiple containers or virtual ma ## InterApp Communication support in OpenNESS Network Edge -InterApp communication on the OpenNESS Network Edge is supported using Open Virtual Network for Open vSwitch [OVN/OVS](https://github.com/otcshare/x-specs/blob/master/doc/dataplane/openness-ovn.md) as the infrastructure. OVN/OVS in the network edge is supported through the Kubernetes kube-OVN Container Network Interface (CNI). +InterApp communication on the OpenNESS Network Edge is supported using Open Virtual Network for Open vSwitch [OVN/OVS](https://github.com/otcshare/specs/blob/master/doc/dataplane/openness-ovn.md) as the infrastructure. OVN/OVS in the network edge is supported through the Kubernetes kube-OVN Container Network Interface (CNI). OVN/OVS is used as a default networking infrastructure for: - Data plane interface: User data transmission between User Equipment (UE) and edge applications diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md index 45bf360f..1acc3ea8 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md @@ -77,7 +77,7 @@ CMK can be deployed using a [Helm chart](https://helm.sh/). The CMK Helm chart u The environment setup can be validated using steps from the [CMK operator manual](https://github.com/intel/CPU-Manager-for-Kubernetes/blob/master/docs/operator.md#validating-the-environment). **Note:** -Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/x-specs/blob/master/doc/flavors.md). +Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/specs/blob/master/doc/flavors.md). ### Usage diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md b/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md index 4da63818..87db7a03 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md @@ -122,7 +122,7 @@ The following packages need to be placed into specific directories for the featu Run setup script `deploy_ne.sh -f `. **Note:** -Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/x-specs/blob/master/doc/flavors.md). +Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/specs/blob/master/doc/flavors.md). After a successful deployment, the following pods will be available in the cluster (CNI pods may vary depending on deployment): ```shell @@ -323,7 +323,7 @@ Build the image: `./build-image.sh` -From the Edge Controlplane, deploy the application pod. The pod specification is located at `/opt/openness/edgenode/edgecontroller/fpga/fpga-sample-app.yaml`: +From the Edge Controlplane, deploy the application pod. The pod specification is located at `/opt/openness/edgeservices/edgecontroller/fpga/fpga-sample-app.yaml`: ``` kubectl create -f fpga-sample-app.yaml diff --git a/doc/getting-started/network-edge/controller-edge-node-setup.md b/doc/getting-started/network-edge/controller-edge-node-setup.md index 5e0af5b9..55f1bb8c 100644 --- a/doc/getting-started/network-edge/controller-edge-node-setup.md +++ b/doc/getting-started/network-edge/controller-edge-node-setup.md @@ -56,7 +56,7 @@ The following set of actions must be completed to set up the Open Network Edge S ``` **Note:** -Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/x-specs/blob/master/doc/flavors.md). +Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/specs/blob/master/doc/flavors.md). # Preconditions @@ -94,7 +94,7 @@ The command syntax for the scripts is: `action_mode.sh -f [group]`, i.e The parameter `controller` or `nodes` in each case deploys or cleans up the Edge Controller or the Edge Nodes, respectively. **Note:** -Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/x-specs/blob/master/doc/flavors.md). +Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/specs/blob/master/doc/flavors.md). For an initial installation, `deploy_ne.sh controller` must be run before `deploy_ne.sh nodes`. During the initial installation, the hosts may reboot. After reboot, the deployment script that was last run should be run again. @@ -155,7 +155,7 @@ To deploy Network Edge in a single-node cluster scenario, follow the steps below 4. Single-node cluster can be deployed by running command: `./deploy_ne.sh -f single` **Note:** -Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/x-specs/blob/master/doc/flavors.md). +Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/specs/blob/master/doc/flavors.md). ## Harbor registry diff --git a/doc/reference-architectures/ran/openness_xran.md b/doc/reference-architectures/ran/openness_xran.md index bd49081f..3e8859ea 100644 --- a/doc/reference-architectures/ran/openness_xran.md +++ b/doc/reference-architectures/ran/openness_xran.md @@ -546,7 +546,7 @@ Run the deployment script: ./deploy_ne.sh -f ``` **Note:** -Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/x-specs/blob/master/doc/flavors.md). +Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/specs/blob/master/doc/flavors.md). Check the `/proc/cmd` output. It should look similar to: From 4da6533171d65b74e72b5dc9f3f194f4d7da1ff0 Mon Sep 17 00:00:00 2001 From: groclawski <53475993+groclawski@users.noreply.github.com> Date: Thu, 4 Mar 2021 13:14:27 +0100 Subject: [PATCH 13/89] update calico cidr --- doc/getting-started/openness-experience-kits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/getting-started/openness-experience-kits.md b/doc/getting-started/openness-experience-kits.md index f613a7a1..e8ab2107 100644 --- a/doc/getting-started/openness-experience-kits.md +++ b/doc/getting-started/openness-experience-kits.md @@ -54,7 +54,7 @@ Following files specify the CIDR for CNIs and interfaces. These are the IP addre ```yaml flavors/media-analytics-vca/all.yml:19:vca_cidr: "172.32.1.0/12" -group_vars/all/10-default.yml:90:calico_cidr: "10.243.0.0/16" +group_vars/all/10-default.yml:90:calico_cidr: "10.245.0.0/16" group_vars/all/10-default.yml:93:flannel_cidr: "10.244.0.0/16" group_vars/all/10-default.yml:96:weavenet_cidr: "10.32.0.0/12" group_vars/all/10-default.yml:99:kubeovn_cidr: "10.16.0.0/16,100.64.0.0/16,10.96.0.0/12" From 15d2ea33e77459e75913d0afd8dcd3564a8e2b99 Mon Sep 17 00:00:00 2001 From: groclawski <53475993+groclawski@users.noreply.github.com> Date: Thu, 4 Mar 2021 15:11:01 +0100 Subject: [PATCH 14/89] update calico as a primary cni --- doc/getting-started/openness-experience-kits.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/getting-started/openness-experience-kits.md b/doc/getting-started/openness-experience-kits.md index e8ab2107..c3cd6d1f 100644 --- a/doc/getting-started/openness-experience-kits.md +++ b/doc/getting-started/openness-experience-kits.md @@ -174,9 +174,9 @@ additional_grub_params: "debug" ``` ### Configure OVS-DPDK in kube-ovn -By default, OVS-DPDK is enabled. To disable it, set a flag: +By default, OVS-DPDK is disabled (due to set calico as a default cni). To enable it, set a flag: ```yaml -kubeovn_dpdk: false +kubeovn_dpdk: true ``` >**NOTE**: This flag should be set in `roles/kubernetes/cni/kubeovn/common/defaults/main.ym` or added to `group_vars/all/10-default.yml`. @@ -216,6 +216,7 @@ kubeovn_dpdk_lcore_mask: "0x2" # DPDK lcore mask The following are basic prechecks that are currently executed: * Check if any CNI is requested (i.e., `kubernetes_cni` is not empty). * Check if `sriov` is not requested as primary (first on the list) or standalone (only on the list). + * Check if `calico` is requested as a primary (first on the list) or standalone (only on the list). * Check if `kubeovn` is requested as a primary (first on the list). * Check if the requested CNI is available (check if some CNI is requested that isn't present in the `available_kubernetes_cnis` list). * CNI roles should be as self-contained as possible (unless necessary, CNI-specific tasks should not be present in `kubernetes/{controlplane,node,common}` or `openness/network_edge/{controlplane,node}`). From d8e60f8670015f1fda0651463ec5820721a7ea7e Mon Sep 17 00:00:00 2001 From: groclawski <53475993+groclawski@users.noreply.github.com> Date: Thu, 4 Mar 2021 15:13:36 +0100 Subject: [PATCH 15/89] update calico version --- openness_releasenotes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openness_releasenotes.md b/openness_releasenotes.md index eafc01df..a4044537 100644 --- a/openness_releasenotes.md +++ b/openness_releasenotes.md @@ -480,4 +480,4 @@ OpenNESS was tested on CentOS Linux release 7.9.2009 (Core) # Packages Version -Package: telemetry, cadvisor 0.36.0, grafana 7.0.3, prometheus 2.16.0, prometheus: node exporter 1.0.0-rc.0, golang 1.15, docker 20.10.2, kubernetes 1.20.0, dpdk 19.11, ovs 2.14.0, ovn 2.14.0, helm 3.0, kubeovn 1.5.2, flannel 0.12.0, calico 3.16.0, multus 3.6, sriov cni 2.3, nfd 0.6.0, cmk v1.4.1, TAS (from specific commit "a13708825e854da919c6fdf05d50753113d04831"), openssl 1.1.1i +Package: telemetry, cadvisor 0.36.0, grafana 7.0.3, prometheus 2.16.0, prometheus: node exporter 1.0.0-rc.0, golang 1.15, docker 20.10.2, kubernetes 1.20.0, dpdk 19.11, ovs 2.14.0, ovn 2.14.0, helm 3.0, kubeovn 1.5.2, flannel 0.12.0, calico 3.17.0, multus 3.6, sriov cni 2.3, nfd 0.6.0, cmk v1.4.1, TAS (from specific commit "a13708825e854da919c6fdf05d50753113d04831"), openssl 1.1.1i From 97b8d125ba04ec5b2872455bcf8eb97dc32bb441 Mon Sep 17 00:00:00 2001 From: groclawski <53475993+groclawski@users.noreply.github.com> Date: Thu, 4 Mar 2021 15:25:26 +0100 Subject: [PATCH 16/89] add calico version update to release note --- openness_releasenotes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openness_releasenotes.md b/openness_releasenotes.md index a4044537..2c5ea80f 100644 --- a/openness_releasenotes.md +++ b/openness_releasenotes.md @@ -266,7 +266,7 @@ This document provides high-level system features, issues, and limitations infor - Major system Upgrades: Kubernetes 1.19.3, CentOS 7.8, Calico 3.16, and Kube-OVN 1.5.2. ## OpenNESS - 21.03 -- Major system Upgrades: CentOS 7.9, Kubernetes 1.20.0, Docker 20.10.2 +- Major system Upgrades: CentOS 7.9, Kubernetes 1.20.0, Calico 3.17 and Docker 20.10.2 # Changes to Existing Features From 6f6e19573863eb6efa9e7d3760b27b9d86fc1190 Mon Sep 17 00:00:00 2001 From: groclawski <53475993+groclawski@users.noreply.github.com> Date: Thu, 4 Mar 2021 15:29:37 +0100 Subject: [PATCH 17/89] fix --- doc/getting-started/openness-experience-kits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/getting-started/openness-experience-kits.md b/doc/getting-started/openness-experience-kits.md index c3cd6d1f..fdabc7c4 100644 --- a/doc/getting-started/openness-experience-kits.md +++ b/doc/getting-started/openness-experience-kits.md @@ -216,7 +216,7 @@ kubeovn_dpdk_lcore_mask: "0x2" # DPDK lcore mask The following are basic prechecks that are currently executed: * Check if any CNI is requested (i.e., `kubernetes_cni` is not empty). * Check if `sriov` is not requested as primary (first on the list) or standalone (only on the list). - * Check if `calico` is requested as a primary (first on the list) or standalone (only on the list). + * Check if `calico` is requested as a primary (first on the list). * Check if `kubeovn` is requested as a primary (first on the list). * Check if the requested CNI is available (check if some CNI is requested that isn't present in the `available_kubernetes_cnis` list). * CNI roles should be as self-contained as possible (unless necessary, CNI-specific tasks should not be present in `kubernetes/{controlplane,node,common}` or `openness/network_edge/{controlplane,node}`). From 6449a54ff35f5a458170807d7a732fce0efa9e1c Mon Sep 17 00:00:00 2001 From: groclawski <53475993+groclawski@users.noreply.github.com> Date: Thu, 4 Mar 2021 15:42:40 +0100 Subject: [PATCH 18/89] default cni in minimal flavor --- doc/flavors.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/flavors.md b/doc/flavors.md index a890b3e5..ec07d702 100644 --- a/doc/flavors.md +++ b/doc/flavors.md @@ -32,7 +32,7 @@ Steps to install this flavor are as follows: This deployment flavor enables the following ingredients: * Node Feature Discovery -* The default Kubernetes CNI: `kube-ovn` +* The default Kubernetes CNI: `calico` * Telemetry To customize this flavor we recommend creating additional file in openness-experience-kits that will override any variables used in previous configuration. This file should be placed in location: `openness-experiance-kits/group_vars/all` and filenames should start withnumber greater than highest value currently present (e.g. `40-overrides.yml`). From 54f800fa501d2d36cdf199cc00ac25252bf27bed Mon Sep 17 00:00:00 2001 From: groclawski <53475993+groclawski@users.noreply.github.com> Date: Thu, 4 Mar 2021 15:44:15 +0100 Subject: [PATCH 19/89] calico cni in cdn-transcode --- doc/flavors.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/flavors.md b/doc/flavors.md index ec07d702..340132f3 100644 --- a/doc/flavors.md +++ b/doc/flavors.md @@ -129,7 +129,7 @@ Steps to install this flavor are as follows: This deployment flavor enables the following ingredients: * Node Feature Discovery -* The default Kubernetes CNI: `kube-ovn` +* The default Kubernetes CNI: `calico` * Telemetry ## CERA CDN Caching Flavor From aa7752e991e3ee0b99c2b403344ffe16b4c7a3c8 Mon Sep 17 00:00:00 2001 From: groclawski <53475993+groclawski@users.noreply.github.com> Date: Thu, 4 Mar 2021 15:45:58 +0100 Subject: [PATCH 20/89] calico in Central Orchestrator Flavor --- doc/flavors.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/flavors.md b/doc/flavors.md index 340132f3..fa950c43 100644 --- a/doc/flavors.md +++ b/doc/flavors.md @@ -184,7 +184,7 @@ Steps to install this flavor are as follows: This deployment flavor enables the following ingredients: * Harbor Registry -* The default Kubernetes CNI: `kube-ovn` +* The default Kubernetes CNI: `calico` * EMCO services ## Reference Service Mesh From e08c1dec6e4e9fa97786e9e20cd8c953006dbbf6 Mon Sep 17 00:00:00 2001 From: groclawski <53475993+groclawski@users.noreply.github.com> Date: Thu, 4 Mar 2021 15:46:57 +0100 Subject: [PATCH 21/89] calico in Media Analytics Flavor --- doc/flavors.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/flavors.md b/doc/flavors.md index fa950c43..2aa622a7 100644 --- a/doc/flavors.md +++ b/doc/flavors.md @@ -81,7 +81,7 @@ Steps to install this flavor are as follows: This deployment flavor enables the following ingredients: * Node Feature Discovery -* The default Kubernetes CNI: `kube-ovn` +* The default Kubernetes CNI: `calico` * Video analytics services * Telemetry * Istio service mesh - conditional From 6d8a9b39716e0cd78b221b6dd01de445beb442a3 Mon Sep 17 00:00:00 2001 From: groclawski <53475993+groclawski@users.noreply.github.com> Date: Thu, 4 Mar 2021 15:50:03 +0100 Subject: [PATCH 22/89] update --- openness_releasenotes.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openness_releasenotes.md b/openness_releasenotes.md index 2c5ea80f..23214252 100644 --- a/openness_releasenotes.md +++ b/openness_releasenotes.md @@ -266,7 +266,8 @@ This document provides high-level system features, issues, and limitations infor - Major system Upgrades: Kubernetes 1.19.3, CentOS 7.8, Calico 3.16, and Kube-OVN 1.5.2. ## OpenNESS - 21.03 -- Major system Upgrades: CentOS 7.9, Kubernetes 1.20.0, Calico 3.17 and Docker 20.10.2 +- Major system Upgrades: CentOS 7.9, Kubernetes 1.20.0, Calico 3.17 and Docker 20.10.2. +- Set Calico as a default cni in minimal flavor. # Changes to Existing Features From 46b32c53c76ef58894a44d42c0f0527713370fd2 Mon Sep 17 00:00:00 2001 From: groclawski <53475993+groclawski@users.noreply.github.com> Date: Thu, 4 Mar 2021 16:00:07 +0100 Subject: [PATCH 23/89] calico as a default --- .../network-edge/controller-edge-node-setup.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/doc/getting-started/network-edge/controller-edge-node-setup.md b/doc/getting-started/network-edge/controller-edge-node-setup.md index 55f1bb8c..81746d5b 100644 --- a/doc/getting-started/network-edge/controller-edge-node-setup.md +++ b/doc/getting-started/network-edge/controller-edge-node-setup.md @@ -358,14 +358,15 @@ The following CNIs are currently supported: * [kube-ovn](https://github.com/alauda/kube-ovn) * **Only as primary CNI** * CIDR: 10.16.0.0/16 +* [calico](https://github.com/projectcalico/cni-plugin) + * **Only as primary CNI** + * IPAM: host-local + * CIDR: 10.245.0.0/16 + * Network attachment definition: openness-calico * [flannel](https://github.com/coreos/flannel) * IPAM: host-local * CIDR: 10.244.0.0/16 * Network attachment definition: openness-flannel -* [calico](https://github.com/projectcalico/cni-plugin) - * IPAM: host-local - * CIDR: 10.243.0.0/16 - * Network attachment definition: openness-calico * [weavenet](https://github.com/weaveworks/weave) * CIDR: 10.32.0.0/12 * [SR-IOV](https://github.com/intel/sriov-cni) (cannot be used as a standalone or primary CNI - [sriov setup](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md)) @@ -377,21 +378,21 @@ Multiple CNIs can be requested to be set up for the cluster. To provide such fun ### Selecting cluster networking plugins (CNI) -The default CNI for OpenNESS is kube-ovn. Non-default CNIs may be configured with OpenNESS by editing the file `group_vars/all/10-default.yml`. +The default CNI for OpenNESS is calico. Non-default CNIs may be configured with OpenNESS by editing the file `group_vars/all/10-default.yml`. To add a non-default CNI, the following edits must be carried out: -- The CNI name is added to the `kubernetes_cnis` variable. The CNIs are applied in the order in which they appear in the file. By default, `kube-ovn` is defined. That is, +- The CNI name is added to the `kubernetes_cnis` variable. The CNIs are applied in the order in which they appear in the file. By default, `calico` is defined. That is, ```yaml kubernetes_cnis: - - kubeovn + - calico ``` - To add a CNI, such as SR-IOV, the `kubernetes_cnis` variable is edited as follows: ```yaml kubernetes_cnis: - - kubeovn + - calico - sriov ``` From 2e7bd991fcedaeb245f658f6aafa137c4a9f92fe Mon Sep 17 00:00:00 2001 From: groclawski <53475993+groclawski@users.noreply.github.com> Date: Thu, 4 Mar 2021 22:15:00 +0100 Subject: [PATCH 24/89] change to calico in sriov spec --- .../openness-sriov-multiple-interfaces.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md b/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md index 2df6b212..d70288a1 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md @@ -55,7 +55,7 @@ _Figure - SR-IOV Device plugin_ In Network Edge mode, the Multus CNI, which provides the possibility for attaching multiple interfaces to the pod, is deployed automatically when the `kubernetes_cnis` variable list (in the `group_vars/all/10-default.yml` file) contains at least two elements, e.g.,: ```yaml kubernetes_cnis: -- kubeovn +- calico - sriov ``` @@ -117,7 +117,7 @@ EOF valid_lft forever preferred_lft forever 308: eth0@if309: mtu 1400 qdisc noqueue state UP link/ether 0a:00:00:10:00:12 brd ff:ff:ff:ff:ff:ff link-netnsid 0 - inet 10.16.0.17/16 brd 10.16.255.255 scope global eth0 + inet 10.245.0.17/16 brd 10.245.255.255 scope global eth0 valid_lft forever preferred_lft forever ``` @@ -126,7 +126,7 @@ EOF To deploy the OpenNESS' Network Edge with SR-IOV, `sriov` must be added to the `kubernetes_cnis` list in `group_vars/all/10-default.yml`: ```yaml kubernetes_cnis: -- kubeovn +- calico - sriov ``` @@ -207,7 +207,7 @@ spec: valid_lft forever preferred_lft forever 169: eth0@if170: mtu 1400 qdisc noqueue state UP group default link/ether 0a:00:00:10:00:0b brd ff:ff:ff:ff:ff:ff link-netnsid 0 - inet 10.16.0.10/16 brd 10.16.255.255 scope global eth0 + inet 10.245.0.10/16 brd 10.245.255.255 scope global eth0 valid_lft forever preferred_lft forever ``` From 6465bc6d2f1c214418d61e17a9a86ec7ae816df2 Mon Sep 17 00:00:00 2001 From: groclawski <53475993+groclawski@users.noreply.github.com> Date: Fri, 5 Mar 2021 14:27:33 +0100 Subject: [PATCH 25/89] calico_interapp --- doc/building-blocks/dataplane/openness-interapp.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/building-blocks/dataplane/openness-interapp.md b/doc/building-blocks/dataplane/openness-interapp.md index cddd4984..7a604820 100644 --- a/doc/building-blocks/dataplane/openness-interapp.md +++ b/doc/building-blocks/dataplane/openness-interapp.md @@ -17,6 +17,8 @@ Multi-core edge cloud platforms typically host multiple containers or virtual ma InterApp communication on the OpenNESS Network Edge is supported using Open Virtual Network for Open vSwitch [OVN/OVS](https://github.com/otcshare/specs/blob/master/doc/dataplane/openness-ovn.md) as the infrastructure. OVN/OVS in the network edge is supported through the Kubernetes kube-OVN Container Network Interface (CNI). +>**NOTE**: The InterApps Communication also works with Calico cni. Calico is supported as a default cni in Openness from 21.03 release. + OVN/OVS is used as a default networking infrastructure for: - Data plane interface: User data transmission between User Equipment (UE) and edge applications - InterApp interface : Communication infrastructure for applications to communicate From 4bec0ee9166f811ec611238b603267ff73b097d0 Mon Sep 17 00:00:00 2001 From: groclawski <53475993+groclawski@users.noreply.github.com> Date: Fri, 5 Mar 2021 14:29:59 +0100 Subject: [PATCH 26/89] calico_update --- doc/building-blocks/dataplane/openness-ovn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/building-blocks/dataplane/openness-ovn.md b/doc/building-blocks/dataplane/openness-ovn.md index b519bad2..8fc17353 100644 --- a/doc/building-blocks/dataplane/openness-ovn.md +++ b/doc/building-blocks/dataplane/openness-ovn.md @@ -18,7 +18,7 @@ The diagram below shows OVS as a dataplane and OVN overlay. This mode of deploym ![OpenNESS with NTS as dataplane overview](ovn_images/openness_ovn.png) -[Kube-OVN](https://github.com/alauda/kube-ovn) has been chosen as the CNI implementation for OpenNESS. Additionally, in the following configuration, OpenNESS applications on Edge Nodes are deployed as DaemonSet Pods (in separate "openness" namespace) and exposed to client applications by k8s services. +[Kube-OVN](https://github.com/alauda/kube-ovn) has been chosen as the CNI implementation for OVN/OVS in OpenNESS. Additionally, in the following configuration, OpenNESS applications on Edge Nodes are deployed as DaemonSet Pods (in separate "openness" namespace) and exposed to client applications by k8s services. OVN/OVS is used as the default networking infrastructure for: - Dataplane Interface: UE's to edge applications From 2eb085488d0c88f3165868eb7fc0ca9f03250763 Mon Sep 17 00:00:00 2001 From: groclawski <53475993+groclawski@users.noreply.github.com> Date: Mon, 8 Mar 2021 13:52:52 +0100 Subject: [PATCH 27/89] review --- openness_releasenotes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openness_releasenotes.md b/openness_releasenotes.md index 23214252..c98979a5 100644 --- a/openness_releasenotes.md +++ b/openness_releasenotes.md @@ -267,7 +267,7 @@ This document provides high-level system features, issues, and limitations infor ## OpenNESS - 21.03 - Major system Upgrades: CentOS 7.9, Kubernetes 1.20.0, Calico 3.17 and Docker 20.10.2. -- Set Calico as a default cni in minimal flavor. +- Set Calico as a default cni for cdn-transcode, central_orchestrator, core-cplane, core-uplane and minimal flavor. # Changes to Existing Features From 1f01fa215ccc337e6023e609140e8e439b668638 Mon Sep 17 00:00:00 2001 From: Patryk Matuszak <47594217+patrykxmatuszak@users.noreply.github.com> Date: Tue, 9 Mar 2021 09:26:30 +0100 Subject: [PATCH 28/89] New inventory paths (#402) --- .../openness-interface-service.md | 6 ++-- .../openness-network-edge-vm-support.md | 8 ++--- .../using-openness-cnca.md | 4 +-- .../dataplane/openness-userspace-cni.md | 12 ++++---- doc/building-blocks/emco/openness-emco.md | 2 +- .../openness-bios.md | 2 +- .../openness-dedicated-core.md | 6 ++-- .../openness-fpga.md | 8 ++--- .../openness-hugepage.md | 28 ++++++++--------- .../openness-kubernetes-dashboard.md | 4 +-- .../openness-node-feature-discovery.md | 2 +- .../openness-rmd.md | 2 +- .../openness-sriov-multiple-interfaces.md | 12 ++++---- .../openness-telemetry.md | 2 +- .../openness-topology-manager.md | 2 +- .../openness_hddl.md | 2 +- doc/flavors.md | 6 ++-- .../controller-edge-node-setup.md | 30 +++++++++---------- .../network-edge/offline-edge-deployment.md | 2 +- .../openness-experience-kits.md | 16 +++++----- doc/orchestration/openness-helm.md | 2 +- .../ran/openness_xran.md | 12 ++++---- 22 files changed, 85 insertions(+), 85 deletions(-) diff --git a/doc/applications-onboard/openness-interface-service.md b/doc/applications-onboard/openness-interface-service.md index 4ed28b9c..5ce0c113 100644 --- a/doc/applications-onboard/openness-interface-service.md +++ b/doc/applications-onboard/openness-interface-service.md @@ -104,19 +104,19 @@ ovs-vsctl add-br br-userspace -- set bridge br-userspace datapath_type=netdev DPDK apps require a specific amount of HugePages\* enabled. By default, the Ansible scripts will enable 1024 of 2M HugePages in a system, and then start OVS-DPDK with 1GB of those HugePages reserved for NUMA node 0. To change this setting to reflect specific requirements, set the Ansible variables as defined in the following example. This example enables four of 1GB HugePages and appends 2GB to OVS-DPDK, leaving two pages for DPDK applications that run in the pods. This example uses the Edge Node with 2 NUMA nodes, each one with 1GB of HugePages reserved. ```yaml -# group_vars/controller_group/10-default.yml +# inventory/default/group_vars/controller_group/10-default.yml hugepage_size: "1G" hugepage_amount: "4" ``` ```yaml -# group_vars/edgenode_group/10-default.yml +# inventory/default/group_vars/edgenode_group/10-default.yml hugepage_size: "1G" hugepage_amount: "4" ``` ```yaml -# group_vars/all/10-default.yml +# inventory/default/group_vars/all/10-default.yml kubeovn_dpdk_socket_mem: "1024,1024" # Will reserve 1024MB of hugepages for NUNA node 0 and NUMA node 1, respectively. kubeovn_dpdk_hugepage_size: "1Gi" # This is the size of single hugepage to be used by DPDK. Can be 1Gi or 2Mi. kubeovn_dpdk_hugepages: "2Gi" # This is overall amount of hugepags available to DPDK. diff --git a/doc/applications-onboard/openness-network-edge-vm-support.md b/doc/applications-onboard/openness-network-edge-vm-support.md index 62aaa4ac..1e0ba28e 100644 --- a/doc/applications-onboard/openness-network-edge-vm-support.md +++ b/doc/applications-onboard/openness-network-edge-vm-support.md @@ -83,27 +83,27 @@ The KubeVirt role responsible for bringing up KubeVirt components is enabled by KubeVirt is deployed by default. To provide SRIOV support, configure the following settings: - Enable kubeovn CNI and SRIOV: ```yaml - # group_vars/all/10-default.yml + # inventory/default/group_vars/all/10-default.yml kubernetes_cnis: - kubeovn - sriov ``` - Enable SRIOV for KubeVirt: ```yaml - # group_vars/all/10-default.yml + # inventory/default/group_vars/all/10-default.yml # SR-IOV support for kube-virt based Virtual Machines sriov_kubevirt_enable: true ``` - Enable necessary Network Interfaces with SRIOV: ```yaml - # host_vars/node01/10-default.yml + # inventory/default/host_vars/node01/10-default.yml sriov: network_interfaces: {: 1} ``` - Set up the maximum number of stateful VMs and directory where the Virtual Disks will be stored on Edge Node: ```yaml - # group_vars/all/10-default.yml + # inventory/default/group_vars/all/10-default.yml kubevirt_default_pv_dir: /var/vd/ kubevirt_default_pv_vol_name: vol kubevirt_pv_vm_max_num: 64 diff --git a/doc/applications-onboard/using-openness-cnca.md b/doc/applications-onboard/using-openness-cnca.md index 84234ca3..cd55b9c9 100644 --- a/doc/applications-onboard/using-openness-cnca.md +++ b/doc/applications-onboard/using-openness-cnca.md @@ -118,10 +118,10 @@ OpenNESS provides ansible scripts for setting up NGC components for two scenario ### Bring-up of NGC components in Network Edge mode 1. If the Edge controller is not yet deployed through openness-experience-kit then: - Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `group_vars/all/10-default.yml` before running `deploy_ne.sh -f controller` or `deploy_ne.sh -f ` as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/network-edge/controller-edge-node-setup.md) document, **otherwise skip this step.** + Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `inventory/default/group_vars/all/10-default.yml` before running `deploy_ne.sh -f controller` or `deploy_ne.sh -f ` as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/network-edge/controller-edge-node-setup.md) document, **otherwise skip this step.** 2. If Edge-controller is already deployed (but without enabling ngc role) and at a later stage you want to enable NGC components on edge-controller then, - Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `group_vars/all/10-default.yml` and then re-run `deploy_ne.sh -f controller` as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/network-edge/controller-edge-node-setup.md) document. + Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `inventory/default/group_vars/all/10-default.yml` and then re-run `deploy_ne.sh -f controller` as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/network-edge/controller-edge-node-setup.md) document. **NOTE:** In addition to the OpenNESS controller bringup, by enabling the ngc rule the playbook scripts performs: Clone epcforedge repo from github, builds AF, NEF and OAM micro services, generates certificate files, creates docker images and starts PODs. diff --git a/doc/building-blocks/dataplane/openness-userspace-cni.md b/doc/building-blocks/dataplane/openness-userspace-cni.md index ee17ab91..71d18fa8 100644 --- a/doc/building-blocks/dataplane/openness-userspace-cni.md +++ b/doc/building-blocks/dataplane/openness-userspace-cni.md @@ -16,17 +16,17 @@ Userspace CNI is a Container Network Interface (CNI) Kubernetes\* plugin that wa ## Setup Userspace CNI -OpenNESS for Network Edge has been integrated with Userspace CNI to allow users to easily run DPDK- based applications inside Kubernetes pods. To install OpenNESS Network Edge with Userspace CNI support, add the value `userspace` to variable `kubernetes_cnis` in `group_vars/all/10-default.yml` and set value of the variable `kubeovn_dpdk` in `group_vars/all/10-default.yml` to `true`: +OpenNESS for Network Edge has been integrated with Userspace CNI to allow users to easily run DPDK- based applications inside Kubernetes pods. To install OpenNESS Network Edge with Userspace CNI support, add the value `userspace` to variable `kubernetes_cnis` in `inventory/default/group_vars/all/10-default.yml` and set value of the variable `kubeovn_dpdk` in `inventory/default/group_vars/all/10-default.yml` to `true`: ```yaml -# group_vars/all/10-default.yml +# inventory/default/group_vars/all/10-default.yml kubernetes_cnis: - kubeovn - userspace ``` ```yaml -# group_vars/all/10-default.yml +# inventory/default/group_vars/all/10-default.yml kubeovn_dpdk: true ``` @@ -35,19 +35,19 @@ kubeovn_dpdk: true DPDK apps require that a specific number of HugePages are enabled. By default, the Ansible\* scripts will enable 1024 of 2M HugePages on a system and then start OVS-DPDK with 1Gb of those HugePages. To change this setting to reflect your specific requirements, set the Ansible variables as defined in the example below. This example enables 4 of 1GB HugePages and appends 1 GB to OVS-DPDK, leaving 3 pages for DPDK applications that will be running in the pods. ```yaml -# group_vars/controller_group/10-default.yml +# inventory/default/group_vars/controller_group/10-default.yml hugepage_size: "1G" hugepage_amount: "4" ``` ```yaml -# group_vars/edgenode_group/10-default.yml +# inventory/default/group_vars/edgenode_group/10-default.yml hugepage_size: "1G" hugepage_amount: "4" ``` ```yaml -# group_vars/all/10-default.yml +# inventory/default/group_vars/all/10-default.yml # Hugepage size to be used with DPDK: 2Mi or 1Gi kubeovn_dpdk_hugepage_size: "1Gi" # Overall amount of hugepages available to DPDK diff --git a/doc/building-blocks/emco/openness-emco.md b/doc/building-blocks/emco/openness-emco.md index 76355f05..b59d0af7 100644 --- a/doc/building-blocks/emco/openness-emco.md +++ b/doc/building-blocks/emco/openness-emco.md @@ -303,7 +303,7 @@ Steps for EMCO Authentication and Authorization Setup: ### EMCO Installation With OpenNESS Flavor EMCO supports [multiple deployment options](https://github.com/otcshare/EMCO/tree/main/deployments). [OpenNESS Experience Kit](https://github.com/otcshare/specs/blob/master/doc/getting-started/openness-experience-kits.md) offers the `central_orchestrator` flavor to automate EMCO build and deployment as mentioned below. - The first step is to prepare one server environment which needs to fulfill the [preconditions](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/controller-edge-node-setup.md#preconditions). -- Then place the EMCO server hostname in `[controller_group]` group in `inventory.ini` file of openness-experience-kit. +- Then place the EMCO server hostname in `[controller_group]` group in `inventory/default/inventory.ini` file of openness-experience-kit. > **NOTE**: `[edgenode_group]` and `[edgenode_vca_group]` are not required for configuration, since EMCO micro services just need to be deployed on the Kubernetes* control plane node. - Run script `./deploy_ne.sh -f central_orchestrator`. Deployment should complete successfully. In the flavor, harbor registry is deployed to provide images services as well. diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-bios.md b/doc/building-blocks/enhanced-platform-awareness/openness-bios.md index 6a3aa890..252f1d33 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-bios.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-bios.md @@ -43,7 +43,7 @@ Intel SYSCFG must be manually downloaded by the user after accepting the license To enable BIOSFW, perform the following steps: 1. The SYSCFG package must be downloaded and stored inside OpenNESS Experience Kits' `biosfw/` directory as a `syscfg_package.zip`: `openness-experience-kits/biosfw/syscfg_package.zip` -2. Change the variable `ne_biosfw_enable` in `group_vars/all/10-default.yml` to “true”: +2. Change the variable `ne_biosfw_enable` in `inventory/default/group_vars/all/10-default.yml` to “true”: ```yaml ne_biosfw_enable: true ``` diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md index 1acc3ea8..d758afc0 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md @@ -56,7 +56,7 @@ CMK can be deployed using a [Helm chart](https://helm.sh/). The CMK Helm chart u **Edge Controller / Kubernetes control plane** -1. In `group_vars/all/10-default.yml`, change `ne_cmk_enable` to `true` and adjust the settings if needed. +1. In `inventory/default/group_vars/all/10-default.yml`, change `ne_cmk_enable` to `true` and adjust the settings if needed. CMK default settings are: ```yaml # CMK - Number of cores in exclusive pool @@ -70,8 +70,8 @@ CMK can be deployed using a [Helm chart](https://helm.sh/). The CMK Helm chart u **Edge Node / Kubernetes node** -1. In `group_vars/all/10-open.yml`, change `ne_cmk_enable` to “true”. -2. To change core isolation set isolated cores in `group_vars/edgenode_group/10-default.yml` as `additional_grub_params` for your node e.g. in `group_vars/edgenode_group/10-default.yml`, set `additional_grub_params: "isolcpus=1-10,49-58"`. +1. In `inventory/default/group_vars/all/10-open.yml`, change `ne_cmk_enable` to “true”. +2. To change core isolation set isolated cores in `inventory/default/group_vars/edgenode_group/10-default.yml` as `additional_grub_params` for your node e.g. in `inventory/default/group_vars/edgenode_group/10-default.yml`, set `additional_grub_params: "isolcpus=1-10,49-58"`. 3. Deploy the node with `deploy_ne.sh -f node`. The environment setup can be validated using steps from the [CMK operator manual](https://github.com/intel/CPU-Manager-for-Kubernetes/blob/master/docs/operator.md#validating-the-environment). diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md b/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md index 87db7a03..a00f9079 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md @@ -85,21 +85,21 @@ For information on how to update and flash the MAX10 to supported version see [I To run the OpenNESS package with FPGA (FEC) functionality, the feature needs to be enabled on both Edge Controller and Edge Node. #### OpenNESS Experience Kit -To enable FPGA support from OEK, change the variable `ne_opae_fpga_enable` in `group_vars/all/10-default.yml` (or flavor alternative file) to `true`: +To enable FPGA support from OEK, change the variable `ne_opae_fpga_enable` in `inventory/default/group_vars/all/10-default.yml` (or flavor alternative file) to `true`: ```yaml -# group_vars/all/10-default.yml +# inventory/default/group_vars/all/10-default.yml ne_opae_fpga_enable: true ``` Additionally, SRIOV must be enabled in OpenNESS: ```yaml -# group_vars/all/10-default.yml +# inventory/default/group_vars/all/10-default.yml kubernetes_cnis: -
- sriov ``` -Also, enable the following options in `group_vars/all/10-default.yml`: +Also, enable the following options in `inventory/default/group_vars/all/10-default.yml`: The following device config is the default config for the Intel® FPGA PAC N3000 with a 5GNR vRAN user image tested (this configuration is common to both the EdgeNode and EdgeController setup). ```yaml # group_var/all/10-default.yml diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-hugepage.md b/doc/building-blocks/enhanced-platform-awareness/openness-hugepage.md index ba7313a1..b68ca799 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-hugepage.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-hugepage.md @@ -33,8 +33,8 @@ By default, these variables have values: Find below a guide on changing these values. Customizations must be made before OpenNESS deployment. Variables for hugepage customization can be placed in several files: -* `group_vars/controller_group/10-default.yml` and `group_vars/edgenode_group/10-default.yml` will affect Edge Controller and Edge Nodes in every mode -* `host_vars//10-default.yml` will only affect the `` host present in `inventory.ini` (in all modes) +* `inventory/default/group_vars/controller_group/10-default.yml` and `inventory/default/group_vars/edgenode_group/10-default.yml` will affect Edge Controller and Edge Nodes in every mode +* `inventory/default/host_vars//10-default.yml` will only affect the `` host present in `inventory/default/inventory.ini` (in all modes) * Hugepages can be also specified for mode and machine type, (e.g., hugepages for On-Premises Edge Node can be set in `network_edge.yml` in a play for Edge Nodes: ```yaml # network_edge.yml @@ -43,31 +43,31 @@ Variables for hugepage customization can be placed in several files: vars: hugepage_amount: "5000" ``` - >**NOTE**: Due to Ansible’s\* variable precedence, configuring hugepages in `network_edge.yml` is not recommended because it overrides customization in `group_vars` and `host_vars`. + >**NOTE**: Due to Ansible’s\* variable precedence, configuring hugepages in `network_edge.yml` is not recommended because it overrides customization in `inventory/default/group_vars` and `inventory/default/host_vars`. The usage is summarized in the following table: | File | Network Edge | Native On Premises | Edge Controller | Edge Node | Comment | | --------------------------------------------- | :----------: | :---------: | :------------------------------------: | :-----------------------------------------------: | :-----------------------------------------------------------------------------: | -| `group_vars/controller_group/10-default.yml` | yes | yes | yes | | | -| `group_vars/edgenode_group/10-default.yml` | yes | yes | | yes - every node | | -| `host_vars//10-default.yml` | yes | yes | yes | yes | affects machine specified in `inventory.ini` with name `` | +| `inventory/default/group_vars/controller_group/10-default.yml` | yes | yes | yes | | | +| `inventory/default/group_vars/edgenode_group/10-default.yml` | yes | yes | | yes - every node | | +| `inventory/default/host_vars//10-default.yml` | yes | yes | yes | yes | affects machine specified in `inventory/default/inventory.ini` with name `` | | `network_edge.yml` | yes | | `vars` under `hosts: controller_group` | `vars` under `hosts: edgenode_group` - every node | not recommended | Note that variables have precedence: 1. **not recommended:** `network_edge.yml` will always take precedence for files from this list (overrides every other var) -2. `host_vars/` -3. `group_vars/edgenode_group/10-default.yml` and `group_vars/controller_group/10-default.yml` -4. `group_vars/all/10-default.yml` +2. `inventory/default/host_vars/` +3. `inventory/default/group_vars/edgenode_group/10-default.yml` and `inventory/default/group_vars/controller_group/10-default.yml` +4. `inventory/default/group_vars/all/10-default.yml` 5. `default/main.yml` in roles' directory ### Examples #### Changing size and amount of the hugepages for both controller and nodes -Change the following lines in the `group_vars/edgenode_group/10-default.yml` or `group_vars/controller_group/10-default.yml`: +Change the following lines in the `inventory/default/group_vars/edgenode_group/10-default.yml` or `inventory/default/group_vars/controller_group/10-default.yml`: * To set 1500 of the hugepages with the page size of 2 MB (which is the default value) for the Edge Controller: ```yaml - # group_vars/controller_group/10-default.yml + # inventory/default/group_vars/controller_group/10-default.yml hugepage_size: "2M" hugepage_amount: "1500" @@ -75,16 +75,16 @@ Change the following lines in the `group_vars/edgenode_group/10-default.yml` or * To set 10 of the hugepages with the page size of 1GB for the Edge Nodes: ```yaml - # group_vars/edgenode_group/10-default.yml + # inventory/default/group_vars/edgenode_group/10-default.yml hugepage_size: "1G" hugepage_amount: "10" ``` #### Customizing hugepages for specific machine -To specify the size or amount only for a specific machine, `hugepage_size` and/or `hugepage_amount` can be provided in `host_vars//10-default.yml` (i.e., if host is named `node01`, then the file is `host_vars/node01/10-default.yml`). For example: +To specify the size or amount only for a specific machine, `hugepage_size` and/or `hugepage_amount` can be provided in `inventory/default/host_vars//10-default.yml` (i.e., if host is named `node01`, then the file is `inventory/default/host_vars/node01/10-default.yml`). For example: ```yaml -# host_vars/node01/10-default.yml +# inventory/default/host_vars/node01/10-default.yml hugepage_size: "2M" hugepage_amount: "1500" diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-kubernetes-dashboard.md b/doc/building-blocks/enhanced-platform-awareness/openness-kubernetes-dashboard.md index 56482394..e4a272aa 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-kubernetes-dashboard.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-kubernetes-dashboard.md @@ -17,7 +17,7 @@ Kubernetes Dashboard is a web user interface for Kubernetes. User can use Dashbo ## Details - Kubernetes Dashboard support in OpenNESS -Kubernetes Dashboard is disabled by default in OpenNESS Experience Kits. It can be enabled by setting variable `kubernetes_dashboard_enable` in `group_vars/all/10-default.yml` file to `true` value: +Kubernetes Dashboard is disabled by default in OpenNESS Experience Kits. It can be enabled by setting variable `kubernetes_dashboard_enable` in `inventory/default/group_vars/all/10-default.yml` file to `true` value: ```yaml # Kubernetes Dashboard @@ -26,7 +26,7 @@ kubernetes_dashboard_enable: false # set to true to enable Kubernetes Dashboard ### TLS encryption -TLS for Kubernetes dashboard is enabled by default. User can disable TLS encryption using variable `disable_dashboard_tls` in `group_vars/all/10-default.yml`: +TLS for Kubernetes dashboard is enabled by default. User can disable TLS encryption using variable `disable_dashboard_tls` in `inventory/default/group_vars/all/10-default.yml`: ```yaml disable_dashboard_tls: false # set to true to disable TLS diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-node-feature-discovery.md b/doc/building-blocks/enhanced-platform-awareness/openness-node-feature-discovery.md index 98742fd7..81b1f718 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-node-feature-discovery.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-node-feature-discovery.md @@ -48,7 +48,7 @@ _Figure - CDN app deployment with NFD Features_ ### Node Feature Discovery support in OpenNESS Network Edge -Node Feature Discovery is enabled by default. It does not require any configuration or user input. It can be disabled by changing the `ne_nfd_enable` variable to `false` in the `group_vars/all/10-default.yml` before the OpenNESS installation. +Node Feature Discovery is enabled by default. It does not require any configuration or user input. It can be disabled by changing the `ne_nfd_enable` variable to `false` in the `inventory/default/group_vars/all/10-default.yml` before the OpenNESS installation. The connection between `nfd-nodes` and `nfd-control-plane` is secured by certificates generated before running NFD pods. diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-rmd.md b/doc/building-blocks/enhanced-platform-awareness/openness-rmd.md index 2a0242a8..80a42bc8 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-rmd.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-rmd.md @@ -53,7 +53,7 @@ For more information about cache allocation and available cache pools, refer to This feature is for the OpenNESS Network Edge deployment mode. ## Usage -Enable the RMD feature in *group_vars/all/10-default.yml* when installing OpenNESS (Under the Network Edge section): +Enable the RMD feature in *inventory/default/group_vars/all/10-default.yml* when installing OpenNESS (Under the Network Edge section): > rmd_operator_enable: True > This will install the underlying infrastructure. diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md b/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md index 2df6b212..c42a713d 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md @@ -52,7 +52,7 @@ _Figure - SR-IOV Device plugin_ ## Details - Multiple Interface and PCIe\* SRIOV support in OpenNESS -In Network Edge mode, the Multus CNI, which provides the possibility for attaching multiple interfaces to the pod, is deployed automatically when the `kubernetes_cnis` variable list (in the `group_vars/all/10-default.yml` file) contains at least two elements, e.g.,: +In Network Edge mode, the Multus CNI, which provides the possibility for attaching multiple interfaces to the pod, is deployed automatically when the `kubernetes_cnis` variable list (in the `inventory/default/group_vars/all/10-default.yml` file) contains at least two elements, e.g.,: ```yaml kubernetes_cnis: - kubeovn @@ -123,7 +123,7 @@ EOF ### SR-IOV configuration and usage -To deploy the OpenNESS' Network Edge with SR-IOV, `sriov` must be added to the `kubernetes_cnis` list in `group_vars/all/10-default.yml`: +To deploy the OpenNESS' Network Edge with SR-IOV, `sriov` must be added to the `kubernetes_cnis` list in `inventory/default/group_vars/all/10-default.yml`: ```yaml kubernetes_cnis: - kubeovn @@ -134,12 +134,12 @@ SR-IOV CNI and device plugin are deployed in OpenNESS using Helm chart. The Helm #### Edge Node SR-IOV interfaces configuration -For the installer to turn on the specified number of SR-IOV VFs for a selected network interface of node, provide that information in the format `{interface_name: VF_NUM, ...}` in the `sriov.network_interfaces` variable inside the config files in `host_vars` Ansible directory. -For technical reasons, each node must be configured separately. Copy the example file `host_vars/node01/10-default.yml` and then create a similar one for each node being deployed. +For the installer to turn on the specified number of SR-IOV VFs for a selected network interface of node, provide that information in the format `{interface_name: VF_NUM, ...}` in the `sriov.network_interfaces` variable inside the config files in `inventory/default/host_vars` Ansible directory. +For technical reasons, each node must be configured separately. Copy the example file `inventory/default/host_vars/node01/10-default.yml` and then create a similar one for each node being deployed. -Also, each node must be added to the Ansible inventory file `inventory.ini`. +Also, each node must be added to the Ansible inventory file `inventory/default/inventory.ini`. -For example, providing `host_vars/node01/10-default.yml` with the following options will enable 4 VFs for network interface (PF) `ens787f0` and 8 VFs for network interface `ens787f1` of `node1`. +For example, providing `inventory/default/host_vars/node01/10-default.yml` with the following options will enable 4 VFs for network interface (PF) `ens787f0` and 8 VFs for network interface `ens787f1` of `node1`. ```yaml sriov: diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md b/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md index fa5357df..70ac1bd3 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md @@ -54,7 +54,7 @@ The deployment of telemetry components in OpenNESS is easily configurable from t - smartcity - corenetwork -Further information on what plugins each flavor enables can be found in the [CollectD section](#collectd). All flags can be changed in `./group_vars/all/10-default.yml` for the default configuration or in `./flavors` in a configuration for a specific platform flavor. +Further information on what plugins each flavor enables can be found in the [CollectD section](#collectd). All flags can be changed in `./inventory/default/group_vars/all/10-default.yml` for the default configuration or in `./flavors` in a configuration for a specific platform flavor. ## Telemetry features diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-topology-manager.md b/doc/building-blocks/enhanced-platform-awareness/openness-topology-manager.md index e5f60e13..ced77c30 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-topology-manager.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-topology-manager.md @@ -32,7 +32,7 @@ Topology Manager is a Kubelet component that aims to co-ordinate the set of comp ## Details - Topology manager support in OpenNESS -Topology Manager is enabled by default with a `best-effort` policy. You can change the settings before OpenNESS installation by editing the `group_vars/all/10-default.yml` file: +Topology Manager is enabled by default with a `best-effort` policy. You can change the settings before OpenNESS installation by editing the `inventory/default/group_vars/all/10-default.yml` file: ```yaml ### Kubernetes Topology Manager configuration (for a node) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness_hddl.md b/doc/building-blocks/enhanced-platform-awareness/openness_hddl.md index 5dfca7b6..06da715f 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness_hddl.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness_hddl.md @@ -27,7 +27,7 @@ Each implementation for each hardware is an inference engine plugin. The plugin for the Intel® Movidius™ Myriad™ X HDDL solution, or IE HDDL plugin for short, supports the Intel® Movidius™ Myriad™ X HDDL Solution hardware PCIe card. It communicates with the Intel® Movidius™ Myriad™ X HDDL HAL API to manage multiple Intel® Movidius™ Myriad™ X devices in the card, and it schedules deep-learning neural networks and inference tasks to these devices. ## HDDL OpenNESS Integration -OpenNESS provides support for the deployment of OpenVINO™ applications and workloads accelerated through Intel® Vision Accelerator Design with the Intel® Movidius™ VPU HDDL-R add-in card. As a prerequisite for enabling the support, it is required for the HDDL add-in card to be inserted into the PCI slot of the Edge Node platform. The support is then enabled by setting the appropriate flag - 'ne_hddl_enable' in the '/group_vars/all/10-default.yml' before running OEK playbooks. +OpenNESS provides support for the deployment of OpenVINO™ applications and workloads accelerated through Intel® Vision Accelerator Design with the Intel® Movidius™ VPU HDDL-R add-in card. As a prerequisite for enabling the support, it is required for the HDDL add-in card to be inserted into the PCI slot of the Edge Node platform. The support is then enabled by setting the appropriate flag - 'ne_hddl_enable' in the 'inventory/default/group_vars/all/10-default.yml' before running OEK playbooks. > **NOTE** No pre-defined flavor is provided for HDDL. If user wants to enable HDDL with flavor, can set flag - 'ne_hddl_enable' in the 'flavors//all.yml'. The node with HDDL card inserted will be labelled as 'hddl-zone=true'. The OEK automation script for HDDL will involve the following steps: diff --git a/doc/flavors.md b/doc/flavors.md index a890b3e5..e4c70b5b 100644 --- a/doc/flavors.md +++ b/doc/flavors.md @@ -35,7 +35,7 @@ This deployment flavor enables the following ingredients: * The default Kubernetes CNI: `kube-ovn` * Telemetry -To customize this flavor we recommend creating additional file in openness-experience-kits that will override any variables used in previous configuration. This file should be placed in location: `openness-experiance-kits/group_vars/all` and filenames should start withnumber greater than highest value currently present (e.g. `40-overrides.yml`). +To customize this flavor we recommend creating additional file in openness-experience-kits that will override any variables used in previous configuration. This file should be placed in location: `openness-experience-kits/inventory/default/group_vars/all` and filenames should start with number greater than highest value currently present (e.g. `40-overrides.yml`). ## CERA Access Edge Flavor @@ -93,12 +93,12 @@ The pre-defined *media-analytics-vca* deployment flavor provisions an optimized Steps to install this flavor are as follows: 1. Configure OEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). -2. Add the VCA host name in the `[edgenode_vca_group]` group in `inventory.ini` file of the OEK, e.g: +2. Add the VCA host name in the `[edgenode_vca_group]` group in `inventory/default/inventory.ini` file of the OEK, e.g: ``` [edgenode_vca_group] silpixa00400194 ``` - > **NOTE:** The VCA host name should *only* be placed once in the `inventory.ini` file and under the `[edgenode_vca_group]` group. + > **NOTE:** The VCA host name should *only* be placed once in the `inventory/default/inventory.ini` file and under the `[edgenode_vca_group]` group. 3. Run OEK deployment script: ```shell diff --git a/doc/getting-started/network-edge/controller-edge-node-setup.md b/doc/getting-started/network-edge/controller-edge-node-setup.md index 55f1bb8c..3f4a2191 100644 --- a/doc/getting-started/network-edge/controller-edge-node-setup.md +++ b/doc/getting-started/network-edge/controller-edge-node-setup.md @@ -78,7 +78,7 @@ To use the playbooks, several preconditions must be fulfilled. These preconditio # Running playbooks -The Network Edge deployment and cleanup is carried out via Ansible playbooks. The playbooks are run from the Ansible host (it might be the same machine as the Edge Controller). Before running the playbooks, an inventory file `inventory.ini` must be configured. +The Network Edge deployment and cleanup is carried out via Ansible playbooks. The playbooks are run from the Ansible host (it might be the same machine as the Edge Controller). Before running the playbooks, an inventory file `inventory/default/inventory.ini` must be configured. The following subsections describe the playbooks in more detail. @@ -103,7 +103,7 @@ The `cleanup_ne.sh` script is used when a configuration error in the Edge Contro ## Network Edge playbooks The `network_edge.yml` and `network_edge_cleanup.yml` files contain playbooks for Network Edge mode. -Playbooks can be customized by enabling and configuring features in the `group_vars/all/10-default.yml` file. +Playbooks can be customized by enabling and configuring features in the `inventory/default/group_vars/all/10-default.yml` file. ### Cleanup playbooks @@ -129,7 +129,7 @@ Refer to the [network-edge-applications-onboarding](https://github.com/otcshare/ Network Edge can be deployed on just a single machine working as a control plane & node.
To deploy Network Edge in a single-node cluster scenario, follow the steps below: -1. Modify `inventory.ini`
+1. Modify `inventory/default/inventory.ini`
> Rules for inventory: > - IP address (`ansible_host`) for both controller and node must be the same > - `edgenode_group` and `controller_group` groups must contain exactly one host @@ -148,8 +148,8 @@ To deploy Network Edge in a single-node cluster scenario, follow the steps below [edgenode_vca_group] ``` -2. Features can be enabled in the `group_vars/all/10-default.yml` file by tweaking the configuration variables. -3. Settings regarding the kernel, grub, HugePages\*, and tuned can be customized in `group_vars/edgenode_group/10-default.yml`. +2. Features can be enabled in the `inventory/default/group_vars/all/10-default.yml` file by tweaking the configuration variables. +3. Settings regarding the kernel, grub, HugePages\*, and tuned can be customized in `inventory/default/group_vars/edgenode_group/10-default.yml`. > Default settings in the single-node cluster mode are those of the Edge Node (i.e., kernel and tuned customization enabled). 4. Single-node cluster can be deployed by running command: `./deploy_ne.sh -f single` @@ -377,7 +377,7 @@ Multiple CNIs can be requested to be set up for the cluster. To provide such fun ### Selecting cluster networking plugins (CNI) -The default CNI for OpenNESS is kube-ovn. Non-default CNIs may be configured with OpenNESS by editing the file `group_vars/all/10-default.yml`. +The default CNI for OpenNESS is kube-ovn. Non-default CNIs may be configured with OpenNESS by editing the file `inventory/default/group_vars/all/10-default.yml`. To add a non-default CNI, the following edits must be carried out: - The CNI name is added to the `kubernetes_cnis` variable. The CNIs are applied in the order in which they appear in the file. By default, `kube-ovn` is defined. That is, @@ -450,12 +450,12 @@ The following interfaces are available: `calico@if142`, `flannel@if143`, and `et To allow for correct certificate verification, OpenNESS requires system time to be synchronized among all nodes and controllers in a system. OpenNESS provides the possibility to synchronize a machine's time with the NTP server. -To enable NTP synchronization, change `ntp_enable` in `group_vars/all/10-default.yml`: +To enable NTP synchronization, change `ntp_enable` in `inventory/default/group_vars/all/10-default.yml`: ```yaml ntp_enable: true ``` -Servers to be used instead of default ones can be provided using the `ntp_servers` variable in `group_vars/all/10-default.yml`: +Servers to be used instead of default ones can be provided using the `ntp_servers` variable in `inventory/default/group_vars/all/10-default.yml`: ```yaml ntp_servers: ["ntp.local.server"] ``` @@ -480,7 +480,7 @@ In addition to being a unique hostname within the cluster, the hostname must als ## Configuring inventory -To execute playbooks, `inventory.ini` must be configured to specify the hosts on which the playbooks are executed. +To execute playbooks, `inventory/default/inventory.ini` must be configured to specify the hosts on which the playbooks are executed. The OpenNESS inventory contains three groups: `all`, `controller_group`, and `edgenode_group`. @@ -572,11 +572,11 @@ To make sure the key is copied successfully, try to SSH into the host: `ssh 'roo If a proxy is required to connect to the Internet, it is configured via the following steps: -- Edit the `proxy_` variables in the `group_vars/all/10-default.yml` file. -- Set the `proxy_enable` variable in `group_vars/all/10-default.yml` file to `true`. -- Append the network CIDR (e.g., `192.168.0.1/24`) to the `proxy_noproxy` variable in `group_vars/all/10-default.yml`. +- Edit the `proxy_` variables in the `inventory/default/group_vars/all/10-default.yml` file. +- Set the `proxy_enable` variable in `inventory/default/group_vars/all/10-default.yml` file to `true`. +- Append the network CIDR (e.g., `192.168.0.1/24`) to the `proxy_noproxy` variable in `inventory/default/group_vars/all/10-default.yml`. -Sample configuration of `group_vars/all/10-default.yml`: +Sample configuration of `inventory/default/group_vars/all/10-default.yml`: ```yaml # Setup proxy on the machine - required if the Internet is accessible via proxy @@ -613,11 +613,11 @@ To clone private repositories, a GitHub token must be provided. To generate a GitHub token, refer to [GitHub help - Creating a personal access token for the command line](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line). -To provide the token, edit the value of `git_repo_token` variable in `group_vars/all/10-default.yml`. +To provide the token, edit the value of `git_repo_token` variable in `inventory/default/group_vars/all/10-default.yml`. ### Customize tag/branch/sha to checkout -A specific tag, branch, or commit SHA can be checked out by setting the `controller_repository_branch` and the `edgenode_repository_branch` variables in `group_vars/all/10-default.yml` for Edge Nodes and Kubernetes control plane / Edge Controller, respectively. +A specific tag, branch, or commit SHA can be checked out by setting the `controller_repository_branch` and the `edgenode_repository_branch` variables in `inventory/default/group_vars/all/10-default.yml` for Edge Nodes and Kubernetes control plane / Edge Controller, respectively. ```yaml controller_repository_branch: master diff --git a/doc/getting-started/network-edge/offline-edge-deployment.md b/doc/getting-started/network-edge/offline-edge-deployment.md index 8374ca48..07c687ed 100644 --- a/doc/getting-started/network-edge/offline-edge-deployment.md +++ b/doc/getting-started/network-edge/offline-edge-deployment.md @@ -126,7 +126,7 @@ During the deployment of the offline version of the OEK the archived files creat The following are the specific steps to enable offline/air-gaped deployment from OEK: -Enable the offline deployment in [openness-experience-kits/group_vars/all/10-default.yml](https://github.com/otcshare/openness-experience-kits/blob/master/group_vars/all/10-default.yml) +Enable the offline deployment in [openness-experience-kits/inventory/default/group_vars/all/10-default.yml](https://github.com/otcshare/openness-experience-kits/blob/master/inventory/default/group_vars/all/10-default.yml) ```yaml ## Offline Mode support diff --git a/doc/getting-started/openness-experience-kits.md b/doc/getting-started/openness-experience-kits.md index f613a7a1..8d1063c1 100644 --- a/doc/getting-started/openness-experience-kits.md +++ b/doc/getting-started/openness-experience-kits.md @@ -31,13 +31,13 @@ The OpenNESS Experience Kit (OEK) repository contains a set of Ansible\* playboo OEKs allow a user to customize kernel, grub parameters, and tuned profiles by leveraging Ansible's feature of `host_vars`. -> **NOTE**: `groups_vars/[edgenode|controller|edgenode_vca]_group` directories contain variables applicable for the respective groups and they can be used in `host_vars` to change on per node basis while `group_vars/all` contains cluster wide variables. +> **NOTE**: `inventory/default/groups_vars/[edgenode|controller|edgenode_vca]_group` directories contain variables applicable for the respective groups and they can be used in `inventory/default/host_vars` to change on per node basis while `inventory/default/group_vars/all` contains cluster wide variables. -OEKs contain a `host_vars/` directory in which we can create another directory (`nodes-inventory-name`) and place a YAML file (`10-default.yml`, e.g., `node01/10-default.yml`). The file would contain variables that would override roles' default values. +OEKs contain a `inventory/default/host_vars/` directory in which we can create another directory (`nodes-inventory-name`) and place a YAML file (`10-default.yml`, e.g., `node01/10-default.yml`). The file would contain variables that would override roles' default values. > **NOTE**: Despite the ability to customize parameters (kernel), it is required to have a clean CentOS\* 7.9.2009 operating system installed on hosts (from a minimal ISO image) that will be later deployed from Ansible scripts. This OS shall not have any user customizations. -To override the default value, place the variable's name and new value in the host's vars file. For example, the contents of `host_vars/node01/10-default.yml` that would result in skipping kernel customization on that node: +To override the default value, place the variable's name and new value in the host's vars file. For example, the contents of `inventory/default/host_vars/node01/10-default.yml` that would result in skipping kernel customization on that node: ```yaml kernel_skip: true @@ -54,10 +54,10 @@ Following files specify the CIDR for CNIs and interfaces. These are the IP addre ```yaml flavors/media-analytics-vca/all.yml:19:vca_cidr: "172.32.1.0/12" -group_vars/all/10-default.yml:90:calico_cidr: "10.243.0.0/16" -group_vars/all/10-default.yml:93:flannel_cidr: "10.244.0.0/16" -group_vars/all/10-default.yml:96:weavenet_cidr: "10.32.0.0/12" -group_vars/all/10-default.yml:99:kubeovn_cidr: "10.16.0.0/16,100.64.0.0/16,10.96.0.0/12" +inventory/default/group_vars/all/10-default.yml:90:calico_cidr: "10.243.0.0/16" +inventory/default/group_vars/all/10-default.yml:93:flannel_cidr: "10.244.0.0/16" +inventory/default/group_vars/all/10-default.yml:96:weavenet_cidr: "10.32.0.0/12" +inventory/default/group_vars/all/10-default.yml:99:kubeovn_cidr: "10.16.0.0/16,100.64.0.0/16,10.96.0.0/12" roles/kubernetes/cni/kubeovn/controlplane/templates/crd_local.yml.j2:13: cidrBlock: "192.168.{{ loop.index0 + 1 }}.0/24" ``` @@ -179,7 +179,7 @@ By default, OVS-DPDK is enabled. To disable it, set a flag: kubeovn_dpdk: false ``` ->**NOTE**: This flag should be set in `roles/kubernetes/cni/kubeovn/common/defaults/main.ym` or added to `group_vars/all/10-default.yml`. +>**NOTE**: This flag should be set in `roles/kubernetes/cni/kubeovn/common/defaults/main.ym` or added to `inventory/default/group_vars/all/10-default.yml`. Additionally, HugePages in the OVS pod can be adjusted once default HugePage settings are changed. ```yaml diff --git a/doc/orchestration/openness-helm.md b/doc/orchestration/openness-helm.md index 50919e9c..5d581435 100644 --- a/doc/orchestration/openness-helm.md +++ b/doc/orchestration/openness-helm.md @@ -53,7 +53,7 @@ OpenNESS provides the following helm charts: - [xRAN Helm Charts](https://github.com/otcshare/edgeapps/tree/master/network-functions/xran/helmcharts/xranchart) - [UPF Helm Charts](https://github.com/otcshare/edgeapps/tree/master/network-functions/core-network/charts/upf) -The EPA, Telemetry, and k8s plugins helm chart files will be saved in a specific directory on the OpenNESS controller. To modify the directory, change the following variable `ne_helm_charts_default_dir` in the `group_vars/all/10-default.yml` file: +The EPA, Telemetry, and k8s plugins helm chart files will be saved in a specific directory on the OpenNESS controller. To modify the directory, change the following variable `ne_helm_charts_default_dir` in the `inventory/default/group_vars/all/10-default.yml` file: ```yaml ne_helm_charts_default_dir: /opt/openness/helm-charts/ ``` diff --git a/doc/reference-architectures/ran/openness_xran.md b/doc/reference-architectures/ran/openness_xran.md index 3e8859ea..241e44de 100644 --- a/doc/reference-architectures/ran/openness_xran.md +++ b/doc/reference-architectures/ran/openness_xran.md @@ -410,7 +410,7 @@ Before starting the deployment script, OpenNESS should be configured according t Additional configuration steps are provided below. ### Setting up SRIOV -1. Modify the `group_vars/all/10-default.yml` file as follows: +1. Modify the `inventory/default/group_vars/all/10-default.yml` file as follows: ```yaml kubernetes_cnis: @@ -426,7 +426,7 @@ Additional configuration steps are provided below. kubeovn_dpdk: false ``` -2. Modify `host_vars//10-default.yml`. Provide the physical addresses of the connected interface to be used by the xRAN sample application and the number of VFs to be created on each of the connected physical ports. Each port needs to have 2 VFs. The SRIOV setting should look similar to: +2. Modify `inventory/default/host_vars//10-default.yml`. Provide the physical addresses of the connected interface to be used by the xRAN sample application and the number of VFs to be created on each of the connected physical ports. Each port needs to have 2 VFs. The SRIOV setting should look similar to: ```yaml sriov: @@ -456,7 +456,7 @@ Modify SRIOV ConfigMap. In the file `roles/kubernetes/cni/sriov/controlplane/fil ### Amend GRUB and tuned configuration -In file `./group_vars/edgenode_group.yml`, change the following settings: +In file `./inventory/default/group_vars/edgenode_group.yml`, change the following settings: >**NOTE**: These configuration settings are for real-time kernels. The expected kernel version is - 3.10.0-1062.12.1.rt56.1042.el7.x86_64 @@ -485,17 +485,17 @@ Instructions on how to configure the kernel command line in OpenNESS can be foun ### PTP Synchronization -To enable PTP synchronization, modify one setting in `./group_vars/all.sh`: +To enable PTP synchronization, modify one setting in `./inventory/default/group_vars/all/10-default.yml`: ```yaml ptp_sync_enable: true ``` -For the two nodes that are to be synchronized with PTP, modify files `host_vars/nodeXX/10-default.yml` +For the two nodes that are to be synchronized with PTP, modify files `inventory/default/host_vars/nodeXX/10-default.yml` Example: -For node "node01", modify file `host_vars/node01/10-default.yml` +For node "node01", modify file `inventory/default/host_vars/node01/10-default.yml` 1. For PTP Configuration 1 [see](#xran-sample-app-deployment-in-openness) From 1265bd413b3cec45f146ac3dd36aade7501dfe7a Mon Sep 17 00:00:00 2001 From: Karina Murawko-Wisniewska <48431435+i-karina@users.noreply.github.com> Date: Tue, 9 Mar 2021 12:20:36 +0100 Subject: [PATCH 29/89] Calico cidr update (#403) --- doc/getting-started/openness-experience-kits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/getting-started/openness-experience-kits.md b/doc/getting-started/openness-experience-kits.md index 8d1063c1..0204540e 100644 --- a/doc/getting-started/openness-experience-kits.md +++ b/doc/getting-started/openness-experience-kits.md @@ -54,7 +54,7 @@ Following files specify the CIDR for CNIs and interfaces. These are the IP addre ```yaml flavors/media-analytics-vca/all.yml:19:vca_cidr: "172.32.1.0/12" -inventory/default/group_vars/all/10-default.yml:90:calico_cidr: "10.243.0.0/16" +inventory/default/group_vars/all/10-default.yml:90:calico_cidr: "10.245.0.0/16" inventory/default/group_vars/all/10-default.yml:93:flannel_cidr: "10.244.0.0/16" inventory/default/group_vars/all/10-default.yml:96:weavenet_cidr: "10.32.0.0/12" inventory/default/group_vars/all/10-default.yml:99:kubeovn_cidr: "10.16.0.0/16,100.64.0.0/16,10.96.0.0/12" From f95b4e051f47886a84c715c133d51dc13779d51c Mon Sep 17 00:00:00 2001 From: Jakub Rymsza <51228427+jakubrym@users.noreply.github.com> Date: Tue, 9 Mar 2021 13:31:31 +0100 Subject: [PATCH 30/89] Updated Flannel version in docs (#405) --- openness_releasenotes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openness_releasenotes.md b/openness_releasenotes.md index eafc01df..d4d053ab 100644 --- a/openness_releasenotes.md +++ b/openness_releasenotes.md @@ -480,4 +480,4 @@ OpenNESS was tested on CentOS Linux release 7.9.2009 (Core) # Packages Version -Package: telemetry, cadvisor 0.36.0, grafana 7.0.3, prometheus 2.16.0, prometheus: node exporter 1.0.0-rc.0, golang 1.15, docker 20.10.2, kubernetes 1.20.0, dpdk 19.11, ovs 2.14.0, ovn 2.14.0, helm 3.0, kubeovn 1.5.2, flannel 0.12.0, calico 3.16.0, multus 3.6, sriov cni 2.3, nfd 0.6.0, cmk v1.4.1, TAS (from specific commit "a13708825e854da919c6fdf05d50753113d04831"), openssl 1.1.1i +Package: telemetry, cadvisor 0.36.0, grafana 7.0.3, prometheus 2.16.0, prometheus: node exporter 1.0.0-rc.0, golang 1.15, docker 20.10.2, kubernetes 1.20.0, dpdk 19.11, ovs 2.14.0, ovn 2.14.0, helm 3.0, kubeovn 1.5.2, flannel 0.13.0, calico 3.16.0, multus 3.6, sriov cni 2.3, nfd 0.6.0, cmk v1.4.1, TAS (from specific commit "a13708825e854da919c6fdf05d50753113d04831"), openssl 1.1.1i From a35f9df015302a875559935cdb30bdf08b2c87a4 Mon Sep 17 00:00:00 2001 From: groclawski <53475993+groclawski@users.noreply.github.com> Date: Tue, 9 Mar 2021 13:41:42 +0100 Subject: [PATCH 31/89] fix --- openness_releasenotes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openness_releasenotes.md b/openness_releasenotes.md index c98979a5..72335410 100644 --- a/openness_releasenotes.md +++ b/openness_releasenotes.md @@ -267,7 +267,7 @@ This document provides high-level system features, issues, and limitations infor ## OpenNESS - 21.03 - Major system Upgrades: CentOS 7.9, Kubernetes 1.20.0, Calico 3.17 and Docker 20.10.2. -- Set Calico as a default cni for cdn-transcode, central_orchestrator, core-cplane, core-uplane and minimal flavor. +- Set Calico as a default cni for cdn-transcode, central_orchestrator and minimal flavor. # Changes to Existing Features From cc612a96a4feba64cd483c7caec5f5a4de450320 Mon Sep 17 00:00:00 2001 From: Karina Murawko-Wisniewska <48431435+i-karina@users.noreply.github.com> Date: Mon, 15 Mar 2021 16:02:53 +0100 Subject: [PATCH 32/89] Netpol comment about cidr added (#409) --- .../network-edge-applications-onboarding.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/applications-onboard/network-edge-applications-onboarding.md b/doc/applications-onboard/network-edge-applications-onboarding.md index 1f13258f..01627198 100644 --- a/doc/applications-onboard/network-edge-applications-onboarding.md +++ b/doc/applications-onboard/network-edge-applications-onboarding.md @@ -114,7 +114,7 @@ To verify that the images for sample application consumer and producer are [buil ## Applying Kubernetes network policies Kubernetes NetworkPolicy is a mechanism that enables control over how pods are allowed to communicate with each other and other network endpoints. By default, in the Network Edge environment, all *ingress* traffic is blocked (services running inside of deployed applications are not reachable) and all *egress* traffic is enabled (pods can reach the internet). -1. To apply a network policy for the sample application allowing ingress traffic, create a `sample_policy.yml` file that specifies the network policy: +1. To apply a network policy for the sample application allowing ingress traffic, create a `sample_policy.yml` file that specifies the network policy (in the example network policy `cidr` field contains Calico CNI cidr; for other CNI use specific CNI cidr, e.g. for Kube-ovn CNI use `10.16.0.0/16`): ```yml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy @@ -128,7 +128,7 @@ Kubernetes NetworkPolicy is a mechanism that enables control over how pods are a ingress: - from: - ipBlock: - cidr: 10.16.0.0/16 + cidr: 10.245.0.0/16 ports: - protocol: TCP port: 80 From a7e3b5de7a848223dccfe2e2abea8d5f26577e45 Mon Sep 17 00:00:00 2001 From: i-kwilk <50014376+i-kwilk@users.noreply.github.com> Date: Tue, 16 Mar 2021 16:40:19 +0100 Subject: [PATCH 33/89] Interfaceservice: Kube-OVN as main CNI (#410) --- doc/applications-onboard/openness-interface-service.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/applications-onboard/openness-interface-service.md b/doc/applications-onboard/openness-interface-service.md index 5ce0c113..f79229b0 100644 --- a/doc/applications-onboard/openness-interface-service.md +++ b/doc/applications-onboard/openness-interface-service.md @@ -12,16 +12,16 @@ Copyright (c) 2019-2020 Intel Corporation - [Userspace (DPDK) bridge](#userspace-dpdk-bridge) - [HugePages (DPDK)](#hugepages-dpdk) - [Examples](#examples) - - [Getting information about node interfaces](#getting-information-about-node-interfaces) - - [Attaching kernel interfaces](#attaching-kernel-interfaces) - - [Attaching DPDK interfaces](#attaching-dpdk-interfaces) - - [Detaching interfaces](#detaching-interfaces) + - [Getting information about node interfaces](#getting-information-about-node-interfaces) + - [Attaching kernel interfaces](#attaching-kernel-interfaces) + - [Attaching DPDK interfaces](#attaching-dpdk-interfaces) + - [Detaching interfaces](#detaching-interfaces) ## Overview Interface service is an application running in the Kubernetes\* pod on each node of the OpenNESS Kubernetes cluster. It allows users to attach additional network interfaces of the node to the provided OVS bridge, enabling external traffic scenarios for applications deployed in the Kubernetes\* pods. Services on each node can be controlled from the control plane using kubectl plugin. -Interface service can attach both kernel and user space (DPDK) network interfaces to the appropriate OVS bridges. +Interface service can attach both kernel and user space (DPDK) network interfaces to the appropriate OVS bridges. To perform that operation Kube-OVN needs to be set as main CNI. ## Traffic from the external host From 9adac2bad2cd4da053e1c5bdcc0ceb5eb2a84717 Mon Sep 17 00:00:00 2001 From: "xiaopeng,tong" Date: Wed, 17 Mar 2021 14:59:05 +0800 Subject: [PATCH 34/89] update for open source emco --- doc/building-blocks/emco/openness-emco.md | 75 ++++++++++++++--------- 1 file changed, 45 insertions(+), 30 deletions(-) diff --git a/doc/building-blocks/emco/openness-emco.md b/doc/building-blocks/emco/openness-emco.md index b59d0af7..ebb4a052 100644 --- a/doc/building-blocks/emco/openness-emco.md +++ b/doc/building-blocks/emco/openness-emco.md @@ -1,6 +1,6 @@ ```text SPDX-License-Identifier: Apache-2.0 -Copyright (c) 2020 Intel Corporation +Copyright (c) 2020-2021 Intel Corporation ``` # Edge Multi-Cluster Orchestrator (EMCO) @@ -322,6 +322,8 @@ emco ovnaction-5d8d4447f9-nn7l6 1/1 Running 0 14m emco rsync-99b85b4x88-ashmc 1/1 Running 0 14m ``` +Besides that, OpenNESS EMCO also provides Azure templates and supports deployment automation for EMCO cluster installation on Azure public cloud. More details refer to [OpenNESS Development Kit for Microsoft Azure](https://github.com/otcshare/ido-specs/blob/master/doc/devkits/openness-azure-devkit.md). + ## EMCO Example: SmartCity Deployment - The [SmartCity application](https://github.com/OpenVisualCloud/Smart-City-Sample) is a sample application that is built on top of the OpenVINO™ and Open Visual Cloud software stacks for media processing and analytics. The composite application is composed of two parts: EdgeApp + WebApp (cloud application for additional post-processing such as calculating statistics and display/visualization) - The edge cluster (representing regional office), the cloud cluster and the EMCO are connected with each other. @@ -333,7 +335,7 @@ _Figure 11 - SmartCity Deployment Architecture Overview_ The example steps are shown as follows: - Prerequisites - Make one edge cluster and one cloud cluster ready by using OpenNESS Flavor. - - Prepare one server with a vanilla CentOS\* 7.8.2003 for EMCO installation. + - Prepare one server with a vanilla CentOS\* 7.9.2009 for EMCO installation. - EMCO installation - Cluster setup - Project setup @@ -356,6 +358,7 @@ In the step, cluster provider will be created. And both the edge cluster and the HARBORRPW=Harbor12345 docker login ${HARBORRHOST} -u admin -p ${HARBORRPW} ``` + > **NOTE**: should be `:30003`. 3. On the EMCO server, download the [scripts,profiles and configmap JSON files](https://github.com/otcshare/edgeapps/tree/master/applications/smart-city-app/emco). @@ -363,9 +366,12 @@ In the step, cluster provider will be created. And both the edge cluster and the 4. Run the command for the environment setup with success return as below: ```shell # cd cli-scripts/ - # ./setup_env.sh + # ./setup_env.sh -e -d -c -r ``` + > **NOTE**: [SmartCity application](https://github.com/OpenVisualCloud/Smart-City-Sample) secrets need the specific information only accessiable by the edge cluster and the cloud cluster. `setup_env.sh` will automate it. + > **NOTE**: The enviroment setup steps include SmartCity github repo clone, docker images building, helm charts prepration and clusters configuration information preparation. + 5. Run the command for the clusters setup with expected result as below: ```shell @@ -376,36 +382,43 @@ In the step, cluster provider will be created. And both the edge cluster and the URL: cluster-providers/smartcity-cluster-provider/clusters/cloud01/labels Response Code: 201 Response: {"label-name":"LabelSmartCityCloud"} ``` + > **NOTE**: The cluster setup steps include clusters providers registration, clusters registration, adding labels for the clusters, EMCO controller creation and registration. + > **NOTE**: The `01_apply.sh` script invokes EMCO CLI tool - `emcoctl` and applies resource template file - `01_clusters_template.yaml` which contains the clusters related resources to create in EMCO. For example: Cluster Providers, Labels...etc. + ### Project Setup Run the command for the project setup with expected result as below: -```shell -# cd cli-scripts/ -# ./02_apply.sh + ```shell + # cd cli-scripts/ + # ./02_apply.sh -Using config file: emco_cfg.yaml -http://localhost:31298/v2 -URL: projects Response Code: 201 Response: {"metadata":{"name":"project_smtc","description":"","UserData1":"","UserData2":""}} -``` + Using config file: emco_cfg.yaml + http://localhost:31298/v2 + URL: projects Response Code: 201 Response: {"metadata":{"name":"project_smtc","description":"","UserData1":"","UserData2":""}} + ``` + + > **NOTE**: The `02_apply.sh` script invokes EMCO CLI tool - `emcoctl` and applies resource template file - `02_project_template.yaml` which contains the projects related resources to create in EMCO. ### Logical Cloud Setup Run the command for the logical cloud setup with expected result as below: -```shell -# cd cli-scripts/ -# ./03_apply.sh - -Using config file: emco_cfg.yaml -http://localhost:31877/v2 -URL: projects/project_smtc/logical-clouds Response Code: 201 Response: {"metadata":{"name":"default","description":"","userData1":"","userData2":""},"spec":{"namespace":"","level":"0","user":{"user-name":"","type":"","user-permissions":null}}} -http://localhost:31877/v2 -URL: projects/project_smtc/logical-clouds/default/cluster-references Response Code: 201 Response: {"metadata":{"name":"lc-edge01","description":"","userData1":"","userData2":""},"spec":{"cluster-provider":"smartcity-cluster-provider","cluster-name":"edge01","loadbalancer-ip":"0.0.0.0","certificate":""}} -http://localhost:31877/v2 -URL: projects/project_smtc/logical-clouds/default/instantiate Response Code: 200 Response: -``` + ```shell + # cd cli-scripts/ + # ./03_apply.sh + + Using config file: emco_cfg.yaml + http://localhost:31877/v2 + URL: projects/project_smtc/logical-clouds Response Code: 201 Response: {"metadata":{"name":"default","description":"","userData1":"","userData2":""},"spec":{"namespace":"","level":"0","user":{"user-name":"","type":"","user-permissions":null}}} + http://localhost:31877/v2 + URL: projects/project_smtc/logical-clouds/default/cluster-references Response Code: 201 Response: {"metadata":{"name":"lc-edge01","description":"","userData1":"","userData2":""},"spec":{"cluster-provider":"smartcity-cluster-provider","cluster-name":"edge01","loadbalancer-ip":"0.0.0.0","certificate":""}} + http://localhost:31877/v2 + URL: projects/project_smtc/logical-clouds/default/instantiate Response Code: 200 Response: + ``` + > **NOTE**: The `03_apply.sh` script invokes EMCO CLI tool - `emcoctl` and applies resource template file - `03_logical_cloud_template.yaml` which contains the logical cloud related resources to create in EMCO. + ### Deploy SmartCity Application 1. Run the command for the SmartCity application deployment with expected result as below: @@ -418,8 +431,10 @@ URL: projects/project_smtc/logical-clouds/default/instantiate Response Code: 200 http://localhost:31298/v2 URL: projects/project_smtc/composite-apps/composite_smtc/v1/deployment-intent-groups/smtc-deployment-intent-group/instantiate Response Code: 202 Response: ``` - > **NOTE**: EMCO supports generic K8S resource configuration including configmap, secret,etc. The example offers the usage about [configmap configuration](https://github.com/otcshare/edgeapps/blob/master/applications/smart-city-app/emco/cli-scripts/04_apps_template.yaml) to the clusters. + > **NOTE**: EMCO supports generic K8S resource configuration including configmap, secret,etc. The example offers the usage about [configmap configuration](https://github.com/otcshare/edgeapps/blob/master/applications/smart-city-app/emco/cli-scripts/04_apps_template.yaml) to the clusters. + > **NOTE**: The `04_apply.sh` script invokes EMCO CLI tool - `emcoctl` and applies resource template file - `04_apps_template.yaml` which contains the application related resources to create in EMCO, for example deployment-intent, application helm chart entries, override profiles, configmap...etc. The placement intent for the use case is cluster label name and provider name. + 2. Verify SmartCity Application Deployment Information. The pods on the edge cluster are in the running status as shown as below: @@ -456,13 +471,13 @@ _Figure 12 - SmartCity UI_ ### SmartCity Termination Run the command for the SmartCity termination with expected result as below: -```shell -# cd cli-scripts/ -# ./88_terminate.sh + ```shell + # cd cli-scripts/ + # ./88_terminate.sh -Using config file: emco_cfg.yaml -http://localhost:31298/v2 -URL: projects/project_smtc/composite-apps/composite_smtc/v1/deployment-intent-groups/smtc-deployment-intent-group/terminate Response Code: 202 Response: -``` + Using config file: emco_cfg.yaml + http://localhost:31298/v2 + URL: projects/project_smtc/composite-apps/composite_smtc/v1/deployment-intent-groups/smtc-deployment-intent-group/terminate Response Code: 202 Response: + ``` After termination, the SmartCity application will be deleted from the clusters. From 9adc676de5e20436741a6441d555cc6b159cbce8 Mon Sep 17 00:00:00 2001 From: Jiang Date: Wed, 17 Mar 2021 15:02:32 +0800 Subject: [PATCH 35/89] remove the doc from oek --- .../network-edge/offline-edge-deployment.md | 157 ------------------ 1 file changed, 157 deletions(-) delete mode 100644 doc/getting-started/network-edge/offline-edge-deployment.md diff --git a/doc/getting-started/network-edge/offline-edge-deployment.md b/doc/getting-started/network-edge/offline-edge-deployment.md deleted file mode 100644 index 07c687ed..00000000 --- a/doc/getting-started/network-edge/offline-edge-deployment.md +++ /dev/null @@ -1,157 +0,0 @@ -```text -SPDX-License-Identifier: Apache-2.0 -Copyright (c) 2019-2020 Intel Corporation -``` - -- [OpenNESS Network Edge: Offline Deployment](#openness-network-edge-offline-deployment) - - [OpenNESS support in offline environment](#openness-support-in-offline-environment) - - [Setup prerequisites](#setup-prerequisites) - - [Creating the offline package from an online node](#creating-the-offline-package-from-an-online-node) - - [Placing the complete offline package in offline environment](#placing-the-complete-offline-package-in-offline-environment) - - [Deployment in offline environment](#deployment-in-offline-environment) -# OpenNESS Network Edge: Offline Deployment - -## OpenNESS support in offline environment - -The OpenNESS projects supports a deployment of the solution in an air-gapped, offline environment. The support is currently limited to "[flexran" deployment flavor of OpenNESS Experience Kit](https://github.com/otcshare/openness-experience-kits/tree/master/flavors/flexran) only and it allows for offline deployment of vRAN specific components. Internet connection is needed to create the offline package, a script to download and build all necessary components will create an archive of all the necessary files. Once the offline package is created the installation of OpenNESS Experience Kits will be commenced as usual, in the same way as the default online installation would. - -It can be deployed in two different scenarios. The first scenario is to deploy the OpenNESS Experience Kits from the online "jumper" node which is being used to create the offline package, this internet connected node must have a network connection to the air-gapped/offline nodes. The second scenario is to copy the whole OpenNESS Experience Kit directory with the already archived packages to the air-gapped/offline environment (for example via USB or other media or means) and run the OpenNESS Experience Kit from within the offline environment. All the nodes within the air-gapped/offline cluster need to able to SSH into each other. - -Figure 1. Scenario one - online node connected to the air-gapped network -![Scenario one - online node connected to the air-gapped network](offline-images/offline-ssh.png) -Figure 2. Scenario two - OEK copied to the air-gapped network -![Scenario two - OEK copied to the air-gapped network](offline-images/offline-copy.png) - -## Setup prerequisites - -* A node with access to internet to create the offline package. -* Cluster set up in an air-gapped environment. -* Clean setup, see [pre-requisites](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/controller-edge-node-setup.md#preconditions) -* [Optional] If OEK is run from an online jumper node, the node needs to be able to SSH into each machine in air-gapped environment. -* [Optional] A media such as USB drive to copy the offline OEK package to the air-gapped environment if there is no connection from online node. -* All the nodes in air-gapped environment must be able to SSH to each other without requiring password input, see [getting-started.md](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/controller-edge-node-setup.md#exchanging-ssh-keys-between-hosts). -* The control plane node needs to be able to SSH itself. -* The time and date of the nodes in offline environment is manually synchronized by the cluster's admin. -* User provided files - OPAE_SDK_1.3.7-5_el7.zip and syscfg_package.zip - -## Creating the offline package from an online node - -To create the offline package the user must have an access to an online node from which the offline package creator can download all necessary files and build Docker images. The list of files to be downloaded/build is provided in a form of a package definition list (Only package definition list for "flexran" flavor of OpenNESS is provided at the time of writing). Various categories of files to be downloaded are provided within this list including: RPMs, PIP pacakges, Helm charts, Dockerfiles, Go modules, and miscellaneous downloads. According to the category of a file the logic of offline package creator script will handle the download/build accordingly. Some files such as proprietary packages need to be provided by user in specified directories (see following steps). Once the offline package creator collects all necessary components it will pack them into an archive and then place them in appropriate place within the OpenNESS Experience Kits directory. Once the packages are archived the OpenNESS Experience Kits are ready to be deployed in air-gapped environment. The following diagram illustrates the workflow of the offline package creator. Additional information regarding the offline package creator can be found in the [README.md file](https://github.com/otcshare/openness-experience-kits/blob/master/offline_package_creator/README.md). - -Figure 3. Offline package creator workflow -![OPC flow](offline-images/offline-flow.png) - -To run the offline package creator run the following steps (user should not be a "root" user but does need "sudo" privileges to create the package, RT components will require installation of RT kernel on the node by the OPC): - -Clone the OpenNESS Experience Kits repo to an online node: - -```shell -# https://github.com/otcshare/openness-experience-kits.git -``` - -Navigate to offline package creator directory: - -```shell -# cd openness-experience-kits/offline_package_creator/ -``` - -Create a directory from which user provided files can be accessed: - -```shell -# mkdir /// -``` - -Copy the 'OPAE_SDK_1.3.7-5_el7.zip' file (optional but necessary by default - to be done when OPAE is enabled in "flexran" flavor of OEK) and syscfg_package.zip (optional but necessary by default- to be done when BIOS config is enabled in "flexran" flavor of OEK) to the provided directory: - -```shell -# cp OPAE_SDK_1.3.7-5_el7.zip /// -# cp syscfg_package.zip /// -``` - -Edit [openness-experience-kits/offline_package_creator/scripts/initrc](https://github.com/otcshare/openness-experience-kits/blob/master/offline_package_creator/scripts/initrc) file and update with GitHub username/token if necessary, HTTP/GIT proxy if behind firewall and provide paths to file dependencies. - -```shell -# otcshare token -GITHUB_USERNAME="" -GITHUB_TOKEN="" - -# User add ones -HTTP_PROXY="http://
:" #Add proxy first -GIT_PROXY="http://
:" - -# location of OPAE_SDK_1.3.7-5_el7.zip -BUILD_OPAE=disable -DIR_OF_OPAE_ZIP="///" - -# location of syscfg_package.zip -BUILD_BIOSFW=disable -DIR_OF_BIOSFW_ZIP="///" - -# location of the zip packages for collectd-fpga -BUILD_COLLECTD_FPGA=disable -DIR_OF_FPGA_ZIP="///" -``` - -Start the offline package creator script [openness-experience-kits/offline_package_creator/offline_package_creator.sh](https://github.com/otcshare/openness-experience-kits/blob/master/offline_package_creator/offline_package_creator.sh) - -```shell -# bash offline_package_creator.sh all -``` - -The script will download all the files define in the [pdl_flexran.yml](https://github.com/otcshare/openness-experience-kits/blob/master/offline_package_creator/package_definition_list/pdl_flexran.yml) and build other necessary images, then copy them to a designated directory. Once the script is finished executing the user should expect three files under the `openness-experience-kits/roles/offline_roles/unpack_offline_package/files` directory: - -```shell -# ls openness-experience-kits/roles/offline_roles/unpack_offline_package/files - -checksum.txt prepackages.tar.gz opcdownloads.tar.gz -``` - -Once the archive packages are created and placed in the OEK, the OEK is ready to be configured for offline/air-gapped installation. - -## Placing the complete offline package in offline environment - -User has two options of deploying the OEK for offline/air-gapped environment. Please refer to Figure 1 and Figure 2 of this document for diagrams. - -Scenario 1: User will deploy the OEK from an online node with a network connection to the offline/air-gapped environment. In this case if the online node is the same one as the one on which the offline package creator was run and created the archive files for OEK than the OEK directory does not need to be moved and will be used as is. The online node is expected to have a password-less SSH connection with all the offline nodes enabled - all the offline nodes are expected to have a password-less SSH connection between control plane and node and vice-versa, and the control plane node needs to be able to SSH itself. - -Scenario 2: User will deploy the OEK from a node within the offline/air-gapped environment. In this case the user needs to copy the whole OEK directory containing the archived files from [previous section](#creating-the-offline-package-from-an-online-node) from the online node to one of the nodes in the offline environment via USB drive or alternative media. It is advisable that the offline node used to run the OEK is a separate node to the actual cluster, if the node is also used as part of the cluster it will reboot during the script run due to kernel upgrade and the OEK will need to be run again - this may have un-forseen consequences. All the offline nodes are expected to have a password-less SSH connection between control plane and node and vice-versa, and the control plane node needs to be able to SSH itself. - -Regardless of the scenario in which the OEK will be deployed the deployment method is the same. - -## Deployment in offline environment - -Once all the previous steps provided within this document are completed and the OEK with offline archives is placed on the node which will run the OEK automation, the user should get familiar with the ["Running-playbooks"](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/controller-edge-node-setup.md#running-playbooks) and ["Preconditions"](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/controller-edge-node-setup.md#preconditions) sections of getting started guide and deploy the OpenNESS as per usual deployment steps. Please note only deployment of "flexran" flavour is supported for offline/air-gapped environment, other flavours/configurations and default deployment may fail due to missing dependencies, the support for ACC100 accelerator is not available for offline deployment of "flexran" flavour at the time of writing. Both multi-node and single node modes are supported. - -During the deployment of the offline version of the OEK the archived files created by the offline package creator will be extracted and placed in appropriate directory. The OEK will set up a local file share server on the control plane node and move the files to the said server. The OEK will also create a local yum repo. All the files and packages will be pulled from this file share server by nodes across the air-gapped OpenNESS cluster. During the execution of the OEK the Ansible scripts will follow the same logic as per the online mode with the difference that all the components will be pulled locally from the file share server instead of the internet. - -The following are the specific steps to enable offline/air-gaped deployment from OEK: - -Enable the offline deployment in [openness-experience-kits/inventory/default/group_vars/all/10-default.yml](https://github.com/otcshare/openness-experience-kits/blob/master/inventory/default/group_vars/all/10-default.yml) - -```yaml -## Offline Mode support -offline_enable: True -``` - -Make sure the time on offline nodes is synchronized. - -Make sure nodes can access each other through SSH without password. -Make sure cotrol-plane node can SSH itself. ie: - -```shell -# hostname -I - -# ssh-copy-id -``` - -Make sure the CPUs allocation in "flexran" flavor is configured as desired, [see configs in flavor directory](https://github.com/otcshare/openness-experience-kits/tree/master/flavors/flexran). - -Deploy OpenNESS using FlexRAN flavor for multi or single node: - -```shell -# ./deploy_ne.sh -f flexran -``` -OR -```shell -# ./deploy_ne.sh -f flexran single -``` From e916f984dcd95c0b6328a9b5b86129bd6f0300d0 Mon Sep 17 00:00:00 2001 From: Sebastian Wieczorek Date: Fri, 19 Mar 2021 11:53:01 +0100 Subject: [PATCH 36/89] CMK deprecation documentation --- .../openness-dedicated-core-cmk-deprecated.md | 141 +++++++++++++ .../openness-dedicated-core.md | 192 ++++++++++-------- openness_releasenotes.md | 2 + 3 files changed, 249 insertions(+), 86 deletions(-) create mode 100644 doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core-cmk-deprecated.md diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core-cmk-deprecated.md b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core-cmk-deprecated.md new file mode 100644 index 00000000..69172b6f --- /dev/null +++ b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core-cmk-deprecated.md @@ -0,0 +1,141 @@ +```text +SPDX-License-Identifier: Apache-2.0 +Copyright (c) 2019-2020 Intel Corporation +``` + +# Dedicated CPU core for workload support in OpenNESS +**CMK support was deprecated in Openess release 21.03 and replaced with Kubernetes native CPU Manager*** + +- [Overview](#overview) +- [Details - CPU Manager support in OpenNESS](#details---cpu-manager-support-in-openness) + - [Setup](#setup) + - [Usage](#usage) +- [Reference](#reference) + +## Overview +Multi-core, commercial, off-the-shelf platforms are typical in any cloud or cloud-native deployment. Running processes in parallel on multiple cores helps achieve a better density of processes per platform. On a multi-core platform, one challenge for applications and network functions that are latency and throughput dependent is deterministic compute. It is important to achieve deterministic compute that can allocate dedicated resources. Dedicated resource allocation avoids interference with other applications (noisy neighbor). When deploying on a cloud-native platform, applications are deployed as PODs. And providing required information to the container orchestrator on dedicated CPU cores is key. CPU manager allows provisioning of a POD to dedicated cores. + +![CPU Manager - CMK ](cmk-images/cmk1.png) + +_Figure - CPU Manager - CMK_ + +The following are typical usages of this feature. + +- Consider an edge application that uses an AI library such as OpenVINO™ for inference. This library uses a special instruction set on the CPU to get a higher performance for the AI algorithm. To achieve a deterministic inference rate, the application thread executing the algorithm needs a dedicated CPU core so that there is no interference from other threads or other application pods (noisy neighbor). + +![CPU Manager support on OpenNESS ](cmk-images/cmk2.png) + +_Figure - CPU Manager support on OpenNESS_ + +>**NOTE**: With Linux CPU isolation and CPU Manager for Kubernetes\* (CMK), a certain amount of isolation can be achieved but not all the kernel threads can be moved away. + +What is CMK? +The following section outlines some considerations for using CMK: + +- If the workload already uses a threading library (e.g., pthread) and uses set affinity like APIs, CMK may not be needed. For such workloads, to provide cores to use for deployment, Kubernetes ConfigMaps are the recommended methodology. ConfigMaps can be used to pass the CPU core mask to the application for use. +- The workload is a medium to long-lived process with interarrival times on the order of ones to tens of seconds or greater. +- After a workload has started executing, there is no need to dynamically update its CPU assignments. +- Machines running workloads explicitly isolated by CMK must be guarded against other workloads that do not consult the CMK toolchain. The recommended way to do this is for the operator to taint the node. The provided cluster-init sub-command automatically adds such a taint. +- CMK does not need to perform additional tuning to IRQ affinity, CFS settings, or process scheduling classes. +- The preferred mode of deploying additional infrastructure components is to run them in containers on top of Kubernetes. + +CMK accomplishes core isolation by controlling what logical CPUs each container may use for execution by wrapping target application commands with the CMK command-line program. The CMK wrapper program maintains state in a directory hierarchy on disk that describes pools from which user containers can acquire available CPU lists. These pools can be exclusive (only one container per CPU list) or non-exclusive (multiple containers can share a CPU list.) Each CPU list directory contains a task file that tracks process IDs of the container subcommand(s) that acquired the CPU list. When the child process exits, the CMK wrapper program clears its PID from the tasks file. If the wrapper program is killed before it can perform this cleanup step, a separate periodic reconciliation program detects this condition and cleans the tasks file accordingly. A file system lock guards against conflicting concurrent modifications. + +## Details - CPU Manager support in OpenNESS + +[CPU Manager for Kubernetes (CMK)](https://github.com/intel/CPU-Manager-for-Kubernetes) is a Kubernetes plugin that provides core affinity for applications deployed as Kubernetes pods. It is advised to use “isolcpus” for core isolation when using CMK (otherwise full isolation cannot be guaranteed). + +CMK is a command-line program that wraps target application to provide core isolation (an example pod with an application wrapped by CMK is given in [Usage](#usage-3) section). + +CMK documentation available on GitHub\* includes: + +- [operator manual](https://github.com/intel/CPU-Manager-for-Kubernetes/blob/master/docs/operator.md) +- [user manual](https://github.com/intel/CPU-Manager-for-Kubernetes/blob/master/docs/user.md) + +CMK can be deployed using a [Helm chart](https://helm.sh/). The CMK Helm chart used in OpenNESS deployment is available on the following GitHub repository: [container-experience-kits](https://github.com/intel/container-experience-kits/tree/master/roles/cmk-install). + +### Setup + +**Edge Controller / Kubernetes control plane** + +1. In `inventory/default/group_vars/all/10-default.yml`, change `ne_cmk_enable` to `true` and adjust the settings if needed. + CMK default settings are: + ```yaml + # CMK - Number of cores in exclusive pool + cmk_num_exclusive_cores: "4" + # CMK - Number of cores in shared pool + cmk_num_shared_cores: "1" + # CMK - Comma separated list of nodes' hostnames + cmk_host_list: "node01,node02" + ``` +2. Deploy the controller with `deploy_ne.sh -f controller`. + +**Edge Node / Kubernetes node** + +1. In `inventory/default/group_vars/all/10-open.yml`, change `ne_cmk_enable` to “true”. +2. To change core isolation set isolated cores in `inventory/default/group_vars/edgenode_group/10-default.yml` as `additional_grub_params` for your node e.g. in `inventory/default/group_vars/edgenode_group/10-default.yml`, set `additional_grub_params: "isolcpus=1-10,49-58"`. +3. Deploy the node with `deploy_ne.sh -f node`. + +The environment setup can be validated using steps from the [CMK operator manual](https://github.com/intel/CPU-Manager-for-Kubernetes/blob/master/docs/operator.md#validating-the-environment). + +**Note:** +Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/specs/blob/master/doc/flavors.md). + +### Usage + +The following example creates a `Pod` that can be used to deploy an application pinned to a core: + +1. `DEPLOYED-APP` in `args` should be changed to deployed application name (the same for labels and names) +2. `image` value `DEPLOYED-APP-IMG:latest` should be changed to valid application image available in Docker\* (if the image is to be downloaded, change `ImagePullPolicy` to `Always`): + +```bash +cat < + containers: + - args: + - "/opt/bin/cmk isolate --conf-dir=/etc/cmk --pool=exclusive DEPLOYED-APP" + command: + - "/bin/bash" + - "-c" + env: + - name: CMK_PROC_FS + value: "/host/proc" + image: DEPLOYED-APP-IMG:latest + imagePullPolicy: "Never" + name: cmk-DEPLOYED-APP + resources: + limits: + cmk.intel.com/exclusive-cores: 1 + requests: + cmk.intel.com/exclusive-cores: 1 + restartPolicy: Never +EOF +``` + +>**NOTE**: CMK requires modification of deployed pod manifest for all deployed pods: +> - nodeName: must be added under pod spec section before deploying application (to point node on which pod is to be deployed) +> +> alternatively, +> - toleration must be added to deployed pod under spec: +> +> ```yaml +> ... +> tolerations: +> +> - ... +> +> - effect: NoSchedule +> key: cmk +> operator: Exists +> ``` + +## Reference +- [CPU Manager Repo](https://github.com/intel/CPU-Manager-for-Kubernetes) +- More examples of Kubernetes manifests are available in the [CMK repository](https://github.com/intel/CPU-Manager-for-Kubernetes/tree/master/resources/pods) and [documentation](https://github.com/intel/CPU-Manager-for-Kubernetes/blob/master/docs/user.md). diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md index d758afc0..f1ec49e4 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md @@ -7,133 +7,153 @@ Copyright (c) 2019-2020 Intel Corporation - [Overview](#overview) - [Details - CPU Manager support in OpenNESS](#details---cpu-manager-support-in-openness) - [Setup](#setup) - - [Usage](#usage) -- [Reference](#reference) + - [CPU Manager QoS classes](#cpu-manager-qos-classes) + - [POD definitions](#pod-definitions) + - [Examples](#examples) ## Overview Multi-core, commercial, off-the-shelf platforms are typical in any cloud or cloud-native deployment. Running processes in parallel on multiple cores helps achieve a better density of processes per platform. On a multi-core platform, one challenge for applications and network functions that are latency and throughput dependent is deterministic compute. It is important to achieve deterministic compute that can allocate dedicated resources. Dedicated resource allocation avoids interference with other applications (noisy neighbor). When deploying on a cloud-native platform, applications are deployed as PODs. And providing required information to the container orchestrator on dedicated CPU cores is key. CPU manager allows provisioning of a POD to dedicated cores. -![CPU Manager - CMK ](cmk-images/cmk1.png) - -_Figure - CPU Manager - CMK_ +Openness release 21.03 deprecated Intel CMK in favour of Kubernetes native CPU Management. The following are typical usages of this feature. - Consider an edge application that uses an AI library such as OpenVINO™ for inference. This library uses a special instruction set on the CPU to get a higher performance for the AI algorithm. To achieve a deterministic inference rate, the application thread executing the algorithm needs a dedicated CPU core so that there is no interference from other threads or other application pods (noisy neighbor). -![CPU Manager support on OpenNESS ](cmk-images/cmk2.png) - -_Figure - CPU Manager support on OpenNESS_ - ->**NOTE**: With Linux CPU isolation and CPU Manager for Kubernetes\* (CMK), a certain amount of isolation can be achieved but not all the kernel threads can be moved away. -What is CMK? -The following section outlines some considerations for using CMK: +What is Kubernetes Native CPU management? -- If the workload already uses a threading library (e.g., pthread) and uses set affinity like APIs, CMK may not be needed. For such workloads, to provide cores to use for deployment, Kubernetes ConfigMaps are the recommended methodology. ConfigMaps can be used to pass the CPU core mask to the application for use. +- If the workload already uses a threading library (e.g., pthread) and uses set affinity like APIs, Kbernetes CPU Management may not be needed. For such workloads, to provide cores to use for deployment, Kubernetes ConfigMaps are the recommended methodology. ConfigMaps can be used to pass the CPU core mask to the application for use. However, Kubernetes CPU Management offers transparent and out of the box support for cpu management which does not need any additional configuration. Another issue is threading aware sowtware can interfere with Kubernetes when Kubernetes is configured to use CPU Manager. - The workload is a medium to long-lived process with interarrival times on the order of ones to tens of seconds or greater. - After a workload has started executing, there is no need to dynamically update its CPU assignments. -- Machines running workloads explicitly isolated by CMK must be guarded against other workloads that do not consult the CMK toolchain. The recommended way to do this is for the operator to taint the node. The provided cluster-init sub-command automatically adds such a taint. -- CMK does not need to perform additional tuning to IRQ affinity, CFS settings, or process scheduling classes. +- Kubernetes CPU management does not need to perform additional tuning to IRQ affinity, CFS settings, or process scheduling classes. - The preferred mode of deploying additional infrastructure components is to run them in containers on top of Kubernetes. -CMK accomplishes core isolation by controlling what logical CPUs each container may use for execution by wrapping target application commands with the CMK command-line program. The CMK wrapper program maintains state in a directory hierarchy on disk that describes pools from which user containers can acquire available CPU lists. These pools can be exclusive (only one container per CPU list) or non-exclusive (multiple containers can share a CPU list.) Each CPU list directory contains a task file that tracks process IDs of the container subcommand(s) that acquired the CPU list. When the child process exits, the CMK wrapper program clears its PID from the tasks file. If the wrapper program is killed before it can perform this cleanup step, a separate periodic reconciliation program detects this condition and cleans the tasks file accordingly. A file system lock guards against conflicting concurrent modifications. - -## Details - CPU Manager support in OpenNESS - -[CPU Manager for Kubernetes (CMK)](https://github.com/intel/CPU-Manager-for-Kubernetes) is a Kubernetes plugin that provides core affinity for applications deployed as Kubernetes pods. It is advised to use “isolcpus” for core isolation when using CMK (otherwise full isolation cannot be guaranteed). - -CMK is a command-line program that wraps target application to provide core isolation (an example pod with an application wrapped by CMK is given in [Usage](#usage-3) section). - -CMK documentation available on GitHub\* includes: +Default kubelet configuration uses [CFS quota](https://en.wikipedia.org/wiki/Completely_Fair_Scheduler) to manage PODs execution times and enforce imposed CPU limits. For such a solution it is possible that individual PODs are moved between different CPU because of changing circumistances on Kubernetes node. When cetrains PODs end its lifespan or CPU throttling comes in place then a POD can be moved to another CPU. -- [operator manual](https://github.com/intel/CPU-Manager-for-Kubernetes/blob/master/docs/operator.md) -- [user manual](https://github.com/intel/CPU-Manager-for-Kubernetes/blob/master/docs/user.md) +Another, default for Openness, solution supported by Kubernetes is CPU manager. CPU manager uses [Linux CPUSET](https://www.kernel.org/doc/Documentation/cgroup-v1/cpusets.txt) mechanism to schedule PODS to invividual CPUs. Kubernetes defines shared pool of CPUs which initially contains all the system CPUs without CPUs reverved for system and kubelet itself. CPU selection is configurable with kubelet options. Kubernetes uses shared CPU pool to schedule PODs with three QoS classes `BestEffort`, `Burstable` and `Guaranteed`. +When POD is qualified as `Guaranteed` QoS class then kubelet removes requested CPUs amount from shared pool and assigns the POD exclusively to the CPUs. -CMK can be deployed using a [Helm chart](https://helm.sh/). The CMK Helm chart used in OpenNESS deployment is available on the following GitHub repository: [container-experience-kits](https://github.com/intel/container-experience-kits/tree/master/roles/cmk-install). +## Details - CPU Manager support in OpenNESS ### Setup -**Edge Controller / Kubernetes control plane** +**Deployment setup** -1. In `inventory/default/group_vars/all/10-default.yml`, change `ne_cmk_enable` to `true` and adjust the settings if needed. - CMK default settings are: +1. Kubernetes CPU Management needs CPU Manager Policy to be set to `static` which is a default option in Openness. This can be examined in `inventory/default/group_vars/all/10-default.yml` file ```yaml - # CMK - Number of cores in exclusive pool - cmk_num_exclusive_cores: "4" - # CMK - Number of cores in shared pool - cmk_num_shared_cores: "1" - # CMK - Comma separated list of nodes' hostnames - cmk_host_list: "node01,node02" + # CPU policy - possible values: none (disabled), static (default) + policy: "static" ``` +2. Amount of CPUs reserved for Kubernetes and operating system is defined in `inventory/default/group_vars/all/10-default.yml` file + ```yaml + # Reserved CPUs for K8s and OS daemons - list of reserved CPUs + reserved_cpus: "0,1" ``` -2. Deploy the controller with `deploy_ne.sh -f controller`. +3. Deploy the controller with `deploy_ne.sh -f controller`. + +**Edge Controller / Kubernetes control plane** + +No setup needed. **Edge Node / Kubernetes node** -1. In `inventory/default/group_vars/all/10-open.yml`, change `ne_cmk_enable` to “true”. -2. To change core isolation set isolated cores in `inventory/default/group_vars/edgenode_group/10-default.yml` as `additional_grub_params` for your node e.g. in `inventory/default/group_vars/edgenode_group/10-default.yml`, set `additional_grub_params: "isolcpus=1-10,49-58"`. -3. Deploy the node with `deploy_ne.sh -f node`. +No setup needed. -The environment setup can be validated using steps from the [CMK operator manual](https://github.com/intel/CPU-Manager-for-Kubernetes/blob/master/docs/operator.md#validating-the-environment). +### CPU Manager QoS classes +Kubernetes CPU Manager deines three quality of service classes for PODs. +- Best effort + `Besteffort` QoS class is assigned to PODs which do not define any memory and CPU limits and requests. PODs from this QoC class run in the shared pool +- Burstable + `Bustrable` QoS class is assigned to PODS which define memory or CPU limits and requests which do not match. PODs from `Bustrable` QoS class run in the shared pool. +- Guaranteed + `Guaranteed` QosC class is assigned to PODs which define memory and CPU limits and requests and those two values are equal. The values set to CPU limits and request have to be integral, factional CPU specified caused the POD to be run on the shared pool. -**Note:** -Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/specs/blob/master/doc/flavors.md). +### POD definitions +POD defined without any constraints. This will ne assigned `BestEffort` QoS class and will run on shared poll. +```yaml +spec: + containers: + - name: nginx + image: nginx +``` -### Usage +POD defined with some constraints. This will be assigned `Bustrable` QoS class and will run on shared poll. +```yaml +spec: + containers: + - name: nginx + image: nginx + resources: + limits: + memory: "200Mi" + cpu: "2" + requests: + memory: "100Mi" + cpu: "1" +``` -The following example creates a `Pod` that can be used to deploy an application pinned to a core: +POD defined with constrains, limits are equal to requests and CPU is integral bigger than or equal to one. This will be assigned `Guaranteed` QoS classs and will run exclusively on CPUs assigned by Kubernetes. +```yaml +spec: + containers: + - name: nginx + image: nginx + resources: + limits: + memory: "200Mi" + cpu: "2" + requests: + memory: "200Mi" + cpu: "2" +``` -1. `DEPLOYED-APP` in `args` should be changed to deployed application name (the same for labels and names) -2. `image` value `DEPLOYED-APP-IMG:latest` should be changed to valid application image available in Docker\* (if the image is to be downloaded, change `ImagePullPolicy` to `Always`): +POD defined with constraints even when limits are equal to request but CPU is specified as a fractional number will not get explucive CPUs but will be run on the shared pool. Still, QoS class for such a pod is `Guaranteed` -```bash -cat < containers: - - args: - - "/opt/bin/cmk isolate --conf-dir=/etc/cmk --pool=exclusive DEPLOYED-APP" - command: - - "/bin/bash" - - "-c" - env: - - name: CMK_PROC_FS - value: "/host/proc" - image: DEPLOYED-APP-IMG:latest - imagePullPolicy: "Never" - name: cmk-DEPLOYED-APP + - name: nginx + image: nginx + imagePullPolicy: "IfNotPresent" resources: limits: - cmk.intel.com/exclusive-cores: 1 + cpu: 1 + memory: "200Mi" requests: - cmk.intel.com/exclusive-cores: 1 + cpu: 1 + memory: "200Mi" restartPolicy: Never -EOF + ``` + + + Scheduled POD is assigned `Guaranteed` quality of service class, this can be checked by issuing `kubectl describe pod/test-pod` + +Part of sample ouput is: + ```yaml + QoS Class: Guaranteed + ``` + +Invidual processes/threads processor affinity can be checked on the node where the pod was scheduled with `taskset` command. +Process started by a container with `Guaranteed` QoS class has set CPU affinity according to the POD definition. It runs exclusively on CPUs removed from shared poll. Other processes spawned from container starting process or PODs assigned to `BestEffort` and `Bustrable` QoS classed are scheduled to run on shared pool. This can be checked give example nginx container. + +```bash +[root@vm ~]# for p in `top -n 1 -b|grep nginx|gawk '{print $1}'`; do taskset -c -p $p; done +pid 5194's current affinity list: 0,1,3-7 +pid 5294's current affinity list: 0,1,3-7 +pid 7187's current affinity list: 0,1,3-7 +pid 7232's current affinity list: 0,1,3-7 +pid 17715's current affinity list: 2 +pid 17757's current affinity list: 2 ``` ->**NOTE**: CMK requires modification of deployed pod manifest for all deployed pods: -> - nodeName: must be added under pod spec section before deploying application (to point node on which pod is to be deployed) -> -> alternatively, -> - toleration must be added to deployed pod under spec: -> -> ```yaml -> ... -> tolerations: -> -> - ... -> -> - effect: NoSchedule -> key: cmk -> operator: Exists -> ``` - -## Reference -- [CPU Manager Repo](https://github.com/intel/CPU-Manager-for-Kubernetes) -- More examples of Kubernetes manifests are available in the [CMK repository](https://github.com/intel/CPU-Manager-for-Kubernetes/tree/master/resources/pods) and [documentation](https://github.com/intel/CPU-Manager-for-Kubernetes/blob/master/docs/user.md). + diff --git a/openness_releasenotes.md b/openness_releasenotes.md index 754b8e40..253c5546 100644 --- a/openness_releasenotes.md +++ b/openness_releasenotes.md @@ -13,6 +13,7 @@ This document provides high-level system features, issues, and limitations infor - [OpenNESS - 20.06](#openness---2006) - [OpenNESS - 20.09](#openness---2009) - [OpenNESS - 20.12](#openness---2012) + - [OpenNESS - 21.03](#openness---2103) - [Changes to Existing Features](#changes-to-existing-features) - [OpenNESS - 19.06](#openness---1906-1) - [OpenNESS - 19.06.01](#openness---190601) @@ -268,6 +269,7 @@ This document provides high-level system features, issues, and limitations infor ## OpenNESS - 21.03 - Major system Upgrades: CentOS 7.9, Kubernetes 1.20.0, Calico 3.17 and Docker 20.10.2. - Set Calico as a default cni for cdn-transcode, central_orchestrator and minimal flavor. +- Intel CMK support deprecated in favour of Kubernetes native CPU Manaher # Changes to Existing Features From 271244681508992cb97cd2fdf85e07eb36181f6e Mon Sep 17 00:00:00 2001 From: Sebastian Wieczorek Date: Fri, 19 Mar 2021 13:09:08 +0100 Subject: [PATCH 37/89] typos fixed thanks to review --- .../openness-dedicated-core.md | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md index f1ec49e4..1c0ac44c 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md @@ -5,6 +5,7 @@ Copyright (c) 2019-2020 Intel Corporation # Dedicated CPU core for workload support in OpenNESS - [Overview](#overview) + - [What is Kubernetes Native CPU management?](#what-is-kubernetes-native-cpu-management) - [Details - CPU Manager support in OpenNESS](#details---cpu-manager-support-in-openness) - [Setup](#setup) - [CPU Manager QoS classes](#cpu-manager-qos-classes) @@ -21,9 +22,9 @@ The following are typical usages of this feature. - Consider an edge application that uses an AI library such as OpenVINO™ for inference. This library uses a special instruction set on the CPU to get a higher performance for the AI algorithm. To achieve a deterministic inference rate, the application thread executing the algorithm needs a dedicated CPU core so that there is no interference from other threads or other application pods (noisy neighbor). -What is Kubernetes Native CPU management? +### What is Kubernetes Native CPU management? -- If the workload already uses a threading library (e.g., pthread) and uses set affinity like APIs, Kbernetes CPU Management may not be needed. For such workloads, to provide cores to use for deployment, Kubernetes ConfigMaps are the recommended methodology. ConfigMaps can be used to pass the CPU core mask to the application for use. However, Kubernetes CPU Management offers transparent and out of the box support for cpu management which does not need any additional configuration. Another issue is threading aware sowtware can interfere with Kubernetes when Kubernetes is configured to use CPU Manager. +- If the workload already uses a threading library (e.g., pthread) and uses set affinity like APIs, Kbernetes CPU Management may not be needed. For such workloads, to provide cores to use for deployment, Kubernetes ConfigMaps are the recommended methodology. ConfigMaps can be used to pass the CPU core mask to the application for use. However, Kubernetes CPU Management offers transparent and out of the box support for cpu management which does not need any additional configuration. The only issue is threading aware software can interfere with Kubernetes when Kubernetes is configured to use CPU Manager. - The workload is a medium to long-lived process with interarrival times on the order of ones to tens of seconds or greater. - After a workload has started executing, there is no need to dynamically update its CPU assignments. - Kubernetes CPU management does not need to perform additional tuning to IRQ affinity, CFS settings, or process scheduling classes. @@ -40,11 +41,11 @@ When POD is qualified as `Guaranteed` QoS class then kubelet removes requested C **Deployment setup** -1. Kubernetes CPU Management needs CPU Manager Policy to be set to `static` which is a default option in Openness. This can be examined in `inventory/default/group_vars/all/10-default.yml` file +1. Kubernetes CPU Management needs CPU Manager Policy to be set to `static` which is a default option in Openness. This can be examined in `inventory/default/group_vars/all/10-default.yml` file. ```yaml # CPU policy - possible values: none (disabled), static (default) policy: "static" ``` -2. Amount of CPUs reserved for Kubernetes and operating system is defined in `inventory/default/group_vars/all/10-default.yml` file +2. Amount of CPUs reserved for Kubernetes and operating system is defined in `inventory/default/group_vars/all/10-default.yml` file. ```yaml # Reserved CPUs for K8s and OS daemons - list of reserved CPUs reserved_cpus: "0,1" @@ -60,13 +61,13 @@ No setup needed. No setup needed. ### CPU Manager QoS classes -Kubernetes CPU Manager deines three quality of service classes for PODs. +Kubernetes CPU Manager defines three quality of service classes for PODs. - Best effort - `Besteffort` QoS class is assigned to PODs which do not define any memory and CPU limits and requests. PODs from this QoC class run in the shared pool + `BestEffort` QoS class is assigned to PODs which do not define any memory and CPU limits and requests. PODs from this QoC class run in the shared pool - Burstable `Bustrable` QoS class is assigned to PODS which define memory or CPU limits and requests which do not match. PODs from `Bustrable` QoS class run in the shared pool. - Guaranteed - `Guaranteed` QosC class is assigned to PODs which define memory and CPU limits and requests and those two values are equal. The values set to CPU limits and request have to be integral, factional CPU specified caused the POD to be run on the shared pool. + `Guaranteed` QoS class is assigned to PODs which define memory and CPU limits and requests and those two values are equal. The values set to CPU limits and request have to be integral, factional CPU specified caused the POD to be run on the shared pool. ### POD definitions POD defined without any constraints. This will ne assigned `BestEffort` QoS class and will run on shared poll. @@ -92,7 +93,7 @@ spec: cpu: "1" ``` -POD defined with constrains, limits are equal to requests and CPU is integral bigger than or equal to one. This will be assigned `Guaranteed` QoS classs and will run exclusively on CPUs assigned by Kubernetes. +POD defined with constraints, limits are equal to requests and CPU is integral bigger than or equal to one. This will be assigned `Guaranteed` QoS classs and will run exclusively on CPUs assigned by Kubernetes. ```yaml spec: containers: @@ -107,7 +108,7 @@ spec: cpu: "2" ``` -POD defined with constraints even when limits are equal to request but CPU is specified as a fractional number will not get explucive CPUs but will be run on the shared pool. Still, QoS class for such a pod is `Guaranteed` +POD defined with constraints even when limits are equal to request but CPU is specified as a fractional number will not get exclusive CPUs but will be run on the shared pool. Still, QoS class for such a pod is `Guaranteed`. ### Examples @@ -136,7 +137,7 @@ spec: ``` - Scheduled POD is assigned `Guaranteed` quality of service class, this can be checked by issuing `kubectl describe pod/test-pod` + Scheduled POD is assigned `Guaranteed` quality of service class, this can be examined by issuing `kubectl describe pod/test-pod`. Part of sample ouput is: ```yaml @@ -144,7 +145,7 @@ Part of sample ouput is: ``` Invidual processes/threads processor affinity can be checked on the node where the pod was scheduled with `taskset` command. -Process started by a container with `Guaranteed` QoS class has set CPU affinity according to the POD definition. It runs exclusively on CPUs removed from shared poll. Other processes spawned from container starting process or PODs assigned to `BestEffort` and `Bustrable` QoS classed are scheduled to run on shared pool. This can be checked give example nginx container. +Process started by a container with `Guaranteed` QoS class has set CPU affinity according to the POD definition. It runs exclusively on CPUs removed from shared poll. Other processes spawned from container starting process or PODs assigned to `BestEffort` and `Bustrable` QoS classed are scheduled to run on shared pool. This can be examined with example nginx container. ```bash [root@vm ~]# for p in `top -n 1 -b|grep nginx|gawk '{print $1}'`; do taskset -c -p $p; done From 1a4feee756093a1820e9c19b0f96678768ac5c19 Mon Sep 17 00:00:00 2001 From: Sebastian Wieczorek Date: Fri, 19 Mar 2021 14:14:54 +0100 Subject: [PATCH 38/89] Bad docs corrected --- .../enhanced-platform-awareness/openness-dedicated-core.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md index 1c0ac44c..6305c558 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md @@ -145,7 +145,7 @@ Part of sample ouput is: ``` Invidual processes/threads processor affinity can be checked on the node where the pod was scheduled with `taskset` command. -Process started by a container with `Guaranteed` QoS class has set CPU affinity according to the POD definition. It runs exclusively on CPUs removed from shared poll. Other processes spawned from container starting process or PODs assigned to `BestEffort` and `Bustrable` QoS classed are scheduled to run on shared pool. This can be examined with example nginx container. +Process started by a container with `Guaranteed` POD QoS class has set CPU affinity according to the POD definition. It runs exclusively on CPUs removed from shared pool. All processes spawned from POD assigned to `Guaranteed` QoS class are scheduled to run on the same exclusive CPU. Processes from `Burstable` and `BestEffort` QoS classes PODs are scheduled to run on shared pool CPUs. This can be examined with example nginx container. ```bash [root@vm ~]# for p in `top -n 1 -b|grep nginx|gawk '{print $1}'`; do taskset -c -p $p; done From dd0940ea98f5051049f26104937e8a9c5e3c1faf Mon Sep 17 00:00:00 2001 From: Amr Mokhtar Date: Fri, 19 Mar 2021 19:15:38 +0000 Subject: [PATCH 39/89] Add QAT doc --- _data/navbars/building-blocks.yml | 5 + .../openness-qat.md | 137 ++++++++++++++++++ 2 files changed, 142 insertions(+) create mode 100644 doc/building-blocks/enhanced-platform-awareness/openness-qat.md diff --git a/_data/navbars/building-blocks.yml b/_data/navbars/building-blocks.yml index 2bb56cfd..24f98dc9 100644 --- a/_data/navbars/building-blocks.yml +++ b/_data/navbars/building-blocks.yml @@ -71,6 +71,11 @@ section: meta_title: Visual Compute Accelerator Card - Analytics (VCAC-A) meta_description: The Visual Cloud Accelerator Card - Analytics (VCAC-A) equips Intel® Xeon® Scalable Processor based platforms and Intel Movidius™ VPU to enhance the video codec, computer vision, and inference capabilities. + - title: Intel® QuickAssist Adapter + path: /doc/building-blocks/enhanced-platform-awareness/openness-qat.md + meta_title: Using Intel® QuickAssist Adapter in OpenNESS - Resource Allocation, and Configuration + meta_description: Intel® QuickAssist Adapter plays a key role in accelerating cryptographic operations in 5G networking. + - title: Topology Manager Support path: /doc/building-blocks/enhanced-platform-awareness/openness-topology-manager meta_title: Topology Manager Support in OpenNESS, Resource Locality Awareness diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-qat.md b/doc/building-blocks/enhanced-platform-awareness/openness-qat.md new file mode 100644 index 00000000..4be7ba1d --- /dev/null +++ b/doc/building-blocks/enhanced-platform-awareness/openness-qat.md @@ -0,0 +1,137 @@ +```text +SPDX-License-Identifier: Apache-2.0 +Copyright (c) 2020 Intel Corporation +``` + +# Using Intel® QuickAssist Adapter in OpenNESS: Resource Allocation, and Configuration +- [Overview](#overview) +- [Intel® QuickAssist Adapter FlexRAN Host Interface Overview](#intel%c2%ae-quickassist-adapter-flexran-host-interface-overview) +- [Intel® QuickAssist Adapter Device Plugin Deployment with Kubernetes\* for FlexRAN](#intel%c2%ae-quickassist-adapter-device-plugin-deployment-with-kubernetes-for-flexran) +- [Using the Intel® QuickAssist Adapter on OpenNESS](#using-the-intel%c2%ae-quickassist-adapter-on-openness) + - [Intel® QuickAssist Adapter for OpenNESS Network Edge](#intel%c2%ae-quickassist-adapter-for-openness-network-edge) + - [Requesting Resources and Running Pods for OpenNESS Network Edge](#requesting-resources-and-running-pods-for-openness-network-edge) +- [Reference](#reference) + +## Overview + +Intel® QuickAssist Adapter plays a key role in accelerating cryptographic operations in 5G networking. + +Intel® QuickAssist Adapter provides the following features: + +- Symmetric (Bulk) Cryptography: + - Ciphers (AES, 3DES/DES, RC4, KASUMI, ZUC, Snow 3G) + - Message digset/hash (MD5, SHA1, SHA2, SHA3) and authentcation (HMAC, AES-XCBC) + - Algorithm chaining (one cipher and one hash in a sigle operation) + - Authenticated encription (AES-GCM, AES-CCM) +- Asymmetric (Public Key) Cryptography: + - Modular exponentation for Diffie-Hellman (DH) + - RSA key generation, encryption/decryption and digital signature generation/verification + - DSA parameter generation and digital signature generation/verification + - Elliptic Curve Cryptography: ECDSA, ECDHE, Curve25519 + +Intel® QuickAssist Adapter benefits include: +- Reduced platform power, E2E latency and Intel® CPU core count requirements +- Accelerates wireless data encryption and authentication +- Accommodates space-constrained implementations via a low-profile PCIe* card form factor + +For more information, see product brief in [Intel® QuickAssist Adapter](https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/quickassist-adapter-8960-8970-brief.pdf). + + + +## Intel® QuickAssist Adapter FlexRAN Host Interface Overview +Intel® QuickAssist Adapter used in the FlexRAN solution exposes the following Physical Functions (PF) to the CPU host: +- Three interfaces, that can provide 16 Virtual Functions each + +## Using the Intel® QuickAssist Adapter on OpenNESS +Further sections provide instructions on how to use the Intel® QuickAssist Adapter features: configuration and accessing from an application on the OpenNESS Network Edge. + +When the Intel® QuickAssist Adapter is available on the Edge Node platform it exposes three Root I/O Virtualization (SRIOV) Physical Functions (PF) devices which can be used to create Virtual Functions. To take advantage of this functionality for a cloud-native deployment, the PF (Physical Function) of the device must be bound to the DPDK IGB_UIO userspace driver to create several VFs (Virtual Functions). Once the VFs are created, they must also be bound to a DPDK userspace driver to allocate them to specific K8s pods running the vRAN workload. + +The full pipeline of preparing the device for workload deployment and deploying the workload can be divided into the following stages: + +- Enabling SRIOV, binding devices to appropriate drivers, and the creation of VFs: delivered as part of the Edge Nodes Ansible automation. +- QAT Device Plugin deployment. +- Queue configuration of QAT's PFs/VFs. +- Binding QAT's PFs/VFs to igb_uio driver. + +### Intel® QuickAssist Adapter for OpenNESS Network Edge +To deploy an OpenNESS edge cluster with Intel® QuickAssist Adapter Device Plugin, its Ansible role needs to be enabled on the Edge Controller and Edge Nodes that has QAT card plugged in. It can be deployed by setting the following variable: + +```yaml +qat_device_plugin_enable: true +``` + +To enable Intel® QuickAssist Adapter Device Plugin support from OEK, SRIOV must be enabled in OpenNESS: +```yaml +kubernetes_cnis: +-
+- sriov +``` + +It's enabled by default in the `cera_5g_on_prem` flavor: + +After a successful deployment, the following pods will be available in the cluster: +```shell +kubectl get pods -n kube-system + +NAME READY STATUS RESTARTS AGE +intel-qat-plugin-dl42c 1/1 Running 0 7d9h +``` + +### Requesting Resources and Running Pods for OpenNESS Network Edge +As part of the OpenNESS Ansible automation, a K8s SRIOV device plugin to orchestrate the Intel® QuickAssist Adapter VFs (bound to the userspace driver) is running. This enables the scheduling of pods requesting this device. To check the number of devices available on the Edge Node from Edge Controller, run: + +```shell +kubectl get node $(hostname) -o json | jq '.status.allocatable' + +"qat.intel.com/generic": "48" +``` + +To request the device as a resource in the pod, add the request for the resource into the pod specification file by specifying its name and the amount of resources required. If the resource is not available or the amount of resources requested is greater than the number of resources available, the pod status will be “Pending” until the resource is available. + +A sample pod requesting the Intel® QuickAssist Adapter VF may look like this: + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: test + labels: + env: test +spec: + containers: + - name: test + image: centos:latest + command: [ "/bin/bash", "-c", "--" ] + args: [ "while true; do sleep 300000; done;" ] + resources: + requests: + qat.intel.com/generic: 1 + limits: + qat.intel.com/generic: 1 +``` + +To test the resource allocation to the pod, save the above code snippet to the `sample.yaml` file and create the pod. +``` +kubectl create -f sample.yaml +``` +Once the pod is in the 'Running' state, check that the device was allocated to the pod (a uioX device and an environmental variable with a device PCI address should be available): +``` +kubectl exec -it test -- ls /dev +kubectl exec -it test -- printenv | grep QAT +``` +To check the number of devices currently allocated to pods, run (and search for 'Allocated Resources'): + +``` +kubectl describe node $(hostname) +``` + +## Reference +- [Intel® QuickAssist Adapter](https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/quickassist-adapter-8960-8970-brief.pdf) \ No newline at end of file From 7f92c06b3962c1dfdd2bb22ed52abda66fec421d Mon Sep 17 00:00:00 2001 From: Amr Mokhtar Date: Fri, 19 Mar 2021 22:28:45 +0000 Subject: [PATCH 40/89] Update doc for new CEEK --- .../controller-edge-node-setup.md | 249 ++++++++++++------ 1 file changed, 173 insertions(+), 76 deletions(-) diff --git a/doc/getting-started/network-edge/controller-edge-node-setup.md b/doc/getting-started/network-edge/controller-edge-node-setup.md index ccfb27f8..fb8c4d55 100644 --- a/doc/getting-started/network-edge/controller-edge-node-setup.md +++ b/doc/getting-started/network-edge/controller-edge-node-setup.md @@ -11,7 +11,7 @@ Copyright (c) 2019-2021 Intel Corporation - [Running playbooks](#running-playbooks) - [Deployment scripts](#deployment-scripts) - [Network Edge playbooks](#network-edge-playbooks) - - [Cleanup playbooks](#cleanup-playbooks) + - [Cleanup procedure](#cleanup-procedure) - [Supported EPA features](#supported-epa-features) - [VM support for Network Edge](#vm-support-for-network-edge) - [Application on-boarding](#application-on-boarding) @@ -35,7 +35,7 @@ Copyright (c) 2019-2021 Intel Corporation - [Q&A](#qa) - [Configuring time](#configuring-time) - [Setup static hostname](#setup-static-hostname) - - [Configuring inventory](#configuring-inventory) + - [Configuring the Inventory file](#configuring-the-inventory-file) - [Exchanging SSH keys between hosts](#exchanging-ssh-keys-between-hosts) - [Setting proxy](#setting-proxy) - [Obtaining installation files](#obtaining-installation-files) @@ -49,20 +49,24 @@ The following set of actions must be completed to set up the Open Network Edge S 1. Fulfill the [Preconditions](#preconditions). 2. Become familiar with [supported features](#supported-epa-features) and enable them if desired. -3. Run the [deployment helper script](#running-playbooks) for the Ansible\* playbook: +3. Clone [Converged Edge Experience Kits](https://github.com/otcshare/converged-edge-experience-kits) +4. Install deployment helper script pre-requisites (first time only) + + ```shell + $ sudo scripts/ansible-precheck.sh + ``` - ```shell - ./deploy_ne.sh -f - ``` +5. Run the [deployment helper script](#running-playbooks) for the Ansible\* playbook: -**Note:** -Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/specs/blob/master/doc/flavors.md). + ```shell + $ python3 deploy.py + ``` # Preconditions To use the playbooks, several preconditions must be fulfilled. These preconditions are described in the [Q&A](#qa) section below. The preconditions are: -- CentOS\* 7.9.2009 must be installed on hosts where the product is deployed. It is highly recommended to install the operating system using a minimal ISO image on nodes that will take part in deployment (obtained from inventory file). Also, do not make customizations after a fresh manual install because it might interfere with Ansible scripts and give unpredictable results during deployment. +- CentOS\* 7.9.2009 must be installed on all the nodes (the controller and edge nodes) where the product is deployed. It is highly recommended to install the operating system using a minimal ISO image on nodes that will take part in deployment (obtained from inventory file). Also, do not make customizations after a fresh manual install because it might interfere with Ansible scripts and give unpredictable results during deployment. - Hosts for the Edge Controller (Kubernetes control plane) and Edge Nodes (Kubernetes nodes) must have proper and unique hostnames (i.e., not `localhost`). This hostname must be specified in `/etc/hosts` (refer to [Setup static hostname](#setup-static-hostname)). @@ -78,41 +82,100 @@ To use the playbooks, several preconditions must be fulfilled. These preconditio # Running playbooks -The Network Edge deployment and cleanup is carried out via Ansible playbooks. The playbooks are run from the Ansible host (it might be the same machine as the Edge Controller). Before running the playbooks, an inventory file `inventory/default/inventory.ini` must be configured. +The Network Edge deployment and cleanup is carried out via Ansible playbooks. The playbooks are run from the Ansible host. Before running the playbooks, an inventory file `inventory.yml` must be defined. The provided [deployment helper script](#running-playbooks) supports deploying multiple clusters as defined in the Inventory file. -The following subsections describe the playbooks in more detail. +The following subsections describe the playbooks in more details. ## Deployment scripts For convenience, playbooks can be executed by running helper deployment scripts from the Ansible host. These scripts require that the Edge Controller and Edge Nodes be configured on different hosts (for deployment on a single node, refer to [Single-node Network Edge cluster](#single-node-network-edge-cluster)). This is done by configuring the Ansible playbook inventory, as described later in this document. -The command syntax for the scripts is: `action_mode.sh -f [group]`, i.e., - - - `deploy_ne.sh -f [ controller | nodes ]` - - `cleanup_ne.sh -f [ controller | nodes ] ` - -The parameter `controller` or `nodes` in each case deploys or cleans up the Edge Controller or the Edge Nodes, respectively. +To get started with deploying an OpenNESS edge cluster using the Converged Edge Experience Kit: -**Note:** -Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/specs/blob/master/doc/flavors.md). +1. Install pre-requisite tools for the the deployment script + + ```shell + $ sudo scripts/ansible-precheck.sh + ``` + +2. Edit the `inventory.yml` file by providing information about the cluster nodes and the intended deployment flavor + + Example: + + ```yaml + --- + all: + vars: + cluster_name: 5g_near_edge # NOTE: Use `_` instead of spaces. + flavor: cera_5g_near_edge # NOTE: Flavors can be found in `flavors` directory. + single_node_deployment: false # Request single node deployment (true/false). + limit: # Limit ansible deployment to certain inventory group or hosts + controller_group: + hosts: + ctrl.openness.org: + ansible_host: 10.102.227.154 + ansible_user: openness + edgenode_group: + hosts: + node01.openness.org: + ansible_host: 10.102.227.11 + ansible_user: openness + node02.openness.org: + ansible_host: 10.102.227.79 + ansible_user: openness + edgenode_vca_group: + hosts: + ptp_master: + hosts: + ptp_slave_group: + hosts: + ``` + + > **NOTE**: To deploy multiple clusters in one command run, append the same set of YAML specs separated by `---` + +3. Additional configurations should be applied to the default group_vars file: `inventory/default/group_vars/all/10-default.yml`. More details on the default values is explained in the [Getting Started Guide](../openness-experience-kits.md#default-values). + +4. Get the deployment started by executing the deploy script + + ```shell + $ sudo python3 deploy.py + ``` + > **NOTE**: This script parses the values provided in the inventory.yml file. + > **NOTE**: If want to enforce deployment termination in case of any failure, use arguments `-f` or `--any-errors-fatal`, e.g.: + > ```shell + > $ sudo python3 deploy.py --any-errors-fatal + > ``` + +5. To cleanup an existing deployment, execute with `-c` or `--clean`, e.g: + + ```shell + $ sudo python3 deploy.py --clean + ``` + > **NOTE**: If it is intended to do the cleanup manually, i.e: one cluster at a time, update the `inventory.yml` with only the intended cluster configuration For an initial installation, `deploy_ne.sh controller` must be run before `deploy_ne.sh nodes`. During the initial installation, the hosts may reboot. After reboot, the deployment script that was last run should be run again. -The `cleanup_ne.sh` script is used when a configuration error in the Edge Controller or Edge Nodes must be fixed. The script causes the appropriate installation to be reverted, so that the error can be fixed and `deploy_ne.sh` rerun. `cleanup_ne.sh` does not do a comprehensive cleanup (e.g., installation of DPDK or Golang will not be rolled back). ## Network Edge playbooks The `network_edge.yml` and `network_edge_cleanup.yml` files contain playbooks for Network Edge mode. Playbooks can be customized by enabling and configuring features in the `inventory/default/group_vars/all/10-default.yml` file. -### Cleanup playbooks +### Cleanup procedure + +The cleanup procedure is used when a configuration error in the Edge Controller or Edge Nodes must be fixed. The script causes the appropriate installation to be reverted, so that the error can be fixed and `deploy.py` can be re-run. The cleanup procedure does not do a comprehensive cleanup (e.g., installation of DPDK or Golang will not be rolled back). -The role of the cleanup playbook is to revert changes made by deploy playbooks. -Changes are reverted by going step-by-step in reverse order and undoing the steps. +The cleanup procedure call a set of cleanup roles that revert the changes resulted from the cluster deployment. The changes are reverted by going step-by-step in the reverse order and undoing the steps. For example, when installing Docker\*, the RPM repository is added and Docker is installed. When cleaning up, Docker is uninstalled and the repository is removed. ->**NOTE**: There may be leftovers created by the installed software. For example, DPDK and Golang installations, found in `/opt`, are not rolled back. +To execute cleanup procedure + +```shell +$ python3 deploy.py --clean +``` + +> **NOTE**: There may be leftovers created by the installed software. For example, DPDK and Golang installations, found in `/opt`, are not rolled back. ### Supported EPA features @@ -127,35 +190,54 @@ Refer to the [network-edge-applications-onboarding](https://github.com/otcshare/ ### Single-node Network Edge cluster -Network Edge can be deployed on just a single machine working as a control plane & node.
-To deploy Network Edge in a single-node cluster scenario, follow the steps below: -1. Modify `inventory/default/inventory.ini`
- > Rules for inventory: - > - IP address (`ansible_host`) for both controller and node must be the same - > - `edgenode_group` and `controller_group` groups must contain exactly one host - - Example of a valid inventory: - ```ini - [all] - controller ansible_ssh_user=root ansible_host=192.168.0.11 - node01 ansible_ssh_user=root ansible_host=192.168.0.11 +Network Edge can be deployed on just a single machine working as a control plane & node. - [controller_group] - controller +To deploy Network Edge in a single-node cluster scenario, follow the steps below: - [edgenode_group] - node01 +1. Modify `inventory.yml` + > Rules for inventory: + > - IP address (`ansible_host`) for both controller and node must be the same + > - `controller_group` and `edgenode_group` groups must contain exactly one host + > - `single_node_deployment` flag set to `true` + + Example of a valid inventory: + + ```yaml + --- + all: + vars: + cluster_name: 5g_central_office # NOTE: Use `_` instead of spaces. + flavor: cera_5g_central_office # NOTE: Flavors can be found in `flavors` directory. + single_node_deployment: true # Request single node deployment (true/false). + limit: # Limit ansible deployment to certain inventory group or hosts + controller_group: + hosts: + node.openness.org: + ansible_host: 10.102.227.234 + ansible_user: openness + edgenode_group: + hosts: + node.openness.org: + ansible_host: 10.102.227.234 + ansible_user: openness + edgenode_vca_group: + hosts: + ptp_master: + hosts: + ptp_slave_group: + hosts: + ``` - [edgenode_vca_group] - ``` 2. Features can be enabled in the `inventory/default/group_vars/all/10-default.yml` file by tweaking the configuration variables. + 3. Settings regarding the kernel, grub, HugePages\*, and tuned can be customized in `inventory/default/group_vars/edgenode_group/10-default.yml`. - > Default settings in the single-node cluster mode are those of the Edge Node (i.e., kernel and tuned customization enabled). -4. Single-node cluster can be deployed by running command: `./deploy_ne.sh -f single` + > **NOTE**: Default settings in the single-node cluster mode are those of the Edge Node (i.e., kernel and tuned customization enabled). -**Note:** -Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/specs/blob/master/doc/flavors.md). +4. Single-node cluster can be deployed by running command: + ```shell + $ sudo python3 deploy.py + ``` ## Harbor registry @@ -168,18 +250,18 @@ Harbor registry is an open source cloud native registry which can support images * If huge pages enabled, need 1G(hugepage size 1G) or 300M(hugepage size 2M) to be reserved for Harbor usage. #### Ansible Playbooks -Ansible "harbor_registry" roles created on openness-experience-kits. For deploying a Harbor registry on Kubernetes, control plane roles are enabled on the openness-experience-kits "network_edge.yml" file. +Ansible `harbor_registry` roles created in Converged Edge Experience Kits. For deploying a Harbor registry on Kubernetes, control plane roles are enabled in the main `network_edge.yml` playbook file. - ```ini - role: harbor_registry/controlplane - role: harbor_registry/node - ``` +```ini +role: harbor_registry/controlplane +role: harbor_registry/node +``` The following steps are processed by openness-experience-kits during the Harbor registry installation on the OpenNESS control plane node. * Download Harbor Helm Charts on the Kubernetes Control plane Node. * Check whether huge pages is enabled and templates values.yaml file accordingly. -* Create namespace and disk PV for Harbor Services (The defaut disk PV/PVC total size is 20G. The values can be configurable in the ```roles/harbor_registry/controlplane/defaults/main.yaml```). +* Create namespace and disk PV for Harbor Services (The default disk PV/PVC total size is 20G. The values can be configurable in the `roles/kubernetes/harbor_registry/controlplane/defaults/main.yaml`). * Install Harbor on the control plane node using the Helm Charts (The CA crt will be generated by Harbor itself). * Create the new project - ```intel``` for OpenNESS microservices, Kurbernetes enhanced add-on images storage. * Docker login the Harbor Registry, thus enable pulling, pushing and tag images with the Harbor Registry @@ -479,38 +561,53 @@ As shown in the following example, the hostname must also be defined in `/etc/ho In addition to being a unique hostname within the cluster, the hostname must also follow Kubernetes naming conventions. For example, only lower-case alphanumeric characters "-" or "." start and end with an alphanumeric character. Refer to [K8s naming restrictions](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names) for additional details on these conventions. -## Configuring inventory +## Configuring the Inventory file -To execute playbooks, `inventory/default/inventory.ini` must be configured to specify the hosts on which the playbooks are executed. +To execute playbooks, an inventory file `inventory.yml` must be defined in order to specify the target nodes on which the OpenNESS cluster(s) will be deployed. The OpenNESS inventory contains three groups: `all`, `controller_group`, and `edgenode_group`. -- `all` contains all the hosts (with configuration) used in any playbook. -- `controller_group` contains host to be set up as a Kubernetes control plane / OpenNESS Edge Controller \ ->**NOTE**: Because only one controller is supported, the `controller_group` can contain only one host.** -- `edgenode_group` contains hosts to be set up as a Kubernetes nodes / OpenNESS Edge Nodes. \ ->**NOTE**: All nodes will be joined to the control plane specified in `controller_group`. +- `all` contains all the variable definitions relevant to the cluster: + > `cluster_name`: defines the name of the OpenNESS edge cluster + > `flavor`: the deployment flavor to be deployed to the OpenNESS edge cluster + > `single_node_deployment`: when set to `true`, mandates a single-node cluster deployment +- `controller_group` defines the node to be set up as the OpenNESS Edge Controller + > **NOTE**: Because only one controller is supported, the `controller_group` can contain only one host. +- `edgenode_group` defines the group of nodes that constitute the OpenNESS Edge Nodes. + > **NOTE**: All nodes will be joined to the OpenNESS Edge Controller defined in `controller_group`. -In the `all` group, users can specify all of the hosts for usage in other groups. -For example, the `all` group looks like: +Example: -```ini -[all] -ctrl ansible_ssh_user=root ansible_host= -node1 ansible_ssh_user=root ansible_host= -node2 ansible_ssh_user=root ansible_host= +```yaml +--- +all: + vars: + cluster_name: 5g_near_edge # NOTE: Use `_` instead of spaces. + flavor: cera_5g_near_edge # NOTE: Flavors can be found in `flavors` directory. + single_node_deployment: false # Request single node deployment (true/false). + limit: # Limit ansible deployment to certain inventory group or hosts +controller_group: + hosts: + ctrl.openness.org: + ansible_host: 10.102.227.154 + ansible_user: openness +edgenode_group: + hosts: + node01.openness.org: + ansible_host: 10.102.227.11 + ansible_user: openness + node02.openness.org: + ansible_host: 10.102.227.79 + ansible_user: openness +edgenode_vca_group: + hosts: +ptp_master: + hosts: +ptp_slave_group: + hosts: ``` -The user can then use the specified hosts in `edgenode_group` and `controller_group`. That is, - -```ini -[edgenode_group] -node1 -node2 - -[controller_group] -ctrl -``` +In this example, a cluster named as `5g_near_edge` is deployed using the pre-defined deployment flavor `cera_5g_near_edge` that is composed of one controller node `ctrl.openness.org` and 2 edge nodes: `node01.openness.org` and `node02.openness.org`. ## Exchanging SSH keys between hosts From 812f234758328b8fc74e9f5144fe4146ce368bc7 Mon Sep 17 00:00:00 2001 From: lukaszXlesiecki <67093702+lukaszXlesiecki@users.noreply.github.com> Date: Mon, 22 Mar 2021 09:22:28 +0100 Subject: [PATCH 41/89] Update openness-qat.md --- .../openness-qat.md | 36 +++++++++---------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-qat.md b/doc/building-blocks/enhanced-platform-awareness/openness-qat.md index 4be7ba1d..f086a06a 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-qat.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-qat.md @@ -2,13 +2,13 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) 2020 Intel Corporation ``` - + # Using Intel® QuickAssist Adapter in OpenNESS: Resource Allocation, and Configuration - [Overview](#overview) -- [Intel® QuickAssist Adapter FlexRAN Host Interface Overview](#intel%c2%ae-quickassist-adapter-flexran-host-interface-overview) -- [Intel® QuickAssist Adapter Device Plugin Deployment with Kubernetes\* for FlexRAN](#intel%c2%ae-quickassist-adapter-device-plugin-deployment-with-kubernetes-for-flexran) -- [Using the Intel® QuickAssist Adapter on OpenNESS](#using-the-intel%c2%ae-quickassist-adapter-on-openness) - - [Intel® QuickAssist Adapter for OpenNESS Network Edge](#intel%c2%ae-quickassist-adapter-for-openness-network-edge) +- [Intel® QuickAssist Adapter FlexRAN Host Interface Overview](#Intel®-QuickAssist-Adapter-CU/DU-Host-Interface-Overview) +- [Using the Intel® QuickAssist Adapter on OpenNESS](#using-the-intel®-quicksssist-adapter-on-OpenNESS) + - [Intel® QuickAssist Adapter Ansible Installation for OpenNESS Network Edge](#intel®-quickassist-adapter-for-openness-network-edge) + - [OpenNESS Experience Kit](#openness-experience-kit) - [Requesting Resources and Running Pods for OpenNESS Network Edge](#requesting-resources-and-running-pods-for-openness-network-edge) - [Reference](#reference) @@ -36,19 +36,15 @@ Intel® QuickAssist Adapter benefits include: For more information, see product brief in [Intel® QuickAssist Adapter](https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/quickassist-adapter-8960-8970-brief.pdf). - +## Intel® QuickAssist Adapter CU/DU Host Interface Overview +Intel® QuickAssist Adapter used in the CU/DU solution exposes the following Physical Functions (PF) to the CPU host: +- Three interfaces, that can provide 16 Virtual Functions each. + +## Intel® QuickAssist Adapter Device Plugin Deployment with Kubernetes\* for CU/DU +CU/DU aplications use the qat.intel.com/generic resources from the Intel® QuickAssist Adapter using POD resource allocation and the Kubernetes\* device plugin framework. Kubernetes* provides a device plugin framework that is used to advertise system hardware resources to the Kubelet. Instead of customizing the code for Kubernetes* (K8s) itself, vendors can implement a device plugin that can be deployed either manually or as a DaemonSet. The targeted devices include GPUs, high-performance NICs, FPGAs, InfiniBand\* adapters, and other similar computing resources that may require vendor-specific initialization and setup. -## Intel® QuickAssist Adapter FlexRAN Host Interface Overview -Intel® QuickAssist Adapter used in the FlexRAN solution exposes the following Physical Functions (PF) to the CPU host: -- Three interfaces, that can provide 16 Virtual Functions each - ## Using the Intel® QuickAssist Adapter on OpenNESS Further sections provide instructions on how to use the Intel® QuickAssist Adapter features: configuration and accessing from an application on the OpenNESS Network Edge. @@ -62,12 +58,12 @@ The full pipeline of preparing the device for workload deployment and deploying - Binding QAT's PFs/VFs to igb_uio driver. ### Intel® QuickAssist Adapter for OpenNESS Network Edge -To deploy an OpenNESS edge cluster with Intel® QuickAssist Adapter Device Plugin, its Ansible role needs to be enabled on the Edge Controller and Edge Nodes that has QAT card plugged in. It can be deployed by setting the following variable: - +To run the OpenNESS package with Intel® QuickAssist Adapter Device Plugin functionality, the feature needs to be enabled on both Edge Controller and Edge Node. It can be deployed by setting the following variable: ```yaml qat_device_plugin_enable: true ``` +#### OpenNESS Experience Kit To enable Intel® QuickAssist Adapter Device Plugin support from OEK, SRIOV must be enabled in OpenNESS: ```yaml kubernetes_cnis: @@ -98,7 +94,7 @@ To request the device as a resource in the pod, add the request for the resource A sample pod requesting the Intel® QuickAssist Adapter VF may look like this: -```yaml +``` apiVersion: v1 kind: Pod metadata: @@ -134,4 +130,4 @@ kubectl describe node $(hostname) ``` ## Reference -- [Intel® QuickAssist Adapter](https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/quickassist-adapter-8960-8970-brief.pdf) \ No newline at end of file +- [Intel® QuickAssist Adapter](https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/quickassist-adapter-8960-8970-brief.pdf) From 82ac058f107c8f5c0cad0c69ac876a0bcebf4c9d Mon Sep 17 00:00:00 2001 From: lukaszXlesiecki <67093702+lukaszXlesiecki@users.noreply.github.com> Date: Mon, 22 Mar 2021 09:25:20 +0100 Subject: [PATCH 42/89] Enable syntax highlight --- doc/building-blocks/enhanced-platform-awareness/openness-qat.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-qat.md b/doc/building-blocks/enhanced-platform-awareness/openness-qat.md index f086a06a..dc11e09a 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-qat.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-qat.md @@ -94,7 +94,7 @@ To request the device as a resource in the pod, add the request for the resource A sample pod requesting the Intel® QuickAssist Adapter VF may look like this: -``` +```yaml apiVersion: v1 kind: Pod metadata: From 173f15fe66b0248eaf37b91f319734e31c6515c6 Mon Sep 17 00:00:00 2001 From: konradja <48330825+konradja@users.noreply.github.com> Date: Mon, 22 Mar 2021 12:01:37 +0000 Subject: [PATCH 43/89] OP-6943 - RMD doc clarification regarding the minimal flavor. (#420) --- doc/building-blocks/enhanced-platform-awareness/openness-rmd.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-rmd.md b/doc/building-blocks/enhanced-platform-awareness/openness-rmd.md index 80a42bc8..a0b40463 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-rmd.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-rmd.md @@ -56,7 +56,7 @@ This feature is for the OpenNESS Network Edge deployment mode. Enable the RMD feature in *inventory/default/group_vars/all/10-default.yml* when installing OpenNESS (Under the Network Edge section): > rmd_operator_enable: True > -This will install the underlying infrastructure. +This will install the underlying infrastructure. Please note you need to use the FlexRAN flavor for RMD to work. Next, use the following shell function to determine which cores are used by your container: ```bash #!/bin/sh From c0ee3742df926505d924f79439b47d1339262d8c Mon Sep 17 00:00:00 2001 From: Amr Mokhtar Date: Mon, 22 Mar 2021 12:30:07 +0000 Subject: [PATCH 44/89] update other refs --- README.md | 1 + .../network-edge/supported-epa.md | 16 ++++++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index e157f52c..18c70044 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,7 @@ Below is the complete list of OpenNESS solution documentation * [openness-sriov-multiple-interfaces.md: Dedicated Physical Network interface allocation support for Edge Applications and Network Functions](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md) * [openness-dedicated-core.md: Dedicated CPU core allocation support for Edge Applications and Network Functions](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md) * [openness-bios.md: Edge platform BIOS and Firmware and configuration support in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-bios.md) + * [openness-qat.md: Resource allocation & configuration of Intel® QuickAssist Adapter](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-qat.md) * [openness-fpga.md: Dedicated FPGA IP resource allocation support for Edge Applications and Network Functions](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md) * [openness_hddl.md: Using Intel® Movidius™ Myriad™ X High Density Deep Learning (HDDL) solution in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness_hddl.md) * [openness-topology-manager.md: Resource Locality awareness support through Topology manager in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-topology-manager.md) diff --git a/doc/getting-started/network-edge/supported-epa.md b/doc/getting-started/network-edge/supported-epa.md index a96492e0..5e0a5672 100644 --- a/doc/getting-started/network-edge/supported-epa.md +++ b/doc/getting-started/network-edge/supported-epa.md @@ -12,11 +12,11 @@ Enhanced Platform Awareness (EPA) features are supported in on-premises using Ku ## Features The following EPA features are supported in Open Network Edge Services Software (OpenNESS) Network Edge: - * [openness-hugepage.md: Hugepages support for edge applications and network functions](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-hugepage.md) - * [openness-node-feature-discovery.md: Edge node hardware and software feature discovery support in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-node-feature-discovery.md) - * [openness-sriov-multiple-interfaces.md: Dedicated physical network interface allocation support for edge applications and network functions](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md) - * [openness-dedicated-core.md: Dedicated CPU core allocation support for edge applications and network functions](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-dedicated-core.md) - * [openness-bios.md: Edge platform BIOS and firmware and configuration support in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-bios.md) - * [openness-fpga.md: Dedicated FPGA IP resource allocation support for edge applications and network functions](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-fpga.md) - * [openness-topology-manager.md: Resource locality awareness support through topology manager in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-topology-manager.md) - +* [**openness-hugepage.md**: Hugepages support for edge applications and network functions](../../building-blocks/enhanced-platform-awareness/openness-hugepage.md) +* [**openness-node-feature-discovery.md**: Edge node hardware and software feature discovery support in OpenNESS](../../building-blocks/enhanced-platform-awareness/openness-node-feature-discovery.md) +* [**openness-sriov-multiple-interfaces.md**: Dedicated physical network interface allocation support for edge applications and network functions](../../building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md) +* [**openness-dedicated-core.md**: Dedicated CPU core allocation support for edge applications and network functions](../../building-blocks/enhanced-platform-awareness/openness-dedicated-core.md) +* [**openness-bios.md**: Edge platform BIOS and firmware and configuration support in OpenNESS](../../building-blocks/enhanced-platform-awareness/openness-bios.md) +* [**openness-qat.md**: Resource allocation & configuration of Intel® QuickAssist Adapter](../../building-blocks/enhanced-platform-awareness/openness-qat.md) +* [**openness-fpga.md**: Dedicated FPGA IP resource allocation support for edge applications and network functions](../../building-blocks/enhanced-platform-awareness/openness-fpga.md) +* [**openness-topology-manager.md**: Resource locality awareness support through topology manager in OpenNESS](../../building-blocks/enhanced-platform-awareness/openness-topology-manager.md) From 1fff13523e223dad1a25b0b382e87113f40e7a94 Mon Sep 17 00:00:00 2001 From: nikbas-0 <77962492+nikbas-0@users.noreply.github.com> Date: Mon, 22 Mar 2021 14:51:34 +0000 Subject: [PATCH 45/89] Changed x-specs to specs --- doc/building-blocks/dataplane/openness-interapp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/building-blocks/dataplane/openness-interapp.md b/doc/building-blocks/dataplane/openness-interapp.md index 188a7f03..fd41a407 100644 --- a/doc/building-blocks/dataplane/openness-interapp.md +++ b/doc/building-blocks/dataplane/openness-interapp.md @@ -15,7 +15,7 @@ Multi-core edge cloud platforms typically host multiple containers or virtual ma ## InterApp Communication support in OpenNESS Network Edge -InterApp communication on the OpenNESS Network Edge is supported using Open Virtual Network for Open vSwitch [OVN/OVS](https://github.com/otcshare/x-specs/blob/master/doc/building-blocks/dataplane/openness-ovn.md) as the infrastructure. OVN/OVS in the network edge is supported through the Kubernetes kube-OVN Container Network Interface (CNI). +InterApp communication on the OpenNESS Network Edge is supported using Open Virtual Network for Open vSwitch [OVN/OVS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/dataplane/openness-ovn.md) as the infrastructure. OVN/OVS in the network edge is supported through the Kubernetes kube-OVN Container Network Interface (CNI). >**NOTE**: The InterApps Communication also works with Calico cni. Calico is supported as a default cni in Openness from 21.03 release. From 579166cfc1ec02226c88d42b7861ecde93b4fc9a Mon Sep 17 00:00:00 2001 From: Amr Mokhtar Date: Mon, 22 Mar 2021 15:23:42 +0000 Subject: [PATCH 46/89] Update docs --- .../openness-qat.md | 21 ++++++++++--------- .../network-edge/supported-epa.md | 5 +++++ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-qat.md b/doc/building-blocks/enhanced-platform-awareness/openness-qat.md index dc11e09a..df52966c 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-qat.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-qat.md @@ -2,13 +2,14 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) 2020 Intel Corporation ``` - + # Using Intel® QuickAssist Adapter in OpenNESS: Resource Allocation, and Configuration - [Overview](#overview) -- [Intel® QuickAssist Adapter FlexRAN Host Interface Overview](#Intel®-QuickAssist-Adapter-CU/DU-Host-Interface-Overview) -- [Using the Intel® QuickAssist Adapter on OpenNESS](#using-the-intel®-quicksssist-adapter-on-OpenNESS) - - [Intel® QuickAssist Adapter Ansible Installation for OpenNESS Network Edge](#intel®-quickassist-adapter-for-openness-network-edge) - - [OpenNESS Experience Kit](#openness-experience-kit) +- [Intel® QuickAssist Adapter CU/DU Host Interface Overview](#intel%c2%ae-quickassist-adapter-cudu-host-interface-overview) +- [Intel® QuickAssist Adapter Device Plugin Deployment with Kubernetes\* for CU/DU](#intel%c2%ae-quickassist-adapter-device-plugin-deployment-with-kubernetes-for-cudu) +- [Using the Intel® QuickAssist Adapter on OpenNESS](#using-the-intel%c2%ae-quickassist-adapter-on-openness) + - [Intel® QuickAssist Adapter for OpenNESS Network Edge](#intel%c2%ae-quickassist-adapter-for-openness-network-edge) + - [Converged Edge Experience Kits (CEEK)](#converged-edge-experience-kits-ceek) - [Requesting Resources and Running Pods for OpenNESS Network Edge](#requesting-resources-and-running-pods-for-openness-network-edge) - [Reference](#reference) @@ -36,14 +37,14 @@ Intel® QuickAssist Adapter benefits include: For more information, see product brief in [Intel® QuickAssist Adapter](https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/quickassist-adapter-8960-8970-brief.pdf). -This document explains how the qat.intel.com/generic resource can be used on the Open Network Edge Services Software (OpenNESS) platform for accelerating network functions and edge application workloads. We use the Intel® QuickAssist Adapter to accelerate the LTE/5G encryption tasks in the CU/DU. +This document explains how the Intel® QuickAssist (QAT) device plugin is enabled and used on the Open Network Edge Services Software (OpenNESS) platform for accelerating network functions and edge application workloads. The Intel® QuickAssist Adapter is used to accelerate the LTE/5G encryption tasks in the CU/DU. ## Intel® QuickAssist Adapter CU/DU Host Interface Overview Intel® QuickAssist Adapter used in the CU/DU solution exposes the following Physical Functions (PF) to the CPU host: - Three interfaces, that can provide 16 Virtual Functions each. ## Intel® QuickAssist Adapter Device Plugin Deployment with Kubernetes\* for CU/DU -CU/DU aplications use the qat.intel.com/generic resources from the Intel® QuickAssist Adapter using POD resource allocation and the Kubernetes\* device plugin framework. Kubernetes* provides a device plugin framework that is used to advertise system hardware resources to the Kubelet. Instead of customizing the code for Kubernetes* (K8s) itself, vendors can implement a device plugin that can be deployed either manually or as a DaemonSet. The targeted devices include GPUs, high-performance NICs, FPGAs, InfiniBand\* adapters, and other similar computing resources that may require vendor-specific initialization and setup. +CU/DU applications use the `qat.intel.com/generic` resources from the Intel® QuickAssist Adapter using POD resource allocation and the Kubernetes\* device plugin framework. Kubernetes* provides a device plugin framework that is used to advertise system hardware resources to the Kubelet. Instead of customizing the code for Kubernetes* (K8s) itself, vendors can implement a device plugin that can be deployed either manually or as a DaemonSet. The targeted devices include GPUs, high-performance NICs, FPGAs, InfiniBand\* adapters, and other similar computing resources that may require vendor-specific initialization and setup. ## Using the Intel® QuickAssist Adapter on OpenNESS Further sections provide instructions on how to use the Intel® QuickAssist Adapter features: configuration and accessing from an application on the OpenNESS Network Edge. @@ -58,13 +59,13 @@ The full pipeline of preparing the device for workload deployment and deploying - Binding QAT's PFs/VFs to igb_uio driver. ### Intel® QuickAssist Adapter for OpenNESS Network Edge -To run the OpenNESS package with Intel® QuickAssist Adapter Device Plugin functionality, the feature needs to be enabled on both Edge Controller and Edge Node. It can be deployed by setting the following variable: +To run the OpenNESS package with Intel® QuickAssist Adapter Device Plugin functionality, the feature needs to be enabled on both Edge Controller and Edge Node. It can be deployed by setting the following variable in the Converged Edge Experience Kits: ```yaml qat_device_plugin_enable: true ``` -#### OpenNESS Experience Kit -To enable Intel® QuickAssist Adapter Device Plugin support from OEK, SRIOV must be enabled in OpenNESS: +#### Converged Edge Experience Kits (CEEK) +To enable Intel® QuickAssist Adapter Device Plugin support from CEEK, SRIOV must be enabled in OpenNESS: ```yaml kubernetes_cnis: -
diff --git a/doc/getting-started/network-edge/supported-epa.md b/doc/getting-started/network-edge/supported-epa.md index 5e0a5672..26647ad3 100644 --- a/doc/getting-started/network-edge/supported-epa.md +++ b/doc/getting-started/network-edge/supported-epa.md @@ -20,3 +20,8 @@ The following EPA features are supported in Open Network Edge Services Software * [**openness-qat.md**: Resource allocation & configuration of Intel® QuickAssist Adapter](../../building-blocks/enhanced-platform-awareness/openness-qat.md) * [**openness-fpga.md**: Dedicated FPGA IP resource allocation support for edge applications and network functions](../../building-blocks/enhanced-platform-awareness/openness-fpga.md) * [**openness-topology-manager.md**: Resource locality awareness support through topology manager in OpenNESS](../../building-blocks/enhanced-platform-awareness/openness-topology-manager.md) +* [**openness_hddl.md**: Intel® Movidius™ Myriad™ X High Density Deep Learning (HDDL) solution](../../building-blocks/enhanced-platform-awareness/openness_hddl.md) +* [**openness-telemetry.md**: Telemetry Support in OpenNESS](../../building-blocks/enhanced-platform-awareness/openness-telemetry.md) +* [**openness-acc100.md**: Resource allocation & configuration of Intel® vRAN Dedicated Accelerator ACC100](../../building-blocks/enhanced-platform-awareness/openness-acc100.md) +* [**openness-rmd.md**: Cache Allocation for Containers with Resource Management Daemon (RMD)](../../building-blocks/enhanced-platform-awareness/openness-rmd.md) +* [**openness-vcac-a.md**: Visual Compute Accelerator Card - Analytics (VCAC-A)](../../building-blocks/enhanced-platform-awareness/openness-vcac-a.md) From 8185990f06a061afbae186826e553224c4e17c40 Mon Sep 17 00:00:00 2001 From: Amr Mokhtar Date: Mon, 22 Mar 2021 15:27:58 +0000 Subject: [PATCH 47/89] fixed toc --- .../enhanced-platform-awareness/openness-qat.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-qat.md b/doc/building-blocks/enhanced-platform-awareness/openness-qat.md index df52966c..f60571f7 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-qat.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-qat.md @@ -5,10 +5,10 @@ Copyright (c) 2020 Intel Corporation # Using Intel® QuickAssist Adapter in OpenNESS: Resource Allocation, and Configuration - [Overview](#overview) -- [Intel® QuickAssist Adapter CU/DU Host Interface Overview](#intel%c2%ae-quickassist-adapter-cudu-host-interface-overview) -- [Intel® QuickAssist Adapter Device Plugin Deployment with Kubernetes\* for CU/DU](#intel%c2%ae-quickassist-adapter-device-plugin-deployment-with-kubernetes-for-cudu) -- [Using the Intel® QuickAssist Adapter on OpenNESS](#using-the-intel%c2%ae-quickassist-adapter-on-openness) - - [Intel® QuickAssist Adapter for OpenNESS Network Edge](#intel%c2%ae-quickassist-adapter-for-openness-network-edge) +- [Intel QuickAssist Adapter CU/DU Host Interface Overview](#intel-quickassist-adapter-cudu-host-interface-overview) +- [Intel QuickAssist Adapter Device Plugin Deployment with Kubernetes\* for CU/DU](#intel-quickassist-adapter-device-plugin-deployment-with-kubernetes-for-cudu) +- [Using the Intel QuickAssist Adapter on OpenNESS](#using-the-intel-quickassist-adapter-on-openness) + - [Intel QuickAssist Adapter for OpenNESS Network Edge](#intel-quickassist-adapter-for-openness-network-edge) - [Converged Edge Experience Kits (CEEK)](#converged-edge-experience-kits-ceek) - [Requesting Resources and Running Pods for OpenNESS Network Edge](#requesting-resources-and-running-pods-for-openness-network-edge) - [Reference](#reference) @@ -39,14 +39,14 @@ For more information, see product brief in [Intel® QuickAssist Adapter](https:/ This document explains how the Intel® QuickAssist (QAT) device plugin is enabled and used on the Open Network Edge Services Software (OpenNESS) platform for accelerating network functions and edge application workloads. The Intel® QuickAssist Adapter is used to accelerate the LTE/5G encryption tasks in the CU/DU. -## Intel® QuickAssist Adapter CU/DU Host Interface Overview +## Intel QuickAssist Adapter CU/DU Host Interface Overview Intel® QuickAssist Adapter used in the CU/DU solution exposes the following Physical Functions (PF) to the CPU host: - Three interfaces, that can provide 16 Virtual Functions each. -## Intel® QuickAssist Adapter Device Plugin Deployment with Kubernetes\* for CU/DU +## Intel QuickAssist Adapter Device Plugin Deployment with Kubernetes\* for CU/DU CU/DU applications use the `qat.intel.com/generic` resources from the Intel® QuickAssist Adapter using POD resource allocation and the Kubernetes\* device plugin framework. Kubernetes* provides a device plugin framework that is used to advertise system hardware resources to the Kubelet. Instead of customizing the code for Kubernetes* (K8s) itself, vendors can implement a device plugin that can be deployed either manually or as a DaemonSet. The targeted devices include GPUs, high-performance NICs, FPGAs, InfiniBand\* adapters, and other similar computing resources that may require vendor-specific initialization and setup. -## Using the Intel® QuickAssist Adapter on OpenNESS +## Using the Intel QuickAssist Adapter on OpenNESS Further sections provide instructions on how to use the Intel® QuickAssist Adapter features: configuration and accessing from an application on the OpenNESS Network Edge. When the Intel® QuickAssist Adapter is available on the Edge Node platform it exposes three Root I/O Virtualization (SRIOV) Physical Functions (PF) devices which can be used to create Virtual Functions. To take advantage of this functionality for a cloud-native deployment, the PF (Physical Function) of the device must be bound to the DPDK IGB_UIO userspace driver to create several VFs (Virtual Functions). Once the VFs are created, they must also be bound to a DPDK userspace driver to allocate them to specific K8s pods running the vRAN workload. @@ -58,7 +58,7 @@ The full pipeline of preparing the device for workload deployment and deploying - Queue configuration of QAT's PFs/VFs. - Binding QAT's PFs/VFs to igb_uio driver. -### Intel® QuickAssist Adapter for OpenNESS Network Edge +### Intel QuickAssist Adapter for OpenNESS Network Edge To run the OpenNESS package with Intel® QuickAssist Adapter Device Plugin functionality, the feature needs to be enabled on both Edge Controller and Edge Node. It can be deployed by setting the following variable in the Converged Edge Experience Kits: ```yaml qat_device_plugin_enable: true From 1439e993410ea6a807a40f4b626f7d788216a3dc Mon Sep 17 00:00:00 2001 From: Amr Mokhtar Date: Mon, 22 Mar 2021 23:39:48 +0000 Subject: [PATCH 48/89] update doc --- README.md | 2 +- .../using-openness-cnca.md | 2 +- doc/building-blocks/emco/openness-emco.md | 2 +- doc/flavors.md | 197 ++++++++++------ ...s.md => converged-edge-experience-kits.md} | 218 ++++++++++++++++-- .../controller-edge-node-setup.md | 63 +++-- .../ran/openness_ran.md | 2 +- .../ran/openness_xran.md | 2 +- 8 files changed, 356 insertions(+), 132 deletions(-) rename doc/getting-started/{openness-experience-kits.md => converged-edge-experience-kits.md} (55%) diff --git a/README.md b/README.md index e157f52c..2ca72cf3 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Below is the complete list of OpenNESS solution documentation ## Getting Started - Setup * [getting-started: Folder containing how to get started with installing and trying OpenNESS Network Edge solutions](https://github.com/otcshare/specs/blob/master/doc/getting-started) - * [openness-experience-kits.md: Overview of the OpenNESS Experience kits that are used to install the Network Edge solutions](https://github.com/otcshare/specs/blob/master/doc/getting-started/openness-experience-kits.md) + * [converged-edge-experience-kits.md: Overview of the OpenNESS Experience kits that are used to install the Network Edge solutions](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md) * [network-edge: Folder containing how to get started with installing and trying OpenNESS Network Edge](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge) * [controller-edge-node-setup.md: Started here for installing and trying OpenNESS Network Edge](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/controller-edge-node-setup.md) * [supported-epa.md: List of Silicon and Software EPA that are features that are supported in OpenNESS Network Edge](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/supported-epa.md) diff --git a/doc/applications-onboard/using-openness-cnca.md b/doc/applications-onboard/using-openness-cnca.md index cd55b9c9..d8696d39 100644 --- a/doc/applications-onboard/using-openness-cnca.md +++ b/doc/applications-onboard/using-openness-cnca.md @@ -40,7 +40,7 @@ Available management with `kube-cnca` against LTE CUPS OAM agent are: 2. Deletion of LTE CUPS userplanes 3. Updating (patching) LTE CUPS userplanes -The `kube-cnca` plugin is installed automatically on the control plane during the installation phase of the [OpenNESS Experience Kit](https://github.com/otcshare/specs/blob/master/doc/getting-started/openness-experience-kits.md). +The `kube-cnca` plugin is installed automatically on the control plane during the installation phase of the [OpenNESS Experience Kit](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md). In the following sections, a detailed explanation with examples is provided about the CNCA management. Creation of the LTE CUPS userplane is performed based on the configuration provided by the given YAML file. The YAML configuration should follow the provided sample YAML in [Sample YAML LTE CUPS userplane configuration](#sample-yaml-lte-cups-userplane-configuration) section. Use the `apply` command to post a userplane creation request onto Application Function (AF): diff --git a/doc/building-blocks/emco/openness-emco.md b/doc/building-blocks/emco/openness-emco.md index b59d0af7..01db5488 100644 --- a/doc/building-blocks/emco/openness-emco.md +++ b/doc/building-blocks/emco/openness-emco.md @@ -301,7 +301,7 @@ Steps for EMCO Authentication and Authorization Setup: - Apply Authentication and Authorization Policies ### EMCO Installation With OpenNESS Flavor -EMCO supports [multiple deployment options](https://github.com/otcshare/EMCO/tree/main/deployments). [OpenNESS Experience Kit](https://github.com/otcshare/specs/blob/master/doc/getting-started/openness-experience-kits.md) offers the `central_orchestrator` flavor to automate EMCO build and deployment as mentioned below. +EMCO supports [multiple deployment options](https://github.com/otcshare/EMCO/tree/main/deployments). [OpenNESS Experience Kit](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md) offers the `central_orchestrator` flavor to automate EMCO build and deployment as mentioned below. - The first step is to prepare one server environment which needs to fulfill the [preconditions](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/controller-edge-node-setup.md#preconditions). - Then place the EMCO server hostname in `[controller_group]` group in `inventory/default/inventory.ini` file of openness-experience-kit. > **NOTE**: `[edgenode_group]` and `[edgenode_vca_group]` are not required for configuration, since EMCO micro services just need to be deployed on the Kubernetes* control plane node. diff --git a/doc/flavors.md b/doc/flavors.md index de913c13..87870202 100644 --- a/doc/flavors.md +++ b/doc/flavors.md @@ -4,7 +4,8 @@ Copyright (c) 2020 Intel Corporation ``` # OpenNESS Deployment Flavors -This document introduces the supported deployment flavors that are deployable through the OpenNESS Experience Kits (OEK). +This document introduces the supported deployment flavors that are deployable through the Converged Edge Experience Kits (CEEK). + - [CERA Minimal Flavor](#cera-minimal-flavor) - [CERA Access Edge Flavor](#cera-access-edge-flavor) - [CERA Media Analytics Flavor](#cera-media-analytics-flavor) @@ -23,64 +24,59 @@ This document introduces the supported deployment flavors that are deployable th The pre-defined *minimal* deployment flavor provisions the minimal set of configurations for bringing up the OpenNESS network edge deployment. -Steps to install this flavor are as follows: -1. Configure OEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). -2. Run OEK deployment script: +The following are steps to install this flavor: +1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). +2. Update the `inventory.yaml` file by setting the deployment flavor as `minimal` + ```yaml + --- + all: + vars: + cluster_name: minimal_cluster + flavor: minimal + ... + ``` +3. Run CEEK deployment script: ```shell - $ deploy_ne.sh -f minimal + $ sudo python3 deploy.py ``` This deployment flavor enables the following ingredients: -* Node Feature Discovery +* Node feature discovery * The default Kubernetes CNI: `calico` * Telemetry -To customize this flavor we recommend creating additional file in openness-experience-kits that will override any variables used in previous configuration. This file should be placed in location: `openness-experience-kits/inventory/default/group_vars/all` and filenames should start with number greater than highest value currently present (e.g. `40-overrides.yml`). +To customize this flavor we recommend creating additional file in converged-edge-experience-kits that will override any variables used in previous configuration. This file should be placed in location: `converged-edge-experience-kits/inventory/default/group_vars/all` and filenames should start with number greater than highest value currently present (e.g. `40-overrides.yml`). ## CERA Access Edge Flavor -The pre-defined *flexran* deployment flavor provisions an optimized system configuration for vRAN workloads on Intel Xeon servers. It also provisions for deployment of PACN3000 FPGA tools and components enabling the offload of acceleration of FEC (Forward Error Correction) to the FPGA. - -Steps to install this flavor are as follows: -1. Configure OEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). -2. Configure the flavor file to reflect desired deployment. - - Configure the CPUs selected for isolation and OS/K8s processes from command line in files [controller_group.yml](https://github.com/otcshare/openness-experience-kits/blob/master/flavors/flexran/controller_group.yml) and [edgenode_group.yml](https://github.com/otcshare/openness-experience-kits/blob/master/flavors/flexran/edgenode_group.yml) - please note that in single node mode the edgenode_group.yml is used to configure the CPU isolation. - - Configure the amount of CPUs reserved for K8s and OS from K8s level with `reserved_cpu` flag in [all.yml](https://github.com/otcshare/openness-experience-kits/blob/master/flavors/flexran/all.yml) file. - - Configure whether the FPGA or eASIC support for FEC is desired or both in [all.yml](https://github.com/otcshare/openness-experience-kits/blob/master/flavors/flexran/all.yml) file. - -3. Run OEK deployment script: - ```shell - $ deploy_ne.sh -f flexran - ``` -This deployment flavor enables the following ingredients: -* Node Feature Discovery -* SRIOV device plugin with FPGA configuration -* Calico CNI -* Telemetry -* FPGA remote system update through OPAE -* FPGA configuration -* eASIC ACC100 configuration -* RT Kernel -* Tapology Manager -* RMD operator +Available in Intel Distribution of OpenNESS ## CERA Media Analytics Flavor -The pre-defined *media-analytics* deployment flavor provisions an optimized system configuration for media analytics workloads on Intel Xeon servers. It also provisions a set of video analytics services based on the [Video Analytics Serving](https://github.com/intel/video-analytics-serving) for analytics pipeline management and execution. - -Steps to install this flavor are as follows: -1. Configure OEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). -2. Run OEK deployment script: +The pre-defined *media-analytics* deployment flavor provisions an optimized system configuration for media analytics workloads on Intel� Xeon� platforms. It also provisions a set of video analytics services based on the [Video Analytics Serving](https://github.com/intel/video-analytics-serving) for analytics pipeline management and execution. + +The following are steps to install this flavor: +1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). +2. Update the `inventory.yaml` file by setting the deployment flavor as `media-analytics` + ```yaml + --- + all: + vars: + cluster_name: media_analytics_cluster + flavor: media-analytics + ... + ``` +3. Run CEEK deployment script: ```shell - $ deploy_ne.sh -f media-analytics + $ sudo python3 deploy.py ``` > **NOTE:** The video analytics services integrates with the OpenNESS service mesh when the flag `ne_istio_enable: true` is set. > **NOTE:** Kiali management console username can be changed by editing the variable `istio_kiali_username`. By default `istio_kiali_password` is randomly generated and can be retirieved by running `kubectl get secrets/kiali -n istio-system -o json | jq -r '.data.passphrase' | base64 -d` on the Kubernetes controller. This deployment flavor enables the following ingredients: -* Node Feature Discovery +* Node feature discovery * The default Kubernetes CNI: `calico` * Video analytics services * Telemetry @@ -89,28 +85,41 @@ This deployment flavor enables the following ingredients: ## CERA Media Analytics Flavor with VCAC-A -The pre-defined *media-analytics-vca* deployment flavor provisions an optimized system configuration for media analytics workloads leveraging VCAC-A acceleration. It also provisions a set of video analytics services based on the [Video Analytics Serving](https://github.com/intel/video-analytics-serving) for analytics pipeline management and execution. - -Steps to install this flavor are as follows: -1. Configure OEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). -2. Add the VCA host name in the `[edgenode_vca_group]` group in `inventory/default/inventory.ini` file of the OEK, e.g: +The pre-defined *media-analytics-vca* deployment flavor provisions an optimized system configuration for media analytics workloads leveraging Visual Cloud Accelerator Card � Analytics (VCAC-A) acceleration. It also provisions a set of video analytics services based on the [Video Analytics Serving](https://github.com/intel/video-analytics-serving) for analytics pipeline management and execution. + +The following are steps to install this flavor: +1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). +2. Add the VCA host name in the `edgenode_vca_group:` group in `inventory.yml` file of the CEEK, e.g: + ```yaml + edgenode_vca_group: + hosts: + vca-node01.openness.org: + ansible_host: 172.16.0.1 + ansible_user: openness ``` - [edgenode_vca_group] - silpixa00400194 + > **NOTE:** The VCA host name should *only* be placed once in the `inventory.yml` file and under the `edgenode_vca_group:` group. + +2. Update the `inventory.yaml` file by setting the deployment flavor as `media-analytics-vca` + ```yaml + --- + all: + vars: + cluster_name: media_analytics_vca_cluster + flavor: media-analytics-vca + ... ``` - > **NOTE:** The VCA host name should *only* be placed once in the `inventory/default/inventory.ini` file and under the `[edgenode_vca_group]` group. -3. Run OEK deployment script: +3. Run CEEK deployment script: ```shell - $ deploy_ne.sh -f media-analytics-vca + $ sudo python3 deploy.py ``` -> **NOTE:** At the time of writing this document, *Weave Net* is the only supported CNI for network edge deployments involving VCAC-A acceleration. The `weavenet` CNI is automatically selected by the *media-analytics-vca*. -> **NOTE:** The flag `force_build_enable` (default true) supports force build VCAC-A system image (VCAD) by default, it is defined in flavors/media-analytics-vca/all.yml. By setting the flag as false, OEK will not rebuild the image and re-use the last system image built during deployment. If the flag is true, OEK will force build VCA host kernel and node system image which will take several hours. +> **NOTE:** At the time of writing this document, *Weave Net*\* is the only supported CNI for network edge deployments involving VCAC-A acceleration. The `weavenet` CNI is automatically selected by the *media-analytics-vca*. +> **NOTE:** The flag `force_build_enable` (default true) supports force build VCAC-A system image (VCAD) by default, it is defined in flavors/media-analytics-vca/all.yml. By setting the flag as false, CEEK will not rebuild the image and re-use the last system image built during deployment. If the flag is true, CEEK will force build VCA host kernel and node system image which will take several hours. This deployment flavor enables the following ingredients: -* Node Feature Discovery -* VPU & GPU device plugins +* Node feature discovery +* VPU and GPU device plugins * HDDL daemonset * The `weavenet` Kubernetes CNI * Video analytics services @@ -118,33 +127,51 @@ This deployment flavor enables the following ingredients: ## CERA CDN Transcode Flavor -The pre-defined *cdn-transcode* deployment flavor provisions an optimized system configuration for cdn transcode sample workloads on Intel Xeon servers. - -Steps to install this flavor are as follows: -1. Configure OEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). -2. Run OEK deployment script: +The pre-defined *cdn-transcode* deployment flavor provisions an optimized system configuration for Content Delivery Network (CDN) transcode sample workloads on Intel® Xeon® platforms. + +The following are steps to install this flavor: +1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). +2. Update the `inventory.yaml` file by setting the deployment flavor as `cdn-transcode` + ```yaml + --- + all: + vars: + cluster_name: cdn_transcode_cluster + flavor: cdn-transcode + ... + ``` +3. Run CEEK deployment script: ```shell - $ deploy_ne.sh -f cdn-transcode + $ sudo python3 deploy.py ``` This deployment flavor enables the following ingredients: -* Node Feature Discovery +* Node feature discovery * The default Kubernetes CNI: `calico` * Telemetry ## CERA CDN Caching Flavor -The pre-defined *cdn-caching* deployment flavor provisions an optimized system configuration for cdn content delivery workloads on Intel Xeon servers. - -Steps to install this flavor are as follows: -1. Configure OEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). -2. Run OEK deployment script: +The pre-defined *cdn-caching* deployment flavor provisions an optimized system configuration for CDN content delivery workloads on Intel® Xeon® platforms. + +The following are steps to install this flavor: +1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). +2. Update the `inventory.yaml` file by setting the deployment flavor as `cdn-caching` + ```yaml + --- + all: + vars: + cluster_name: cdn_caching_cluster + flavor: cdn-caching + ... + ``` +3. Run CEEK deployment script: ```shell - $ deploy_ne.sh -f cdn-caching + $ sudo python3 deploy.py ``` This deployment flavor enables the following ingredients: -* Node Feature Discovery +* Node feature discovery * The `kube-ovn` and `sriov` Kubernetes CNI * Telemetry * Kubernetes Topology Manager policy: `single-numa-node` @@ -175,11 +202,20 @@ Central Orchestrator Flavor is used to deploy EMCO. The pre-defined *orchestration* deployment flavor provisions an optimized system configuration for emco (central orchestrator) workloads on Intel Xeon servers. It also provisions a set of central orchestrator services for [edge, multiple clusters orchestration](building-blocks/emco/openness-emco.md). -Steps to install this flavor are as follows: -1. Configure OEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). -2. Run OEK deployment script: +The following are steps to install this flavor: +1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). +2. Update the `inventory.yaml` file by setting the deployment flavor as `central_orchestrator` + ```yaml + --- + all: + vars: + cluster_name: central_orchestrator_cluster + flavor: central_orchestrator + ... + ``` +3. Run CEEK deployment script: ```shell - $ deploy_ne.sh -f central_orchestrator + $ sudo python3 deploy.py ``` This deployment flavor enables the following ingredients: @@ -193,15 +229,24 @@ The pre-defined *service-mesh* deployment flavor installs the OpenNESS service m > **NOTE**: When deploying Istio Service Mesh in VMs, a minimum of 8 CPU core and 16GB RAM must be allocated to each worker VM so that Istio operates smoothly -Steps to install this flavor are as follows: -1. Configure OEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). -2. Run OEK deployment script: +The following are steps to install this flavor: +1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). +2. Update the `inventory.yaml` file by setting the deployment flavor as `service-mesh` + ```yaml + --- + all: + vars: + cluster_name: service_mesh_cluster + flavor: service-mesh + ... + ``` +3. Run CEEK deployment script: ```shell - $ deploy_ne.sh -f service-mesh + $ sudo python3 deploy.py ``` This deployment flavor enables the following ingredients: -* Node Feature Discovery +* Node feature discovery * The default Kubernetes CNI: `kube-ovn` * Istio service mesh * Kiali management console @@ -211,7 +256,7 @@ This deployment flavor enables the following ingredients: Following parameters in the flavor/all.yaml can be customize for Istio deployment: -``` +```code # Istio deployment profile possible values: default, demo, minimal, remote istio_deployment_profile: "default" diff --git a/doc/getting-started/openness-experience-kits.md b/doc/getting-started/converged-edge-experience-kits.md similarity index 55% rename from doc/getting-started/openness-experience-kits.md rename to doc/getting-started/converged-edge-experience-kits.md index b110c6ae..9b006673 100644 --- a/doc/getting-started/openness-experience-kits.md +++ b/doc/getting-started/converged-edge-experience-kits.md @@ -3,14 +3,20 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) 2019-2021 Intel Corporation ``` -# OpenNESS Experience Kits +# Converged Edge Experience Kits - [Purpose](#purpose) -- [OpenNESS setup playbooks](#openness-setup-playbooks) +- [Converged Edge Experience Kit explained](#converged-edge-experience-kit-explained) +- [The inventory file](#the-inventory-file) +- [Sample Deployment Definitions](#sample-deployment-definitions) + - [Single Cluster Deployment](#single-cluster-deployment) + - [Single-node Cluster Deployment](#single-node-cluster-deployment) + - [Multi-cluster deployment](#multi-cluster-deployment) +- [Deployment customization](#deployment-customization) - [Customizing kernel, grub parameters, and tuned profile & variables per host](#customizing-kernel-grub-parameters-and-tuned-profile--variables-per-host) - [IP address range allocation for various CNIs and interfaces](#ip-address-range-allocation-for-various-cnis-and-interfaces) - [Default values](#default-values) - - [Use newer realtime kernel (3.10.0-1062)](#use-newer-realtime-kernel-3100-1062) - - [Use newer non-rt kernel (3.10.0-1062)](#use-newer-non-rt-kernel-3100-1062) + - [Use different realtime kernel (3.10.0-1062)](#use-different-realtime-kernel-3100-1062) + - [Use different non-rt kernel (3.10.0-1062)](#use-different-non-rt-kernel-3100-1062) - [Use tuned 2.9](#use-tuned-29) - [Default kernel and configure tuned](#default-kernel-and-configure-tuned) - [Change amount of HugePages](#change-amount-of-hugepages) @@ -23,17 +29,199 @@ Copyright (c) 2019-2021 Intel Corporation ## Purpose -The OpenNESS Experience Kit (OEK) repository contains a set of Ansible\* playbooks for the easy setup of OpenNESS in **Network Edge** mode. +The Converged Edge Experience Kit is a refreshed repository of Ansible\* playbooks for automated deployment of Converged Edge Reference Architectures. -## OpenNESS setup playbooks +The Converged Edge Experience Kit introduces the following capabilities: +1. Wide range of deployments from individual building blocks to full end-to-end reference deployments +2. Minimal to near-zero user interventions.. Typically, the user provides the details of the nodes that constitute the OpenNESS edge cluster and executes the deployment script +3. More advanced deployments can be customized in the form of Ansible\* group and host variables. This mode requires users with in-depth knowledge and expertise of the subject edge deployment +4. Enablement of end-to-end multi-cluster deployments such as Near Edge and On-premises reference architectures + +## Converged Edge Experience Kit explained +The Converged Edge Experience Kit repository is organized as detailed in the following structure: +``` +├── cloud +├── flavors +├── inventory +│ ├── automated +│ └── default +│ ├── group_vars +│ │ └── all +│ │ └── 10-default.yml +│ └── host_vars +├── playbooks +│ ├── infrastructure.yml +│ ├── kubernetes.yml +│ └── applications.yml +├── roles +│ ├── applications +│ ├── infrastructure +│ ├── kubernetes +│ └── telemetry +├── scripts +├── tasks +├── inventory.yml +├── network_edge_cleanup.yml +└── deploy.py +``` + +* `flavors`: definition variables of pre-defined deployment flavors +* `inventory`: definition of default & generated Ansible\* variables +* `inventory/default/group_vars/all/10-default.yml`: definition of default variables for all deployments +* `inventory/automated`: inventory files that were automatically generated by the deployment helper script +* `playbooks`: Ansible\* playbooks for infrastructure, Kubernetes and applications +* `roles`: Ansible roles for infrastructure, Kubernetes, applications and telemetry +* `scripts`: utility scripts +* `inventory.yml`: definition of the clusters, their controller & edge nodes and respective deployment flavors +* `deploy.py`: the deployment helper script + + +## The inventory file +The inventory file defines the group of physical nodes that constitute the edge cluster which will be deployed by the Converged Edge Experience Kits. The inventory file YAML specification allows deploying multiple edge clusters in one command run. Multiple clusters must be separated by the 3 dashes `---` directive. + +> **NOTE**: for multi-cluster deployments, user must assign distinct names to the controller and the edge nodes, i.e., no hostname repetitions. + +The following variables must be defined + +* `cluster_name`: a given name for the OpenNESS edge cluster deployment - separated by underscores `_` instead of spaces. +* `flavor`: the deployment flavor applicable for the OpenNESS edge deployment as defined in the [Deployment flavors](../flavors.md) document. +* `single_node_deployment`: If set to `true`, a single-node cluster is deployed.. Must satisfy the following conditions: + - IP address (`ansible_host`) for both controller and node must be the same + - `controller_group` and `edgenode_group` groups must contain exactly one host +* `limit` -- **OPTIONAL**: constrains the deployment to a specific Ansible\* group, e.g., `controller`, `edgenode`, `edgenode_vca_group` or just a particular hostname. This is passed as a `--limit` command-line option when executing `ansible-playbook`. + +## Sample Deployment Definitions +### Single Cluster Deployment +Set `single_node_deployment` flag to `false` in the inventory file and provide the controller node name under the `controller_group` and the edge node names under the `edgenode_group`. + +Example: + +```yaml +--- +all: + vars: + cluster_name: 5g_near_edge + flavor: cera_5g_near_edge + single_node_deployment: false + limit: +controller_group: + hosts: + ctrl.openness.org: + ansible_host: 10.102.227.154 + ansible_user: openness +edgenode_group: + hosts: + node01.openness.org: + ansible_host: 10.102.227.11 + ansible_user: openness + node02.openness.org: + ansible_host: 10.102.227.79 + ansible_user: openness +edgenode_vca_group: + hosts: +ptp_master: + hosts: +ptp_slave_group: + hosts: +``` + +### Single-node Cluster Deployment +Set `single_node_deployment` flag to `true` in the inventory file and provide the node name in the `controller_group` and the `edgenode_group`. + +Example: + +```yaml +--- +all: + vars: + cluster_name: 5g_central_office + flavor: cera_5g_central_office + single_node_deployment: true + limit: +controller_group: + hosts: + node.openness.org: + ansible_host: 10.102.227.234 + ansible_user: openness +edgenode_group: + hosts: + node.openness.org: + ansible_host: 10.102.227.234 + ansible_user: openness +edgenode_vca_group: + hosts: +ptp_master: + hosts: +ptp_slave_group: + hosts: +``` + +### Multi-cluster deployment +Provide multiple clusters YAML specifications separated by the 3 dashes `---` directive in the inventory.yml. A node name should be used only once across the inventory file, i.e: distinct node names. + +Example: + +```yaml +--- +all: + vars: + cluster_name: 5g_near_edge + flavor: cera_5g_near_edge + single_node_deployment: true + limit: +controller_group: + hosts: + node.openness01.org: + ansible_host: 10.102.227.154 + ansible_user: openness +edgenode_group: + hosts: + node.openness01.org: + ansible_host: 10.102.227.154 + ansible_user: openness +edgenode_vca_group: + hosts: +ptp_master: + hosts: +ptp_slave_group: + hosts: +--- +all: + vars: + cluster_name: 5g_central_office + flavor: cera_5g_central_office + single_node_deployment: true + limit: +controller_group: + hosts: + node.openness02.org: + ansible_host: 10.102.227.234 + ansible_user: openness +edgenode_group: + hosts: + node.openness02.org: + ansible_host: 10.102.227.234 + ansible_user: openness +edgenode_vca_group: + hosts: +ptp_master: + hosts: +ptp_slave_group: + hosts: +``` + +## Deployment customization +The `deploy.py` script creates a new inventory for each cluster to be deployed in a `inventory/automated` directory. These inventories are based on `inventory/default` - all directories and files are symlinked. Additionally, relevant flavor files are symlinked. + +Customizations made to `inventory/default/group_vars` and `inventory/default/host_vars` will affect every deployment performed by `deploy.py` (because these files are symlinked, not copied). Therefore it is a good place to provide changes relevant to the nodes of the cluster. ## Customizing kernel, grub parameters, and tuned profile & variables per host -OEKs allow a user to customize kernel, grub parameters, and tuned profiles by leveraging Ansible's feature of `host_vars`. +CEEKs allow a user to customize kernel, grub parameters, and tuned profiles by leveraging Ansible's feature of `host_vars`. > **NOTE**: `inventory/default/groups_vars/[edgenode|controller|edgenode_vca]_group` directories contain variables applicable for the respective groups and they can be used in `inventory/default/host_vars` to change on per node basis while `inventory/default/group_vars/all` contains cluster wide variables. -OEKs contain a `inventory/default/host_vars/` directory in which we can create another directory (`nodes-inventory-name`) and place a YAML file (`10-default.yml`, e.g., `node01/10-default.yml`). The file would contain variables that would override roles' default values. +CEEKs contain a `inventory/default/host_vars/` directory in which we can create another directory (`nodes-inventory-name`) and place a YAML file (`10-default.yml`, e.g., `node01/10-default.yml`). The file would contain variables that would override roles' default values. > **NOTE**: Despite the ability to customize parameters (kernel), it is required to have a clean CentOS\* 7.9.2009 operating system installed on hosts (from a minimal ISO image) that will be later deployed from Ansible scripts. This OS shall not have any user customizations. @@ -47,7 +235,7 @@ The following are several common customization scenarios. ### IP address range allocation for various CNIs and interfaces -The OpenNESS Experience kits deployment uses/allocates/reserves a set of IP address ranges for different CNIs and interfaces. The server or host IP address should not conflict with the default address allocation. +The Converged Edge Experience kits deployment uses/allocates/reserves a set of IP address ranges for different CNIs and interfaces. The server or host IP address should not conflict with the default address allocation. In case if there is a critical need for the server IP address used by the OpenNESS default deployment, it would require to modify the default addresses used by the OpenNESS. Following files specify the CIDR for CNIs and interfaces. These are the IP address ranges allocated and used by default just for reference. @@ -61,10 +249,10 @@ inventory/default/group_vars/all/10-default.yml:99:kubeovn_cidr: "10.16.0.0/16,1 roles/kubernetes/cni/kubeovn/controlplane/templates/crd_local.yml.j2:13: cidrBlock: "192.168.{{ loop.index0 + 1 }}.0/24" ``` -The 192.168.x.y is used for SRIOV and interface service IP address allocation in Kube-ovn CNI. So it is not allowed for the server IP address, which conflicting with this range. +The `192.168.*.*` is used for SRIOV and interface service IP address allocation in Kube-ovn CNI. So it is not allowed for the server IP address, which conflicting with this range. Completely avoid the range of address defined as per the netmask as it may conflict in routing rules. -Eg. If the server/host IP address is required to use 192.168.x.y while this range by default used for SRIOV interfaces in OpenNESS. The IP address range for cidrBlock in roles/kubernetes/cni/kubeovn/controlplane/templates/crd_local.yml.j2 file can be changed to 192.167.{{ loop.index0 + 1 }}.0/24 to use some other IP segment for SRIOV interfaces. +E.g., If the server/host IP address is required to use `192.168.*.*` while this range by default used for SRIOV interfaces in OpenNESS. The IP address range for `cidrBlock` in `roles/kubernetes/cni/kubeovn/controlplane/templates/crd_local.yml.j2` file can be changed to `192.167.{{ loop.index0 + 1 }}.0/24` to use some other IP segment for SRIOV interfaces. ### Default values @@ -83,7 +271,6 @@ kernel_version: 3.10.0-1160.11.1.rt56.1145.el7.x86_64 kernel_dependencies_urls: [] kernel_dependencies_packages: [] - # --- machine_setup/grub hugepage_size: "2M" # Or 1G hugepage_amount: "5000" @@ -91,7 +278,6 @@ hugepage_amount: "5000" default_grub_params: "hugepagesz={{ hugepage_size }} hugepages={{ hugepage_amount }} intel_iommu=on iommu=pt" additional_grub_params: "" - # --- machine_setup/configure_tuned tuned_skip: false # use this variable to skip tuned profile configuration for host tuned_packages: @@ -105,7 +291,7 @@ tuned_vars: | ``` ### Use different realtime kernel (3.10.0-1062) -By default, `kernel-rt-kvm-3.10.0-1160.11.1.rt56.1145.el7.x86_64` from buil-in repository is installed. +By default, `kernel-rt-kvm-3.10.0-1160.11.1.rt56.1145.el7.x86_64` from the built-in repository is installed. To use another version (e.g., `kernel-rt-kvm-3.10.0-1062.9.1.rt56.1033.el7.x86_64`), create a `host_var` file for the host with content: ```yaml @@ -179,7 +365,7 @@ By default, OVS-DPDK is disabled (due to set calico as a default cni). To enable kubeovn_dpdk: true ``` ->**NOTE**: This flag should be set in `roles/kubernetes/cni/kubeovn/common/defaults/main.ym` or added to `inventory/default/group_vars/all/10-default.yml`. +> **NOTE**: This flag should be set in `roles/kubernetes/cni/kubeovn/common/defaults/main.ym` or added to `inventory/default/group_vars/all/10-default.yml`. Additionally, HugePages in the OVS pod can be adjusted once default HugePage settings are changed. ```yaml @@ -227,4 +413,4 @@ The following are basic prechecks that are currently executed: include_tasks: kube-ovn.yml when: "'kubeovn' in kubernetes_cnis" ``` -* If the CNI is used as an additional CNI (with Multus\*), the network attachment definition must be supplied ([refer to Multus docs for more info](https://github.com/intel/multus-cni/blob/master/doc/quickstart.md#storing-a-configuration-as-a-custom-resource)). +* If the CNI is used as an additional CNI (with Multus\*), the network attachment definition must be supplied ([refer to Multus docs for more info](https://github.com/intel/multus-cni/blob/master/docs/quickstart.md#storing-a-configuration-as-a-custom-resource)). diff --git a/doc/getting-started/network-edge/controller-edge-node-setup.md b/doc/getting-started/network-edge/controller-edge-node-setup.md index fb8c4d55..fc629b7e 100644 --- a/doc/getting-started/network-edge/controller-edge-node-setup.md +++ b/doc/getting-started/network-edge/controller-edge-node-setup.md @@ -3,9 +3,7 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) 2019-2021 Intel Corporation ``` - # OpenNESS Network Edge: Controller and Edge node setup -- [OpenNESS Network Edge: Controller and Edge node setup](#openness-network-edge-controller-and-edge-node-setup) - [Quickstart](#quickstart) - [Preconditions](#preconditions) - [Running playbooks](#running-playbooks) @@ -67,22 +65,16 @@ The following set of actions must be completed to set up the Open Network Edge S To use the playbooks, several preconditions must be fulfilled. These preconditions are described in the [Q&A](#qa) section below. The preconditions are: - CentOS\* 7.9.2009 must be installed on all the nodes (the controller and edge nodes) where the product is deployed. It is highly recommended to install the operating system using a minimal ISO image on nodes that will take part in deployment (obtained from inventory file). Also, do not make customizations after a fresh manual install because it might interfere with Ansible scripts and give unpredictable results during deployment. - - Hosts for the Edge Controller (Kubernetes control plane) and Edge Nodes (Kubernetes nodes) must have proper and unique hostnames (i.e., not `localhost`). This hostname must be specified in `/etc/hosts` (refer to [Setup static hostname](#setup-static-hostname)). - - SSH keys must be exchanged between hosts (refer to [Exchanging SSH keys between hosts](#exchanging-ssh-keys-between-hosts)). - - A proxy may need to be set (refer to [Setting proxy](#setting-proxy)). - - If a private repository is used, a Github\* token must be set up (refer to [GitHub token](#github-token)). - - Refer to the [Configuring time](#configuring-time) section for how to enable Network Time Protocol (NTP) clients. - -- The Ansible inventory must be configured (refer to [Configuring inventory](#configuring-inventory)). +- The Ansible inventory must be configured (refer to [Configuring the Inventory file](#configuring-the-inventory-file)). # Running playbooks -The Network Edge deployment and cleanup is carried out via Ansible playbooks. The playbooks are run from the Ansible host. Before running the playbooks, an inventory file `inventory.yml` must be defined. The provided [deployment helper script](#running-playbooks) supports deploying multiple clusters as defined in the Inventory file. +The Network Edge deployment and cleanup is carried out via Ansible playbooks. The playbooks are run from the Ansible host. Before running the playbooks, an inventory file `inventory.yml` must be defined. The provided [deployment helper scripts](#deployment-scripts) support deploying multiple clusters as defined in the Inventory file. The following subsections describe the playbooks in more details. @@ -106,10 +98,10 @@ To get started with deploying an OpenNESS edge cluster using the Converged Edge --- all: vars: - cluster_name: 5g_near_edge # NOTE: Use `_` instead of spaces. - flavor: cera_5g_near_edge # NOTE: Flavors can be found in `flavors` directory. - single_node_deployment: false # Request single node deployment (true/false). - limit: # Limit ansible deployment to certain inventory group or hosts + cluster_name: 5g_near_edge + flavor: cera_5g_near_edge + single_node_deployment: false + limit: controller_group: hosts: ctrl.openness.org: @@ -133,7 +125,7 @@ To get started with deploying an OpenNESS edge cluster using the Converged Edge > **NOTE**: To deploy multiple clusters in one command run, append the same set of YAML specs separated by `---` -3. Additional configurations should be applied to the default group_vars file: `inventory/default/group_vars/all/10-default.yml`. More details on the default values is explained in the [Getting Started Guide](../openness-experience-kits.md#default-values). +3. Additional configurations should be applied to the default group_vars file: `inventory/default/group_vars/all/10-default.yml`. More details on the default values is explained in the [Getting Started Guide](../converged-edge-experience-kits.md#default-values). 4. Get the deployment started by executing the deploy script @@ -172,21 +164,21 @@ For example, when installing Docker\*, the RPM repository is added and Docker is To execute cleanup procedure ```shell -$ python3 deploy.py --clean +$ sudo python3 deploy.py --clean ``` > **NOTE**: There may be leftovers created by the installed software. For example, DPDK and Golang installations, found in `/opt`, are not rolled back. ### Supported EPA features -Several enhanced platform capabilities and features are available in OpenNESS for Network Edge. For the full list of supported features, see [Enhanced Platform Awareness Features](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/supported-epa.md). The documents referenced in this list provide a detailed description of the features, and step-by-step instructions for enabling them. Users should become familiar with available features before executing the deployment playbooks. +Several enhanced platform capabilities and features are available in OpenNESS for Network Edge. For the full list of supported features, see [Enhanced Platform Awareness Features](./supported-epa.md). The documents referenced in this list provide a detailed description of the features, and step-by-step instructions for enabling them. Users should become familiar with available features before executing the deployment playbooks. ### VM support for Network Edge -Support for VM deployment on OpenNESS for Network Edge is available and enabled by default. Certain configurations and prerequisites may need to be satisfied to use all VM capabilities. The user is advised to become familiar with the VM support documentation before executing the deployment playbooks. See [openness-network-edge-vm-support](https://github.com/otcshare/specs/blob/master/doc/applications-onboard/openness-network-edge-vm-support.md) for more information. +Support for VM deployment on OpenNESS for Network Edge is available and enabled by default. Certain configurations and prerequisites may need to be satisfied to use all VM capabilities. The user is advised to become familiar with the VM support documentation before executing the deployment playbooks. See [openness-network-edge-vm-support](../../applications-onboard/openness-network-edge-vm-support.md) for more information. ### Application on-boarding -Refer to the [network-edge-applications-onboarding](https://github.com/otcshare/specs/blob/master/doc/aplications-onboard/network-edge-applications-onboarding.md) document for instructions on how to deploy edge applications for OpenNESS Network Edge. +Refer to the [network-edge-applications-onboarding](../../applications-onboard/network-edge-applications-onboarding.md) document for instructions on how to deploy edge applications for OpenNESS Network Edge. ### Single-node Network Edge cluster @@ -206,10 +198,10 @@ To deploy Network Edge in a single-node cluster scenario, follow the steps below --- all: vars: - cluster_name: 5g_central_office # NOTE: Use `_` instead of spaces. - flavor: cera_5g_central_office # NOTE: Flavors can be found in `flavors` directory. - single_node_deployment: true # Request single node deployment (true/false). - limit: # Limit ansible deployment to certain inventory group or hosts + cluster_name: 5g_central_office + flavor: cera_5g_central_office + single_node_deployment: true + limit: controller_group: hosts: node.openness.org: @@ -246,7 +238,7 @@ Harbor registry is an open source cloud native registry which can support images ### Deploy Harbor registry #### System Prerequisite -* The available system disk should be reserved at least 20G for Harbor PV/PVC usage. The defaut disk PV/PVC total size is 20G. The values can be configurable in the ```roles/harbor_registry/controlplane/defaults/main.yaml```. +* The available system disk should be reserved at least 20G for Harbor PV/PVC usage. The defaut disk PV/PVC total size is 20G. The values can be configured in the ```roles/harbor_registry/controlplane/defaults/main.yaml```. * If huge pages enabled, need 1G(hugepage size 1G) or 300M(hugepage size 2M) to be reserved for Harbor usage. #### Ansible Playbooks @@ -451,12 +443,12 @@ The following CNIs are currently supported: * Network attachment definition: openness-flannel * [weavenet](https://github.com/weaveworks/weave) * CIDR: 10.32.0.0/12 -* [SR-IOV](https://github.com/intel/sriov-cni) (cannot be used as a standalone or primary CNI - [sriov setup](https://github.com/otcshare/specs/blob/master/doc/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md)) -* [Userspace](https://github.com/intel/userspace-cni-network-plugin) (cannot be used as a standalone or primary CNI - [Userspace CNI setup](https://github.com/otcshare/specs/blob/master/doc/dataplane/openness-userspace-cni.md) +* [SR-IOV](https://github.com/intel/sriov-cni) (cannot be used as a standalone or primary CNI - [sriov setup](../../building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md)) +* [Userspace](https://github.com/intel/userspace-cni-network-plugin) (cannot be used as a standalone or primary CNI - [Userspace CNI setup](../../building-blocks/dataplane/openness-userspace-cni.md) Multiple CNIs can be requested to be set up for the cluster. To provide such functionality [the Multus CNI](https://github.com/intel/multus-cni) is used. ->**NOTE**: For a guide on how to add new a CNI role to the OpenNESS Experience Kits, refer to [the OpenNESS Experience Kits guide](https://github.com/otcshare/specs/blob/master/doc/getting-started/openness-experience-kits.md#adding-new-cni-plugins-for-kubernetes-network-edge). +>**NOTE**: For a guide on how to add new a CNI role to the OpenNESS Experience Kits, refer to [the OpenNESS Experience Kits guide](../../getting-started/converged-edge-experience-kits.md#adding-new-cni-plugins-for-kubernetes-network-edge). ### Selecting cluster networking plugins (CNI) @@ -551,7 +543,7 @@ The following command is used in CentOS\* to set a static hostname: hostnamectl set-hostname ``` -As shown in the following example, the hostname must also be defined in `/etc/host`: +As shown in the following example, the hostname must also be defined in `/etc/hosts`: ```shell 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 @@ -582,10 +574,10 @@ Example: --- all: vars: - cluster_name: 5g_near_edge # NOTE: Use `_` instead of spaces. - flavor: cera_5g_near_edge # NOTE: Flavors can be found in `flavors` directory. - single_node_deployment: false # Request single node deployment (true/false). - limit: # Limit ansible deployment to certain inventory group or hosts + cluster_name: central_office + flavor: minimal + single_node_deployment: false + limit: controller_group: hosts: ctrl.openness.org: @@ -607,7 +599,7 @@ ptp_slave_group: hosts: ``` -In this example, a cluster named as `5g_near_edge` is deployed using the pre-defined deployment flavor `cera_5g_near_edge` that is composed of one controller node `ctrl.openness.org` and 2 edge nodes: `node01.openness.org` and `node02.openness.org`. +In this example, a cluster named as `central_office` is deployed using the pre-defined deployment flavor `minimal` that is composed of one controller node `ctrl.openness.org` and 2 edge nodes: `node01.openness.org` and `node02.openness.org`. ## Exchanging SSH keys between hosts @@ -665,7 +657,7 @@ and check to make sure that only the key(s) you wanted were added. To make sure the key is copied successfully, try to SSH into the host: `ssh 'root@host'`. It should not ask for the password. >**NOTE**: Where non-root user is used for example `openness` the command should be replaced to `ssh openness@host`. For more information about non-root user please refer to: -[The non-root user on the OpenNESS Platform](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-nonroot.md) +[The non-root user on the OpenNESS Platform](../../building-blocks/enhanced-platform-awareness/openness-nonroot.md) ## Setting proxy If a proxy is required to connect to the Internet, it is configured via the following steps: @@ -727,4 +719,5 @@ edgenode_repository_branch: openness-20.03 ## Customization of kernel, grub parameters, and tuned profile -OpenNESS Experience Kits provide an easy way to customize the kernel version, grub parameters, and tuned profile. For more information, refer to [the OpenNESS Experience Kits guide](https://github.com/otcshare/specs/blob/master/doc/getting-started/openness-experience-kits.md). +Converged Edge Experience Kits provide an easy way to customize the kernel version, grub parameters, and tuned profile. For more information, refer to the [Converged Edge Experience Kits guide](../../getting-started/converged-edge-experience-kits.md). + diff --git a/doc/reference-architectures/ran/openness_ran.md b/doc/reference-architectures/ran/openness_ran.md index 3f1eeaba..fd2b2e40 100644 --- a/doc/reference-architectures/ran/openness_ran.md +++ b/doc/reference-architectures/ran/openness_ran.md @@ -106,7 +106,7 @@ usbcore.autosuspend=-1 selinux=0 enforcing=0 nmi_watchdog=0 softlockup_panic=0 a Host kernel version - 3.10.0-1062.12.1.rt56.1042.el7.x86_64 -Instructions on how to configure the kernel command line in OpenNESS can be found in [OpenNESS getting started documentation](https://github.com/otcshare/specs/blob/master/doc/getting-started/openness-experience-kits.md#customizing-kernel-grub-parameters-and-tuned-profile--variables-per-host) +Instructions on how to configure the kernel command line in OpenNESS can be found in [OpenNESS getting started documentation](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md#customizing-kernel-grub-parameters-and-tuned-profile--variables-per-host) # Deploying and Running the FlexRAN pod diff --git a/doc/reference-architectures/ran/openness_xran.md b/doc/reference-architectures/ran/openness_xran.md index 241e44de..f67c4e0b 100644 --- a/doc/reference-architectures/ran/openness_xran.md +++ b/doc/reference-architectures/ran/openness_xran.md @@ -481,7 +481,7 @@ In file `./inventory/default/group_vars/edgenode_group.yml`, change the followin Host kernel version should be - 3.10.0-1062.12.1.rt56.1042.el7.x86_64 -Instructions on how to configure the kernel command line in OpenNESS can be found in [OpenNESS getting started documentation](https://github.com/otcshare/specs/blob/master/doc/getting-started/openness-experience-kits.md#customizing-kernel-grub-parameters-and-tuned-profile--variables-per-host) +Instructions on how to configure the kernel command line in OpenNESS can be found in [OpenNESS getting started documentation](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md#customizing-kernel-grub-parameters-and-tuned-profile--variables-per-host) ### PTP Synchronization From 92bd95d1ab44d0d2543ccf6a54036a89c35d87e0 Mon Sep 17 00:00:00 2001 From: Jiang Date: Tue, 23 Mar 2021 17:16:45 +0800 Subject: [PATCH 49/89] no need to edit /etc/hosts in the pod --- .../network-edge-applications-onboarding.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/doc/applications-onboard/network-edge-applications-onboarding.md b/doc/applications-onboard/network-edge-applications-onboarding.md index 81b95fe1..812bd2aa 100644 --- a/doc/applications-onboard/network-edge-applications-onboarding.md +++ b/doc/applications-onboard/network-edge-applications-onboarding.md @@ -504,12 +504,8 @@ This section guides users through the complete process of onboarding the OpenVIN 3. Verify that no errors show up in the logs of the OpenVINO consumer application: ``` kubectl logs openvino-cons-app - ``` -4. Log into the consumer application pod and modify `analytics.openness` entry in `/etc/hosts` with the IP address set in step one of [Setting up Networking Interfaces](#Setting-up-Networking-Interfaces) (192.168.1.10 by default, the physical interface connected to traffic generating host). - ``` - kubectl exec -it openvino-cons-app /bin/sh - apt-get install vim - vim /etc/hosts + kubectl get po -o custom-columns=NAME:.metadata.name,IP:.status.podIP | grep cons-app | awk '{print $2}' + ``` ## Applying Kubernetes network policies From 6b8c5c681eb7b11700a8ec6d89c89618ce47d772 Mon Sep 17 00:00:00 2001 From: lukaszXlesiecki <67093702+lukaszXlesiecki@users.noreply.github.com> Date: Tue, 23 Mar 2021 11:01:32 +0100 Subject: [PATCH 50/89] Handle Review --- .../openness-qat.md | 60 ++++++++++++------- 1 file changed, 40 insertions(+), 20 deletions(-) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-qat.md b/doc/building-blocks/enhanced-platform-awareness/openness-qat.md index f60571f7..5e239019 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-qat.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-qat.md @@ -2,14 +2,13 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) 2020 Intel Corporation ``` - + # Using Intel® QuickAssist Adapter in OpenNESS: Resource Allocation, and Configuration - [Overview](#overview) -- [Intel QuickAssist Adapter CU/DU Host Interface Overview](#intel-quickassist-adapter-cudu-host-interface-overview) -- [Intel QuickAssist Adapter Device Plugin Deployment with Kubernetes\* for CU/DU](#intel-quickassist-adapter-device-plugin-deployment-with-kubernetes-for-cudu) -- [Using the Intel QuickAssist Adapter on OpenNESS](#using-the-intel-quickassist-adapter-on-openness) - - [Intel QuickAssist Adapter for OpenNESS Network Edge](#intel-quickassist-adapter-for-openness-network-edge) - - [Converged Edge Experience Kits (CEEK)](#converged-edge-experience-kits-ceek) +- [Intel® QuickAssist Adapter FlexRAN Host Interface Overview](#Intel®-QuickAssist-Adapter-CU/DU-Host-Interface-Overview) +- [Using the Intel® QuickAssist Adapter on OpenNESS](#using-the-intel®-quicksssist-adapter-on-OpenNESS) + - [Intel® QuickAssist Adapter Ansible Installation for OpenNESS Network Edge](#intel®-quickassist-adapter-for-openness-network-edge) + - [OpenNESS Experience Kit](#openness-experience-kit) - [Requesting Resources and Running Pods for OpenNESS Network Edge](#requesting-resources-and-running-pods-for-openness-network-edge) - [Reference](#reference) @@ -37,16 +36,16 @@ Intel® QuickAssist Adapter benefits include: For more information, see product brief in [Intel® QuickAssist Adapter](https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/quickassist-adapter-8960-8970-brief.pdf). -This document explains how the Intel® QuickAssist (QAT) device plugin is enabled and used on the Open Network Edge Services Software (OpenNESS) platform for accelerating network functions and edge application workloads. The Intel® QuickAssist Adapter is used to accelerate the LTE/5G encryption tasks in the CU/DU. +This document explains how the qat.intel.com/generic resource can be used on the Open Network Edge Services Software (OpenNESS) platform for accelerating network functions and edge application workloads. We use the Intel® QuickAssist Adapter to accelerate the LTE/5G encryption tasks in the CU/DU. -## Intel QuickAssist Adapter CU/DU Host Interface Overview +## Intel® QuickAssist Adapter CU/DU Host Interface Overview Intel® QuickAssist Adapter used in the CU/DU solution exposes the following Physical Functions (PF) to the CPU host: - Three interfaces, that can provide 16 Virtual Functions each. -## Intel QuickAssist Adapter Device Plugin Deployment with Kubernetes\* for CU/DU -CU/DU applications use the `qat.intel.com/generic` resources from the Intel® QuickAssist Adapter using POD resource allocation and the Kubernetes\* device plugin framework. Kubernetes* provides a device plugin framework that is used to advertise system hardware resources to the Kubelet. Instead of customizing the code for Kubernetes* (K8s) itself, vendors can implement a device plugin that can be deployed either manually or as a DaemonSet. The targeted devices include GPUs, high-performance NICs, FPGAs, InfiniBand\* adapters, and other similar computing resources that may require vendor-specific initialization and setup. +## Intel® QuickAssist Adapter Device Plugin Deployment with Kubernetes\* for CU/DU +CU/DU aplications use the qat.intel.com/generic resources from the Intel® QuickAssist Adapter using POD resource allocation and the Kubernetes\* device plugin framework. Kubernetes* provides a device plugin framework that is used to advertise system hardware resources to the Kubelet. Instead of customizing the code for Kubernetes* (K8s) itself, vendors can implement a device plugin that can be deployed either manually or as a DaemonSet. The targeted devices include GPUs, high-performance NICs, FPGAs, InfiniBand\* adapters, and other similar computing resources that may require vendor-specific initialization and setup. -## Using the Intel QuickAssist Adapter on OpenNESS +## Using the Intel® QuickAssist Adapter on OpenNESS Further sections provide instructions on how to use the Intel® QuickAssist Adapter features: configuration and accessing from an application on the OpenNESS Network Edge. When the Intel® QuickAssist Adapter is available on the Edge Node platform it exposes three Root I/O Virtualization (SRIOV) Physical Functions (PF) devices which can be used to create Virtual Functions. To take advantage of this functionality for a cloud-native deployment, the PF (Physical Function) of the device must be bound to the DPDK IGB_UIO userspace driver to create several VFs (Virtual Functions). Once the VFs are created, they must also be bound to a DPDK userspace driver to allocate them to specific K8s pods running the vRAN workload. @@ -58,21 +57,27 @@ The full pipeline of preparing the device for workload deployment and deploying - Queue configuration of QAT's PFs/VFs. - Binding QAT's PFs/VFs to igb_uio driver. -### Intel QuickAssist Adapter for OpenNESS Network Edge -To run the OpenNESS package with Intel® QuickAssist Adapter Device Plugin functionality, the feature needs to be enabled on both Edge Controller and Edge Node. It can be deployed by setting the following variable in the Converged Edge Experience Kits: +### Intel® QuickAssist Adapter for OpenNESS Network Edge +To run the OpenNESS package with Intel® QuickAssist Adapter Device Plugin functionality, the feature needs to be enabled on both Edge Controller and Edge Node. It can be deployed by setting the following variable in the flavor or *group_vars/all* file: ```yaml qat_device_plugin_enable: true ``` -#### Converged Edge Experience Kits (CEEK) -To enable Intel® QuickAssist Adapter Device Plugin support from CEEK, SRIOV must be enabled in OpenNESS: +#### OpenNESS Experience Kit +To enable Intel® QuickAssist Adapter Device Plugin support from OEK, SRIOV must be enabled in OpenNESS: ```yaml kubernetes_cnis: --
+- - sriov ``` +--- +**NOTE** -It's enabled by default in the `cera_5g_on_prem` flavor: +`sriov` cannot be the primary CNI. + +--- + +Intel® QuickAssist Adapter Device Plugin is enabled by default in the `cera_5g_on_prem` flavor: After a successful deployment, the following pods will be available in the cluster: ```shell @@ -83,7 +88,7 @@ intel-qat-plugin-dl42c 1/1 Running 0 7d9h ``` ### Requesting Resources and Running Pods for OpenNESS Network Edge -As part of the OpenNESS Ansible automation, a K8s SRIOV device plugin to orchestrate the Intel® QuickAssist Adapter VFs (bound to the userspace driver) is running. This enables the scheduling of pods requesting this device. To check the number of devices available on the Edge Node from Edge Controller, run: +As part of the OpenNESS Ansible automation, a K8s SRIOV device plugin to orchestrate the Intel® QuickAssist Adapter VFs (bound to the userspace driver) is deployed and running. This enables the scheduling of pods requesting this device. To check the number of devices available on the Edge Node from Edge Controller, run: ```shell kubectl get node $(hostname) -o json | jq '.status.allocatable' @@ -91,7 +96,7 @@ kubectl get node $(hostname) -o json | jq '.status.allocatable' "qat.intel.com/generic": "48" ``` -To request the device as a resource in the pod, add the request for the resource into the pod specification file by specifying its name and the amount of resources required. If the resource is not available or the amount of resources requested is greater than the number of resources available, the pod status will be “Pending” until the resource is available. +To request the QAT VFs as a resource in the pod, add the request for the resource into the pod specification file by specifying its name and the amount of resources required. If the resource is not available or the amount of resources requested is greater than the number of resources available, the pod status will be “Pending” until the resource is available. A sample pod requesting the Intel® QuickAssist Adapter VF may look like this: @@ -124,9 +129,24 @@ Once the pod is in the 'Running' state, check that the device was allocated to t kubectl exec -it test -- ls /dev kubectl exec -it test -- printenv | grep QAT ``` +Sample output: +```shell +[...] +crw------- 1 root root 241, 18 Mar 22 14:11 uio18 +crw------- 1 root root 241, 39 Mar 22 14:11 uio39 +crw------- 1 root root 241, 46 Mar 22 14:11 uio46 +crw------- 1 root root 241, 8 Mar 22 14:11 uio8 +[...] +``` +```shell +QAT3=0000:1e:02.6 +QAT2=0000:1c:01.2 +QAT1=0000:1e:01.7 +QAT0=0000:1a:02.0 +``` To check the number of devices currently allocated to pods, run (and search for 'Allocated Resources'): -``` +```shell kubectl describe node $(hostname) ``` From cdd1eb4635a5c7de406fdb499e76621ab1e1875b Mon Sep 17 00:00:00 2001 From: lukaszXlesiecki Date: Tue, 23 Mar 2021 11:13:41 +0100 Subject: [PATCH 51/89] Revert "Handle Review" This reverts commit 6b8c5c681eb7b11700a8ec6d89c89618ce47d772. --- .../openness-qat.md | 60 +++++++------------ 1 file changed, 20 insertions(+), 40 deletions(-) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-qat.md b/doc/building-blocks/enhanced-platform-awareness/openness-qat.md index 5e239019..f60571f7 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-qat.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-qat.md @@ -2,13 +2,14 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) 2020 Intel Corporation ``` - + # Using Intel® QuickAssist Adapter in OpenNESS: Resource Allocation, and Configuration - [Overview](#overview) -- [Intel® QuickAssist Adapter FlexRAN Host Interface Overview](#Intel®-QuickAssist-Adapter-CU/DU-Host-Interface-Overview) -- [Using the Intel® QuickAssist Adapter on OpenNESS](#using-the-intel®-quicksssist-adapter-on-OpenNESS) - - [Intel® QuickAssist Adapter Ansible Installation for OpenNESS Network Edge](#intel®-quickassist-adapter-for-openness-network-edge) - - [OpenNESS Experience Kit](#openness-experience-kit) +- [Intel QuickAssist Adapter CU/DU Host Interface Overview](#intel-quickassist-adapter-cudu-host-interface-overview) +- [Intel QuickAssist Adapter Device Plugin Deployment with Kubernetes\* for CU/DU](#intel-quickassist-adapter-device-plugin-deployment-with-kubernetes-for-cudu) +- [Using the Intel QuickAssist Adapter on OpenNESS](#using-the-intel-quickassist-adapter-on-openness) + - [Intel QuickAssist Adapter for OpenNESS Network Edge](#intel-quickassist-adapter-for-openness-network-edge) + - [Converged Edge Experience Kits (CEEK)](#converged-edge-experience-kits-ceek) - [Requesting Resources and Running Pods for OpenNESS Network Edge](#requesting-resources-and-running-pods-for-openness-network-edge) - [Reference](#reference) @@ -36,16 +37,16 @@ Intel® QuickAssist Adapter benefits include: For more information, see product brief in [Intel® QuickAssist Adapter](https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/quickassist-adapter-8960-8970-brief.pdf). -This document explains how the qat.intel.com/generic resource can be used on the Open Network Edge Services Software (OpenNESS) platform for accelerating network functions and edge application workloads. We use the Intel® QuickAssist Adapter to accelerate the LTE/5G encryption tasks in the CU/DU. +This document explains how the Intel® QuickAssist (QAT) device plugin is enabled and used on the Open Network Edge Services Software (OpenNESS) platform for accelerating network functions and edge application workloads. The Intel® QuickAssist Adapter is used to accelerate the LTE/5G encryption tasks in the CU/DU. -## Intel® QuickAssist Adapter CU/DU Host Interface Overview +## Intel QuickAssist Adapter CU/DU Host Interface Overview Intel® QuickAssist Adapter used in the CU/DU solution exposes the following Physical Functions (PF) to the CPU host: - Three interfaces, that can provide 16 Virtual Functions each. -## Intel® QuickAssist Adapter Device Plugin Deployment with Kubernetes\* for CU/DU -CU/DU aplications use the qat.intel.com/generic resources from the Intel® QuickAssist Adapter using POD resource allocation and the Kubernetes\* device plugin framework. Kubernetes* provides a device plugin framework that is used to advertise system hardware resources to the Kubelet. Instead of customizing the code for Kubernetes* (K8s) itself, vendors can implement a device plugin that can be deployed either manually or as a DaemonSet. The targeted devices include GPUs, high-performance NICs, FPGAs, InfiniBand\* adapters, and other similar computing resources that may require vendor-specific initialization and setup. +## Intel QuickAssist Adapter Device Plugin Deployment with Kubernetes\* for CU/DU +CU/DU applications use the `qat.intel.com/generic` resources from the Intel® QuickAssist Adapter using POD resource allocation and the Kubernetes\* device plugin framework. Kubernetes* provides a device plugin framework that is used to advertise system hardware resources to the Kubelet. Instead of customizing the code for Kubernetes* (K8s) itself, vendors can implement a device plugin that can be deployed either manually or as a DaemonSet. The targeted devices include GPUs, high-performance NICs, FPGAs, InfiniBand\* adapters, and other similar computing resources that may require vendor-specific initialization and setup. -## Using the Intel® QuickAssist Adapter on OpenNESS +## Using the Intel QuickAssist Adapter on OpenNESS Further sections provide instructions on how to use the Intel® QuickAssist Adapter features: configuration and accessing from an application on the OpenNESS Network Edge. When the Intel® QuickAssist Adapter is available on the Edge Node platform it exposes three Root I/O Virtualization (SRIOV) Physical Functions (PF) devices which can be used to create Virtual Functions. To take advantage of this functionality for a cloud-native deployment, the PF (Physical Function) of the device must be bound to the DPDK IGB_UIO userspace driver to create several VFs (Virtual Functions). Once the VFs are created, they must also be bound to a DPDK userspace driver to allocate them to specific K8s pods running the vRAN workload. @@ -57,27 +58,21 @@ The full pipeline of preparing the device for workload deployment and deploying - Queue configuration of QAT's PFs/VFs. - Binding QAT's PFs/VFs to igb_uio driver. -### Intel® QuickAssist Adapter for OpenNESS Network Edge -To run the OpenNESS package with Intel® QuickAssist Adapter Device Plugin functionality, the feature needs to be enabled on both Edge Controller and Edge Node. It can be deployed by setting the following variable in the flavor or *group_vars/all* file: +### Intel QuickAssist Adapter for OpenNESS Network Edge +To run the OpenNESS package with Intel® QuickAssist Adapter Device Plugin functionality, the feature needs to be enabled on both Edge Controller and Edge Node. It can be deployed by setting the following variable in the Converged Edge Experience Kits: ```yaml qat_device_plugin_enable: true ``` -#### OpenNESS Experience Kit -To enable Intel® QuickAssist Adapter Device Plugin support from OEK, SRIOV must be enabled in OpenNESS: +#### Converged Edge Experience Kits (CEEK) +To enable Intel® QuickAssist Adapter Device Plugin support from CEEK, SRIOV must be enabled in OpenNESS: ```yaml kubernetes_cnis: -- +-
- sriov ``` ---- -**NOTE** -`sriov` cannot be the primary CNI. - ---- - -Intel® QuickAssist Adapter Device Plugin is enabled by default in the `cera_5g_on_prem` flavor: +It's enabled by default in the `cera_5g_on_prem` flavor: After a successful deployment, the following pods will be available in the cluster: ```shell @@ -88,7 +83,7 @@ intel-qat-plugin-dl42c 1/1 Running 0 7d9h ``` ### Requesting Resources and Running Pods for OpenNESS Network Edge -As part of the OpenNESS Ansible automation, a K8s SRIOV device plugin to orchestrate the Intel® QuickAssist Adapter VFs (bound to the userspace driver) is deployed and running. This enables the scheduling of pods requesting this device. To check the number of devices available on the Edge Node from Edge Controller, run: +As part of the OpenNESS Ansible automation, a K8s SRIOV device plugin to orchestrate the Intel® QuickAssist Adapter VFs (bound to the userspace driver) is running. This enables the scheduling of pods requesting this device. To check the number of devices available on the Edge Node from Edge Controller, run: ```shell kubectl get node $(hostname) -o json | jq '.status.allocatable' @@ -96,7 +91,7 @@ kubectl get node $(hostname) -o json | jq '.status.allocatable' "qat.intel.com/generic": "48" ``` -To request the QAT VFs as a resource in the pod, add the request for the resource into the pod specification file by specifying its name and the amount of resources required. If the resource is not available or the amount of resources requested is greater than the number of resources available, the pod status will be “Pending” until the resource is available. +To request the device as a resource in the pod, add the request for the resource into the pod specification file by specifying its name and the amount of resources required. If the resource is not available or the amount of resources requested is greater than the number of resources available, the pod status will be “Pending” until the resource is available. A sample pod requesting the Intel® QuickAssist Adapter VF may look like this: @@ -129,24 +124,9 @@ Once the pod is in the 'Running' state, check that the device was allocated to t kubectl exec -it test -- ls /dev kubectl exec -it test -- printenv | grep QAT ``` -Sample output: -```shell -[...] -crw------- 1 root root 241, 18 Mar 22 14:11 uio18 -crw------- 1 root root 241, 39 Mar 22 14:11 uio39 -crw------- 1 root root 241, 46 Mar 22 14:11 uio46 -crw------- 1 root root 241, 8 Mar 22 14:11 uio8 -[...] -``` -```shell -QAT3=0000:1e:02.6 -QAT2=0000:1c:01.2 -QAT1=0000:1e:01.7 -QAT0=0000:1a:02.0 -``` To check the number of devices currently allocated to pods, run (and search for 'Allocated Resources'): -```shell +``` kubectl describe node $(hostname) ``` From 87d753ede0d755f9627e7fc2f764e389c037dde6 Mon Sep 17 00:00:00 2001 From: lukaszXlesiecki <67093702+lukaszXlesiecki@users.noreply.github.com> Date: Tue, 23 Mar 2021 11:28:03 +0100 Subject: [PATCH 52/89] Handle Review --- .../openness-qat.md | 33 +++++++++++++++---- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-qat.md b/doc/building-blocks/enhanced-platform-awareness/openness-qat.md index f60571f7..e88d0113 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-qat.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-qat.md @@ -59,7 +59,7 @@ The full pipeline of preparing the device for workload deployment and deploying - Binding QAT's PFs/VFs to igb_uio driver. ### Intel QuickAssist Adapter for OpenNESS Network Edge -To run the OpenNESS package with Intel® QuickAssist Adapter Device Plugin functionality, the feature needs to be enabled on both Edge Controller and Edge Node. It can be deployed by setting the following variable in the Converged Edge Experience Kits: +To run the OpenNESS package with Intel® QuickAssist Adapter Device Plugin functionality, the feature needs to be enabled on both Edge Controller and Edge Node. It can be deployed by setting the following variable in the flavor or *group_vars/all* file in Converged Edge Experience Kits: ```yaml qat_device_plugin_enable: true ``` @@ -68,11 +68,17 @@ qat_device_plugin_enable: true To enable Intel® QuickAssist Adapter Device Plugin support from CEEK, SRIOV must be enabled in OpenNESS: ```yaml kubernetes_cnis: --
+- - sriov ``` +--- +**NOTE** -It's enabled by default in the `cera_5g_on_prem` flavor: +`sriov` cannot be the primary CNI. + +--- + +Intel® QuickAssist Adapter Device Plugin is enabled by default in the `cera_5g_on_prem` flavor: After a successful deployment, the following pods will be available in the cluster: ```shell @@ -83,7 +89,7 @@ intel-qat-plugin-dl42c 1/1 Running 0 7d9h ``` ### Requesting Resources and Running Pods for OpenNESS Network Edge -As part of the OpenNESS Ansible automation, a K8s SRIOV device plugin to orchestrate the Intel® QuickAssist Adapter VFs (bound to the userspace driver) is running. This enables the scheduling of pods requesting this device. To check the number of devices available on the Edge Node from Edge Controller, run: +As part of the OpenNESS Ansible automation, a K8s SRIOV device plugin to orchestrate the Intel® QuickAssist Adapter VFs (bound to the userspace driver) is deployed and running. This enables the scheduling of pods requesting this device. To check the number of devices available on the Edge Node from Edge Controller, run: ```shell kubectl get node $(hostname) -o json | jq '.status.allocatable' @@ -91,7 +97,7 @@ kubectl get node $(hostname) -o json | jq '.status.allocatable' "qat.intel.com/generic": "48" ``` -To request the device as a resource in the pod, add the request for the resource into the pod specification file by specifying its name and the amount of resources required. If the resource is not available or the amount of resources requested is greater than the number of resources available, the pod status will be “Pending” until the resource is available. +To request the QAT VFs as a resource in the pod, add the request for the resource into the pod specification file by specifying its name and the amount of resources required. If the resource is not available or the amount of resources requested is greater than the number of resources available, the pod status will be “Pending” until the resource is available. A sample pod requesting the Intel® QuickAssist Adapter VF may look like this: @@ -124,9 +130,24 @@ Once the pod is in the 'Running' state, check that the device was allocated to t kubectl exec -it test -- ls /dev kubectl exec -it test -- printenv | grep QAT ``` +Sample output: +```shell +[...] +crw------- 1 root root 241, 18 Mar 22 14:11 uio18 +crw------- 1 root root 241, 39 Mar 22 14:11 uio39 +crw------- 1 root root 241, 46 Mar 22 14:11 uio46 +crw------- 1 root root 241, 8 Mar 22 14:11 uio8 +[...] +``` +```shell +QAT3=0000:1e:02.6 +QAT2=0000:1c:01.2 +QAT1=0000:1e:01.7 +QAT0=0000:1a:02.0 +``` To check the number of devices currently allocated to pods, run (and search for 'Allocated Resources'): -``` +```shell kubectl describe node $(hostname) ``` From 0d8c0b481ee30b939421c22d527a664fd10816bc Mon Sep 17 00:00:00 2001 From: RafalX Mical Date: Tue, 23 Mar 2021 12:31:52 +0100 Subject: [PATCH 53/89] Update all docs with using deploy.py and inventory.yml files. --- .../openness-network-edge-vm-support.md | 4 +-- .../using-openness-cnca.md | 4 +-- doc/building-blocks/emco/openness-emco.md | 19 +++++++++--- .../openness-acc100.md | 8 +++-- .../openness-dedicated-core.md | 31 ++++++++++++++++--- .../openness-fpga.md | 7 ++--- doc/flavors.md | 14 ++++----- .../controller-edge-node-setup.md | 12 +++---- .../ran/openness_xran.md | 7 ++--- 9 files changed, 69 insertions(+), 37 deletions(-) diff --git a/doc/applications-onboard/openness-network-edge-vm-support.md b/doc/applications-onboard/openness-network-edge-vm-support.md index 1e0ba28e..3566bc86 100644 --- a/doc/applications-onboard/openness-network-edge-vm-support.md +++ b/doc/applications-onboard/openness-network-edge-vm-support.md @@ -108,9 +108,9 @@ The KubeVirt role responsible for bringing up KubeVirt components is enabled by kubevirt_default_pv_vol_name: vol kubevirt_pv_vm_max_num: 64 ``` - 2. Set up other common configurations for the cluster and enable other EPA features as needed and deploy the cluster using the `deploy_ne.sh -f ` script in the OpenNESS experience kit top-level directory. + 2. Set up other common configurations for the cluster and enable other EPA features as needed and deploy the cluster using the `deploy.py` script in the Converged Edge Experience kits top-level directory. -Note: Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/specs/blob/master/doc/flavors.md). + > **NOTE**: for more details about deployment please refer to [CEEK](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. 3. On successful deployment, the following pods will be in a running state: ```shell diff --git a/doc/applications-onboard/using-openness-cnca.md b/doc/applications-onboard/using-openness-cnca.md index d8696d39..a812c2b3 100644 --- a/doc/applications-onboard/using-openness-cnca.md +++ b/doc/applications-onboard/using-openness-cnca.md @@ -118,10 +118,10 @@ OpenNESS provides ansible scripts for setting up NGC components for two scenario ### Bring-up of NGC components in Network Edge mode 1. If the Edge controller is not yet deployed through openness-experience-kit then: - Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `inventory/default/group_vars/all/10-default.yml` before running `deploy_ne.sh -f controller` or `deploy_ne.sh -f ` as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/network-edge/controller-edge-node-setup.md) document, **otherwise skip this step.** + Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `inventory/default/group_vars/all/10-default.yml` before running `deploy.py` as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/network-edge/controller-edge-node-setup.md) document, **otherwise skip this step.** 2. If Edge-controller is already deployed (but without enabling ngc role) and at a later stage you want to enable NGC components on edge-controller then, - Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `inventory/default/group_vars/all/10-default.yml` and then re-run `deploy_ne.sh -f controller` as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/network-edge/controller-edge-node-setup.md) document. + Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `inventory/default/group_vars/all/10-default.yml` and then re-run `deploy.py` with specified `limit: controller` variable in `inventory.yml` (define only one cluster on which the role should be enabled) as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/network-edge/controller-edge-node-setup.md) document. **NOTE:** In addition to the OpenNESS controller bringup, by enabling the ngc rule the playbook scripts performs: Clone epcforedge repo from github, builds AF, NEF and OAM micro services, generates certificate files, creates docker images and starts PODs. diff --git a/doc/building-blocks/emco/openness-emco.md b/doc/building-blocks/emco/openness-emco.md index 01db5488..4b90b017 100644 --- a/doc/building-blocks/emco/openness-emco.md +++ b/doc/building-blocks/emco/openness-emco.md @@ -301,11 +301,22 @@ Steps for EMCO Authentication and Authorization Setup: - Apply Authentication and Authorization Policies ### EMCO Installation With OpenNESS Flavor -EMCO supports [multiple deployment options](https://github.com/otcshare/EMCO/tree/main/deployments). [OpenNESS Experience Kit](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md) offers the `central_orchestrator` flavor to automate EMCO build and deployment as mentioned below. +EMCO supports [multiple deployment options](https://github.com/otcshare/EMCO/tree/main/deployments). [Converged Edge Experience Kits](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md) offers the `central_orchestrator` flavor to automate EMCO build and deployment as mentioned below. - The first step is to prepare one server environment which needs to fulfill the [preconditions](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/controller-edge-node-setup.md#preconditions). -- Then place the EMCO server hostname in `[controller_group]` group in `inventory/default/inventory.ini` file of openness-experience-kit. -> **NOTE**: `[edgenode_group]` and `[edgenode_vca_group]` are not required for configuration, since EMCO micro services just need to be deployed on the Kubernetes* control plane node. -- Run script `./deploy_ne.sh -f central_orchestrator`. Deployment should complete successfully. In the flavor, harbor registry is deployed to provide images services as well. +- Place the EMCO server hostname in `controller_group/hosts/ctrl.openness.org:` dictionary in `inventory.yml` file of converged-edge-experience-kit. +- Update the `inventory.yaml` file by setting the deployment flavor as `central_orchestrator` + ```yaml + --- + all: + vars: + cluster_name: central_orchestrator_cluster + flavor: central_orchestrator + ... + ``` +> **NOTE**: `edgenode_group:` and `edgenode_vca_group:` are not required for configuration, since EMCO micro services just need to be deployed on the Kubernetes* control plane node. + +> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. +- Run script `python3 deploy.py`. Deployment should complete successfully. In the flavor, harbor registry is deployed to provide images services as well. ```shell # kubectl get pods -n emco diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md b/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md index d37e3aea..b4b598ae 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md @@ -79,9 +79,9 @@ The full pipeline of preparing the device for workload deployment and deploying - Simple sample BBDEV application to validate the pipeline (i.e., SRIOV creation - Queue configuration - Device orchestration - Pod deployment): Script delivery and instructions to build Docker image for sample application delivered as part of Edge Apps package. ### ACC100 (FEC) Ansible Installation for OpenNESS Network Edge -To run the OpenNESS package with ACC100 (FEC) functionality, the feature needs to be enabled on both Edge Controller and Edge Node. It can be deployed via the ["flexran" flavor of OpenNESS](https://github.com/otcshare/openness-experience-kits/tree/master/flavors/flexran). +To run the OpenNESS package with ACC100 (FEC) functionality, the feature needs to be enabled on both Edge Controller and Edge Node. It can be deployed via the ["flexran" flavor of OpenNESS](https://github.com/otcshare/converged-edge-experience-kits/tree/master/flavors/flexran). -#### OpenNESS Experience Kit +#### Converged Edge Experience Kit To enable ACC100 support from OEK, SRIOV must be enabled in OpenNESS: ```yaml # flavors/flexran/all.yml @@ -106,7 +106,9 @@ acc100_userspace_vf: vf_driver: "vfio-pci" ``` -Run setup script `deploy_ne.sh -f flexran`. +Run setup script `deploy.py` with `flexran` flavor defined in `inventory.yml` for specific cluster. + +> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. After a successful deployment, the following pods will be available in the cluster: ```shell diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md index d758afc0..724eb10c 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md @@ -66,19 +66,40 @@ CMK can be deployed using a [Helm chart](https://helm.sh/). The CMK Helm chart u # CMK - Comma separated list of nodes' hostnames cmk_host_list: "node01,node02" ``` -2. Deploy the controller with `deploy_ne.sh -f controller`. +2. Update the `inventory.yaml` file with specified flavor and limit set to `controller` + ```yaml + --- + all: + vars: + cluster_name: + flavor: + ... + limit: controller + ... + ``` +3. Deploy the controller with `deploy.py`. +> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. **Edge Node / Kubernetes node** 1. In `inventory/default/group_vars/all/10-open.yml`, change `ne_cmk_enable` to “true”. 2. To change core isolation set isolated cores in `inventory/default/group_vars/edgenode_group/10-default.yml` as `additional_grub_params` for your node e.g. in `inventory/default/group_vars/edgenode_group/10-default.yml`, set `additional_grub_params: "isolcpus=1-10,49-58"`. -3. Deploy the node with `deploy_ne.sh -f node`. +3. Update the `inventory.yaml` file with specified flavor and limit set to `node` + ```yaml + --- + all: + vars: + cluster_name: + flavor: + ... + limit: node + ... + ``` +4. Deploy the node with `deploy.py`. +> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. The environment setup can be validated using steps from the [CMK operator manual](https://github.com/intel/CPU-Manager-for-Kubernetes/blob/master/docs/operator.md#validating-the-environment). -**Note:** -Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/specs/blob/master/doc/flavors.md). - ### Usage The following example creates a `Pod` that can be used to deploy an application pinned to a core: diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md b/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md index a00f9079..b05d5d9f 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md @@ -117,12 +117,11 @@ fpga_userspace_vf: The following packages need to be placed into specific directories for the feature to work: -1. The OPAE package `OPAE_SDK_1.3.7-5_el7.zip` needs to be placed inside the `openness-experience-kits/opae_fpga` directory. The package can be obtained as part of Intel® FPGA PAC N3000 OPAE beta release. To obtain the package, contact your Intel representative. +1. The OPAE package `OPAE_SDK_1.3.7-5_el7.zip` needs to be placed inside the `converged-edge-experience-kits/opae_fpga` directory. The package can be obtained as part of Intel® FPGA PAC N3000 OPAE beta release. To obtain the package, contact your Intel representative. -Run setup script `deploy_ne.sh -f `. +Run setup script `deploy.py` with defined `inventory.yml` file. -**Note:** -Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/specs/blob/master/doc/flavors.md). +> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. After a successful deployment, the following pods will be available in the cluster (CNI pods may vary depending on deployment): ```shell diff --git a/doc/flavors.md b/doc/flavors.md index 87870202..5b458835 100644 --- a/doc/flavors.md +++ b/doc/flavors.md @@ -37,7 +37,7 @@ The following are steps to install this flavor: ``` 3. Run CEEK deployment script: ```shell - $ sudo python3 deploy.py + $ python3 deploy.py ``` This deployment flavor enables the following ingredients: @@ -69,7 +69,7 @@ The following are steps to install this flavor: ``` 3. Run CEEK deployment script: ```shell - $ sudo python3 deploy.py + $ python3 deploy.py ``` > **NOTE:** The video analytics services integrates with the OpenNESS service mesh when the flag `ne_istio_enable: true` is set. @@ -111,7 +111,7 @@ The following are steps to install this flavor: 3. Run CEEK deployment script: ```shell - $ sudo python3 deploy.py + $ python3 deploy.py ``` > **NOTE:** At the time of writing this document, *Weave Net*\* is the only supported CNI for network edge deployments involving VCAC-A acceleration. The `weavenet` CNI is automatically selected by the *media-analytics-vca*. @@ -142,7 +142,7 @@ The following are steps to install this flavor: ``` 3. Run CEEK deployment script: ```shell - $ sudo python3 deploy.py + $ python3 deploy.py ``` This deployment flavor enables the following ingredients: @@ -167,7 +167,7 @@ The following are steps to install this flavor: ``` 3. Run CEEK deployment script: ```shell - $ sudo python3 deploy.py + $ python3 deploy.py ``` This deployment flavor enables the following ingredients: @@ -215,7 +215,7 @@ The following are steps to install this flavor: ``` 3. Run CEEK deployment script: ```shell - $ sudo python3 deploy.py + $ python3 deploy.py ``` This deployment flavor enables the following ingredients: @@ -242,7 +242,7 @@ The following are steps to install this flavor: ``` 3. Run CEEK deployment script: ```shell - $ sudo python3 deploy.py + $ python3 deploy.py ``` This deployment flavor enables the following ingredients: diff --git a/doc/getting-started/network-edge/controller-edge-node-setup.md b/doc/getting-started/network-edge/controller-edge-node-setup.md index fc629b7e..c9da63d6 100644 --- a/doc/getting-started/network-edge/controller-edge-node-setup.md +++ b/doc/getting-started/network-edge/controller-edge-node-setup.md @@ -130,22 +130,22 @@ To get started with deploying an OpenNESS edge cluster using the Converged Edge 4. Get the deployment started by executing the deploy script ```shell - $ sudo python3 deploy.py + $ python3 deploy.py ``` > **NOTE**: This script parses the values provided in the inventory.yml file. > **NOTE**: If want to enforce deployment termination in case of any failure, use arguments `-f` or `--any-errors-fatal`, e.g.: > ```shell - > $ sudo python3 deploy.py --any-errors-fatal + > $ python3 deploy.py --any-errors-fatal > ``` 5. To cleanup an existing deployment, execute with `-c` or `--clean`, e.g: ```shell - $ sudo python3 deploy.py --clean + $ python3 deploy.py --clean ``` > **NOTE**: If it is intended to do the cleanup manually, i.e: one cluster at a time, update the `inventory.yml` with only the intended cluster configuration -For an initial installation, `deploy_ne.sh controller` must be run before `deploy_ne.sh nodes`. During the initial installation, the hosts may reboot. After reboot, the deployment script that was last run should be run again. +For an initial installation, `deploy.py` with `all/vars/limit: controller` must be run before `deploy.py` with `all/vars/limit: nodes`. During the initial installation, the hosts may reboot. After reboot, the deployment script that was last run should be run again. ## Network Edge playbooks @@ -164,7 +164,7 @@ For example, when installing Docker\*, the RPM repository is added and Docker is To execute cleanup procedure ```shell -$ sudo python3 deploy.py --clean +$ python3 deploy.py --clean ``` > **NOTE**: There may be leftovers created by the installed software. For example, DPDK and Golang installations, found in `/opt`, are not rolled back. @@ -228,7 +228,7 @@ To deploy Network Edge in a single-node cluster scenario, follow the steps below 4. Single-node cluster can be deployed by running command: ```shell - $ sudo python3 deploy.py + $ python3 deploy.py ``` ## Harbor registry diff --git a/doc/reference-architectures/ran/openness_xran.md b/doc/reference-architectures/ran/openness_xran.md index f67c4e0b..15cc2b59 100644 --- a/doc/reference-architectures/ran/openness_xran.md +++ b/doc/reference-architectures/ran/openness_xran.md @@ -541,12 +541,11 @@ Example: ``` ### Deploy Openness NE -Run the deployment script: +Define the `inventory.yml` and then run the deployment script: ```shell - ./deploy_ne.sh -f + python3 deploy.py ``` -**Note:** -Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/specs/blob/master/doc/flavors.md). +> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. Check the `/proc/cmd` output. It should look similar to: From 31d74f1ed0c162fc44ac995b4ad470962290b2d0 Mon Sep 17 00:00:00 2001 From: RafalX Mical Date: Tue, 23 Mar 2021 12:41:16 +0100 Subject: [PATCH 54/89] Small updates. --- doc/getting-started/network-edge/controller-edge-node-setup.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/getting-started/network-edge/controller-edge-node-setup.md b/doc/getting-started/network-edge/controller-edge-node-setup.md index c9da63d6..7661e9aa 100644 --- a/doc/getting-started/network-edge/controller-edge-node-setup.md +++ b/doc/getting-started/network-edge/controller-edge-node-setup.md @@ -133,6 +133,7 @@ To get started with deploying an OpenNESS edge cluster using the Converged Edge $ python3 deploy.py ``` > **NOTE**: This script parses the values provided in the inventory.yml file. + > **NOTE**: If want to enforce deployment termination in case of any failure, use arguments `-f` or `--any-errors-fatal`, e.g.: > ```shell > $ python3 deploy.py --any-errors-fatal @@ -253,7 +254,7 @@ The following steps are processed by openness-experience-kits during the Harbor * Download Harbor Helm Charts on the Kubernetes Control plane Node. * Check whether huge pages is enabled and templates values.yaml file accordingly. -* Create namespace and disk PV for Harbor Services (The default disk PV/PVC total size is 20G. The values can be configurable in the `roles/kubernetes/harbor_registry/controlplane/defaults/main.yaml`). +* Create namespace and disk PV for Harbor Services (The default disk PV/PVC total size is 20G. The values can be configured in the `roles/kubernetes/harbor_registry/controlplane/defaults/main.yaml`). * Install Harbor on the control plane node using the Helm Charts (The CA crt will be generated by Harbor itself). * Create the new project - ```intel``` for OpenNESS microservices, Kurbernetes enhanced add-on images storage. * Docker login the Harbor Registry, thus enable pulling, pushing and tag images with the Harbor Registry From e5ff782484f84b1c752ed9ebf27869fdabf96f4f Mon Sep 17 00:00:00 2001 From: Karina Murawko-Wisniewska <48431435+i-karina@users.noreply.github.com> Date: Tue, 23 Mar 2021 12:53:32 +0100 Subject: [PATCH 55/89] Flavor service-mesh removal (#411) --- doc/applications/openness_service_mesh.md | 25 +++++++++++---- doc/flavors.md | 37 +---------------------- 2 files changed, 20 insertions(+), 42 deletions(-) diff --git a/doc/applications/openness_service_mesh.md b/doc/applications/openness_service_mesh.md index 0450e3d4..8e02d4f6 100644 --- a/doc/applications/openness_service_mesh.md +++ b/doc/applications/openness_service_mesh.md @@ -19,7 +19,7 @@ Copyright (c) 2020 Intel Corporation - [Circuit Breaker](#circuit-breaker) - [Prometheus, Grafana & Kiali integration](#prometheus-grafana--kiali-integration) - [Getting Started](#getting-started) - - [Enabling Service Mesh through the Service Mesh Flavor](#enabling-service-mesh-through-the-service-mesh-flavor) + - [Enabling Service Mesh through enabling the Service Mesh Role](#enabling-service-mesh-through-enabling-the-service-mesh-role) - [Enabling Service Mesh with the Media Analytics Flavor](#enabling-service-mesh-with-the-media-analytics-flavor) - [References](#references) @@ -419,15 +419,28 @@ _Figure - Istio Telemetry with Grafana_ ## Getting Started -### Enabling Service Mesh through the Service Mesh Flavor +### Enabling Service Mesh through enabling the Service Mesh Role -Istio service mesh can be deployed with OpenNESS using the OEK through the pre-defined *service-mesh* flavor as described in [Service Mesh Flavor](../flavors.md#service-mesh-flavor) section. Istio is installed with `default` profile by default (for Istio installation profiles refer to: https://istio.io/latest/docs/setup/additional-setup/config-profiles/). -The Istio management console, [Kiali](https://kiali.io/), is deployed alongside Istio with the default credentials: +Istio service mesh can be deployed with OpenNESS using the OEK through the defined istio role. Istio role is enabled with setting parameter `ne_istio_enable: true`. Istio is installed with `default` profile by default (for Istio installation profiles refer to: https://istio.io/latest/docs/setup/additional-setup/config-profiles/). +The Istio management console, [Kiali](https://kiali.io/), is deployed alongside Istio with the default credentials: * Username: `admin` * Nodeport set to `30001` -To get the randomly generated password run the following command on Kubernetes controller: +The above settings can be customized by adjusting following parameters in the `inventory/default/group_vars/all/10-default.yml`: + +```yml +# Istio deployment profile possible values: default, demo, minimal, remote +istio_deployment_profile: "default" +# Istio is deployed to "default" namespace in the cluster +istio_deployment_namespace: "default" +# Kiali  +istio_kiali_username: "admin" +istio_kiali_password: "{{ lookup('password', '/dev/null length=16') }}" +istio_kiali_nodeport: 30001 +``` + +To get the randomly generated password run the following command on Kubernetes controller: `kubectl get secrets/kiali -n istio-system -o json | jq -r '.data.passphrase' | base64 -d` Prometheus and Grafana are deployed in the OpenNESS platform as part of the telemetry role and are integrated with the Istio service mesh. @@ -468,8 +481,8 @@ Status: Active ``` Users can change the namespace labeled with istio label using the parameter `istio_deployment_namespace` -* in `flavors/service-mesh/all.yml` for deployment with service-mesh flavor * in `flavors/media-analytics/all.yml` for deployment with media-analytics flavor +* in `inventory/default/group_vars/all/10-default.yml` for deployment with any flavor (and istio role enabled) > **NOTE**: The default OpenNESS network policy applies to pods in the `default` namespace and blocks all ingress traffic. Users must remove the default policy and apply custom network policy when deploying applications in the `default` namespace. Refer to the [Kubernetes NetworkPolicies](https://github.com/otcshare/specs/blob/master/doc/applications-onboard/network-edge-applications-onboarding.md#applying-kubernetes-network-policies) for an example policy allowing ingress traffic from `192.168.1.0/24` subnet on a specific port. diff --git a/doc/flavors.md b/doc/flavors.md index de913c13..b8bd8e36 100644 --- a/doc/flavors.md +++ b/doc/flavors.md @@ -78,6 +78,7 @@ Steps to install this flavor are as follows: > **NOTE:** The video analytics services integrates with the OpenNESS service mesh when the flag `ne_istio_enable: true` is set. > **NOTE:** Kiali management console username can be changed by editing the variable `istio_kiali_username`. By default `istio_kiali_password` is randomly generated and can be retirieved by running `kubectl get secrets/kiali -n istio-system -o json | jq -r '.data.passphrase' | base64 -d` on the Kubernetes controller. +> **NOTE:** Istio deployment can be customized using parameters in the `flavor/media-analytics/all.yaml` (parameters set in the flavor file override default parameters set in `inventory/default/group_vars/all/10-default.yml`). This deployment flavor enables the following ingredients: * Node Feature Discovery @@ -186,39 +187,3 @@ This deployment flavor enables the following ingredients: * Harbor Registry * The default Kubernetes CNI: `calico` * EMCO services - -## Reference Service Mesh - -The pre-defined *service-mesh* deployment flavor installs the OpenNESS service mesh that is based on [Istio](https://istio.io/). - -> **NOTE**: When deploying Istio Service Mesh in VMs, a minimum of 8 CPU core and 16GB RAM must be allocated to each worker VM so that Istio operates smoothly - -Steps to install this flavor are as follows: -1. Configure OEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). -2. Run OEK deployment script: - ```shell - $ deploy_ne.sh -f service-mesh - ``` - -This deployment flavor enables the following ingredients: -* Node Feature Discovery -* The default Kubernetes CNI: `kube-ovn` -* Istio service mesh -* Kiali management console -* Telemetry - -> **NOTE:** Kiali management console username can be changed by editing the variable `istio_kiali_username`. By default `istio_kiali_password` is randomly generated and can be retirieved by running `kubectl get secrets/kiali -n istio-system -o json | jq -r '.data.passphrase' | base64 -d` on the Kubernetes controller. - -Following parameters in the flavor/all.yaml can be customize for Istio deployment: - -``` -# Istio deployment profile possible values: default, demo, minimal, remote -istio_deployment_profile: "default" - -# Kiali -istio_kiali_username: "admin" -istio_kiali_password: "{{ lookup('password', '/dev/null length=16') }}" -istio_kiali_nodeport: 30001 -``` - -> **NOTE:** If creating a customized flavor, the Istio service mesh installation can be included in the Ansible playbook by setting the flag `ne_istio_enable: true` in the flavor file. From fe9403b8c51fe95506cc7dc9ce741d78f1b39937 Mon Sep 17 00:00:00 2001 From: Patryk Matuszak <47594217+patrykxmatuszak@users.noreply.github.com> Date: Tue, 23 Mar 2021 13:26:45 +0100 Subject: [PATCH 56/89] Update pkgs versions in release notes (#424) --- openness_releasenotes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openness_releasenotes.md b/openness_releasenotes.md index 754b8e40..daed3a68 100644 --- a/openness_releasenotes.md +++ b/openness_releasenotes.md @@ -481,4 +481,4 @@ OpenNESS was tested on CentOS Linux release 7.9.2009 (Core) # Packages Version -Package: telemetry, cadvisor 0.36.0, grafana 7.0.3, prometheus 2.16.0, prometheus: node exporter 1.0.0-rc.0, golang 1.15, docker 20.10.2, kubernetes 1.20.0, dpdk 19.11, ovs 2.14.0, ovn 2.14.0, helm 3.0, kubeovn 1.5.2, flannel 0.13.0, calico 3.17.0, multus 3.6, sriov cni 2.3, nfd 0.6.0, cmk v1.4.1, TAS (from specific commit "a13708825e854da919c6fdf05d50753113d04831"), openssl 1.1.1i +Package: telemetry, cadvisor 0.37.5, grafana 7.4.2, prometheus 2.24.0, prometheus: node exporter 1.0.1, golang 1.16, docker 20.10.2, kubernetes 1.20.0, dpdk 19.11.1, ovs 2.14.0, ovn 2.14.0, helm 3.1.2, kubeovn 1.5.2, flannel 0.13.0, calico 3.17.0, multus 3.6, sriov cni 2.6, nfd 0.6.0, cmk v1.4.1, TAS (from specific commit "a13708825e854da919c6fdf05d50753113d04831"), openssl 1.1.1i From 94b8a16a338fe8c01982709da144f2754a2b3c14 Mon Sep 17 00:00:00 2001 From: Amr Mokhtar Date: Tue, 23 Mar 2021 12:57:32 +0000 Subject: [PATCH 57/89] minor updates --- doc/applications-onboard/using-openness-cnca.md | 4 ++-- .../openness-acc100.md | 16 ++++++++-------- doc/flavors.md | 8 ++++---- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/doc/applications-onboard/using-openness-cnca.md b/doc/applications-onboard/using-openness-cnca.md index a812c2b3..34f0a985 100644 --- a/doc/applications-onboard/using-openness-cnca.md +++ b/doc/applications-onboard/using-openness-cnca.md @@ -9,7 +9,7 @@ Copyright (c) 2019-2020 Intel Corporation - [Sample YAML LTE CUPS userplane configuration](#sample-yaml-lte-cups-userplane-configuration) - [5G NGC components bring up and Configuration using CNCA](#5g-ngc-components-bring-up-and-configuration-using-cnca) - [Network Edge mode](#network-edge-mode) - - [Bring up of NGC components in Network Edge mode](#bring-up-of-ngc-components-in-network-edge-mode) + - [Bring-up of NGC components in Network Edge mode](#bring-up-of-ngc-components-in-network-edge-mode) - [Configuring in Network Edge mode](#configuring-in-network-edge-mode-1) - [Edge Node services operations with 5G Core (through OAM interface)](#edge-node-services-operations-with-5g-core-through-oam-interface) - [Registration of UPF services associated with Edge-node with 5G Core](#registration-of-upf-services-associated-with-edge-node-with-5g-core) @@ -40,7 +40,7 @@ Available management with `kube-cnca` against LTE CUPS OAM agent are: 2. Deletion of LTE CUPS userplanes 3. Updating (patching) LTE CUPS userplanes -The `kube-cnca` plugin is installed automatically on the control plane during the installation phase of the [OpenNESS Experience Kit](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md). +The `kube-cnca` plugin is installed automatically on the control plane during the installation phase of the [Converged Edge Experience Kits](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md). In the following sections, a detailed explanation with examples is provided about the CNCA management. Creation of the LTE CUPS userplane is performed based on the configuration provided by the given YAML file. The YAML configuration should follow the provided sample YAML in [Sample YAML LTE CUPS userplane configuration](#sample-yaml-lte-cups-userplane-configuration) section. Use the `apply` command to post a userplane creation request onto Application Function (AF): diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md b/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md index c7ee4ba3..66dfa22c 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md @@ -5,11 +5,11 @@ Copyright (c) 2020 Intel Corporation # Using ACC100 eASIC in OpenNESS: Resource Allocation, and Configuration - [Overview](#overview) -- [Intel® vRAN Dedicated Accelerator ACC100 FlexRAN Host Interface Overview](#intel-vran-dedicated-accelerator-acc100-flexran-host-interface-overview) -- [Intel® vRAN Dedicated Accelerator ACC100 Orchestration and Deployment with Kubernetes\* for FlexRAN](#intel-vran-dedicated-accelerator-acc100-orchestration-and-deployment-with-kubernetes-for-flexran) -- [Using the Intel® vRAN Dedicated Accelerator ACC100 on OpenNESS](#using-the-intel-vran-dedicated-accelerator-acc100-on-openness) +- [Intel vRAN Dedicated Accelerator ACC100 FlexRAN Host Interface Overview](#intel-vran-dedicated-accelerator-acc100-flexran-host-interface-overview) +- [Intel vRAN Dedicated Accelerator ACC100 Orchestration and Deployment with Kubernetes\* for FlexRAN](#intel-vran-dedicated-accelerator-acc100-orchestration-and-deployment-with-kubernetes-for-flexran) +- [Using the Intel vRAN Dedicated Accelerator ACC100 on OpenNESS](#using-the-intel-vran-dedicated-accelerator-acc100-on-openness) - [ACC100 (FEC) Ansible Installation for OpenNESS Network Edge](#acc100-fec-ansible-installation-for-openness-network-edge) - - [OpenNESS Experience Kit](#openness-experience-kit) + - [Converged Edge Experience Kits](#converged-edge-experience-kits) - [FEC VF configuration for OpenNESS Network Edge](#fec-vf-configuration-for-openness-network-edge) - [Requesting Resources and Running Pods for OpenNESS Network Edge](#requesting-resources-and-running-pods-for-openness-network-edge) - [Verifying Application POD Access and Usage of FPGA on OpenNESS Network Edge](#verifying-application-pod-access-and-usage-of-fpga-on-openness-network-edge) @@ -51,7 +51,7 @@ This document explains how the ACC100 resource can be used on the Open Network E FlexRAN is a reference layer 1 pipeline of 4G eNb and 5G gNb on Intel® architecture. The FlexRAN reference pipeline consists of an L1 pipeline, optimized L1 processing modules, BBU pooling framework, cloud and cloud-native deployment support, and accelerator support for hardware offload. Intel® vRAN Dedicated Accelerator ACC100 card is used by FlexRAN to offload FEC (Forward Error Correction) for 4G and 5G. -## Intel® vRAN Dedicated Accelerator ACC100 FlexRAN Host Interface Overview +## Intel vRAN Dedicated Accelerator ACC100 FlexRAN Host Interface Overview Intel® vRAN Dedicated Accelerator ACC100 card used in the FlexRAN solution exposes the following physical functions to the CPU host: - One FEC interface that can be used of 4G or 5G FEC acceleration - The LTE FEC IP components have turbo encoder/turbo decoder and rate matching/de-matching @@ -59,14 +59,14 @@ Intel® vRAN Dedicated Accelerator ACC100 card used in the FlexRAN solution expo ![Intel® vRAN Dedicated Accelerator ACC100 support](acc100-images/acc100-diagram.png) -## Intel® vRAN Dedicated Accelerator ACC100 Orchestration and Deployment with Kubernetes\* for FlexRAN +## Intel vRAN Dedicated Accelerator ACC100 Orchestration and Deployment with Kubernetes\* for FlexRAN FlexRAN is a low-latency network function that implements the FEC. FlexRAN uses the FEC resources from the ACC100 using POD resource allocation and the Kubernetes\* device plugin framework. Kubernetes* provides a device plugin framework that is used to advertise system hardware resources to the Kubelet. Instead of customizing the code for Kubernetes* (K8s) itself, vendors can implement a device plugin that can be deployed either manually or as a DaemonSet. The targeted devices include GPUs, high-performance NICs, FPGAs, InfiniBand\* adapters, and other similar computing resources that may require vendor-specific initialization and setup. ![Intel® vRAN Dedicated Accelerator ACC100 Orchestration and deployment with OpenNESS Network Edge for FlexRAN](acc100-images/acc100-k8s.png) _Figure - Intel® vRAN Dedicated Accelerator ACC100 Orchestration and deployment with OpenNESS Network Edge for FlexRAN_ -## Using the Intel® vRAN Dedicated Accelerator ACC100 on OpenNESS +## Using the Intel vRAN Dedicated Accelerator ACC100 on OpenNESS Further sections provide instructions on how to use the ACC100 eASIC features: configuration and accessing from an application on the OpenNESS Network Edge. When the Intel® vRAN Dedicated Accelerator ACC100 is available on the Edge Node platform it exposes the Single Root I/O Virtualization (SRIOV) Virtual Function (VF) devices which can be used to accelerate the FEC in the vRAN workload. To take advantage of this functionality for a cloud-native deployment, the PF (Physical Function) of the device must be bound to the DPDK IGB_UIO userspace driver to create several VFs (Virtual Functions). Once the VFs are created, they must also be bound to a DPDK userspace driver to allocate them to specific K8s pods running the vRAN workload. @@ -81,7 +81,7 @@ The full pipeline of preparing the device for workload deployment and deploying ### ACC100 (FEC) Ansible Installation for OpenNESS Network Edge To run the OpenNESS package with ACC100 (FEC) functionality, the feature needs to be enabled on both Edge Controller and Edge Node. It can be deployed via the ["flexran" flavor of OpenNESS](https://github.com/otcshare/converged-edge-experience-kits/tree/master/flavors/flexran). -#### Converged Edge Experience Kit +#### Converged Edge Experience Kits To enable ACC100 support from OEK, SRIOV must be enabled in OpenNESS: ```yaml # flavors/flexran/all.yml diff --git a/doc/flavors.md b/doc/flavors.md index 5b458835..894e4ab2 100644 --- a/doc/flavors.md +++ b/doc/flavors.md @@ -54,7 +54,7 @@ Available in Intel Distribution of OpenNESS ## CERA Media Analytics Flavor -The pre-defined *media-analytics* deployment flavor provisions an optimized system configuration for media analytics workloads on Intel� Xeon� platforms. It also provisions a set of video analytics services based on the [Video Analytics Serving](https://github.com/intel/video-analytics-serving) for analytics pipeline management and execution. +The pre-defined *media-analytics* deployment flavor provisions an optimized system configuration for media analytics workloads on Intel® Xeon® platforms. It also provisions a set of video analytics services based on the [Video Analytics Serving](https://github.com/intel/video-analytics-serving) for analytics pipeline management and execution. The following are steps to install this flavor: 1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). @@ -85,7 +85,7 @@ This deployment flavor enables the following ingredients: ## CERA Media Analytics Flavor with VCAC-A -The pre-defined *media-analytics-vca* deployment flavor provisions an optimized system configuration for media analytics workloads leveraging Visual Cloud Accelerator Card � Analytics (VCAC-A) acceleration. It also provisions a set of video analytics services based on the [Video Analytics Serving](https://github.com/intel/video-analytics-serving) for analytics pipeline management and execution. +The pre-defined *media-analytics-vca* deployment flavor provisions an optimized system configuration for media analytics workloads leveraging Visual Cloud Accelerator Card for Analytics (VCAC-A) acceleration. It also provisions a set of video analytics services based on the [Video Analytics Serving](https://github.com/intel/video-analytics-serving) for analytics pipeline management and execution. The following are steps to install this flavor: 1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). @@ -99,7 +99,7 @@ The following are steps to install this flavor: ``` > **NOTE:** The VCA host name should *only* be placed once in the `inventory.yml` file and under the `edgenode_vca_group:` group. -2. Update the `inventory.yaml` file by setting the deployment flavor as `media-analytics-vca` +3. Update the `inventory.yaml` file by setting the deployment flavor as `media-analytics-vca` ```yaml --- all: @@ -109,7 +109,7 @@ The following are steps to install this flavor: ... ``` -3. Run CEEK deployment script: +4. Run CEEK deployment script: ```shell $ python3 deploy.py ``` From 8741d195a7a947c1c8b5b289a8390fc9c761e760 Mon Sep 17 00:00:00 2001 From: i-kwilk <50014376+i-kwilk@users.noreply.github.com> Date: Tue, 23 Mar 2021 14:02:21 +0100 Subject: [PATCH 58/89] OVN doc update (#412) --- doc/building-blocks/dataplane/openness-ovn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/building-blocks/dataplane/openness-ovn.md b/doc/building-blocks/dataplane/openness-ovn.md index 7c16ffc8..cafe7d15 100644 --- a/doc/building-blocks/dataplane/openness-ovn.md +++ b/doc/building-blocks/dataplane/openness-ovn.md @@ -18,7 +18,7 @@ The diagram below shows OVS as a dataplane and OVN overlay. This mode of deploym ![OpenNESS with NTS as dataplane overview](ovn_images/openness_ovn.png) -[Kube-OVN](https://github.com/alauda/kube-ovn) has been chosen as the CNI implementation for OVN/OVS in OpenNESS. Additionally, in the following configuration, OpenNESS applications on Edge Nodes are deployed as DaemonSet Pods (in separate "openness" namespace) and exposed to client applications by k8s services. +[Kube-OVN](https://github.com/alauda/kube-ovn) can be chosen as the CNI implementation for OVN/OVS in OpenNESS. Additionally, in the following configuration, OpenNESS applications on Edge Nodes are deployed as DaemonSet Pods (in separate "openness" namespace) and exposed to client applications by k8s services. OVN/OVS is used as the default networking infrastructure for: - Dataplane Interface: UE's to edge applications From 081ea7855f1923627110e26874a7b4a89f960d58 Mon Sep 17 00:00:00 2001 From: Amr Mokhtar Date: Tue, 23 Mar 2021 13:15:34 +0000 Subject: [PATCH 59/89] use relative paths --- .../openness-network-edge-vm-support.md | 3 +-- doc/applications-onboard/using-openness-cnca.md | 2 +- doc/building-blocks/emco/openness-emco.md | 12 ++++++------ .../enhanced-platform-awareness/openness-acc100.md | 2 +- .../openness-dedicated-core.md | 4 ++-- .../enhanced-platform-awareness/openness-fpga.md | 4 ++-- doc/reference-architectures/ran/openness_ran.md | 12 ++++++------ doc/reference-architectures/ran/openness_xran.md | 8 ++++---- 8 files changed, 23 insertions(+), 24 deletions(-) diff --git a/doc/applications-onboard/openness-network-edge-vm-support.md b/doc/applications-onboard/openness-network-edge-vm-support.md index 3566bc86..4cd3217e 100644 --- a/doc/applications-onboard/openness-network-edge-vm-support.md +++ b/doc/applications-onboard/openness-network-edge-vm-support.md @@ -109,8 +109,7 @@ The KubeVirt role responsible for bringing up KubeVirt components is enabled by kubevirt_pv_vm_max_num: 64 ``` 2. Set up other common configurations for the cluster and enable other EPA features as needed and deploy the cluster using the `deploy.py` script in the Converged Edge Experience kits top-level directory. - - > **NOTE**: for more details about deployment please refer to [CEEK](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. + > **NOTE**: for more details about deployment please refer to [CEEK](../getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. 3. On successful deployment, the following pods will be in a running state: ```shell diff --git a/doc/applications-onboard/using-openness-cnca.md b/doc/applications-onboard/using-openness-cnca.md index 34f0a985..433f8cc6 100644 --- a/doc/applications-onboard/using-openness-cnca.md +++ b/doc/applications-onboard/using-openness-cnca.md @@ -40,7 +40,7 @@ Available management with `kube-cnca` against LTE CUPS OAM agent are: 2. Deletion of LTE CUPS userplanes 3. Updating (patching) LTE CUPS userplanes -The `kube-cnca` plugin is installed automatically on the control plane during the installation phase of the [Converged Edge Experience Kits](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md). +The `kube-cnca` plugin is installed automatically on the control plane during the installation phase of the [Converged Edge Experience Kits](../getting-started/converged-edge-experience-kits.md). In the following sections, a detailed explanation with examples is provided about the CNCA management. Creation of the LTE CUPS userplane is performed based on the configuration provided by the given YAML file. The YAML configuration should follow the provided sample YAML in [Sample YAML LTE CUPS userplane configuration](#sample-yaml-lte-cups-userplane-configuration) section. Use the `apply` command to post a userplane creation request onto Application Function (AF): diff --git a/doc/building-blocks/emco/openness-emco.md b/doc/building-blocks/emco/openness-emco.md index 4b90b017..2be07413 100644 --- a/doc/building-blocks/emco/openness-emco.md +++ b/doc/building-blocks/emco/openness-emco.md @@ -69,14 +69,14 @@ The following figure shows the topology overview for the OpenNESS EMCO orchestra _Figure 2 - Topology Overview with OpenNESS EMCO_ All the managed edge clusters and cloud clusters are connected with the EMCO cluster through the WAN network. -- The central orchestration (EMCO) cluster can be installed and provisioned by using the [OpenNESS Central Orchestrator Flavor](https://github.com/otcshare/specs/blob/master/doc/flavors.md). -- The edge clusters and the cloud cluster can be installed and provisioned by using the [OpenNESS Flavor](https://github.com/otcshare/specs/blob/master/doc/flavors.md). +- The central orchestration (EMCO) cluster can be installed and provisioned by using the [OpenNESS Central Orchestrator Flavor](../../flavors.md). +- The edge clusters and the cloud cluster can be installed and provisioned by using the [OpenNESS Flavor](../../flavors.md). - The composite application - [SmartCity](https://github.com/OpenVisualCloud/Smart-City-Sample) is composed of two parts: edge application and cloud (web) application. - The edge application executes media processing and analytics on multiple edge clusters to reduce latency. - The cloud application is like a web application for additional post-processing, such as calculating statistics and display/visualization on the cloud cluster side. - The EMCO user can deploy the SmartCity applications across the clusters. Besides that, EMCO allows the operator to override configurations and profiles to satisfy deployment needs. -This document aims to familiarize the user with EMCO and [OpenNESS deployment flavor](https://github.com/otcshare/specs/blob/master/doc/flavors.md) for EMCO installation and provision, and provide instructions accordingly. +This document aims to familiarize the user with EMCO and [OpenNESS deployment flavor](../../flavors.md) for EMCO installation and provision, and provide instructions accordingly. ## EMCO Introduction @@ -301,8 +301,8 @@ Steps for EMCO Authentication and Authorization Setup: - Apply Authentication and Authorization Policies ### EMCO Installation With OpenNESS Flavor -EMCO supports [multiple deployment options](https://github.com/otcshare/EMCO/tree/main/deployments). [Converged Edge Experience Kits](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md) offers the `central_orchestrator` flavor to automate EMCO build and deployment as mentioned below. -- The first step is to prepare one server environment which needs to fulfill the [preconditions](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/controller-edge-node-setup.md#preconditions). +EMCO supports [multiple deployment options](https://github.com/otcshare/EMCO/tree/main/deployments). [Converged Edge Experience Kits](../../getting-started/converged-edge-experience-kits.md) offers the `central_orchestrator` flavor to automate EMCO build and deployment as mentioned below. +- The first step is to prepare one server environment which needs to fulfill the [preconditions](../../getting-started/network-edge/controller-edge-node-setup.md#preconditions). - Place the EMCO server hostname in `controller_group/hosts/ctrl.openness.org:` dictionary in `inventory.yml` file of converged-edge-experience-kit. - Update the `inventory.yaml` file by setting the deployment flavor as `central_orchestrator` ```yaml @@ -315,7 +315,7 @@ EMCO supports [multiple deployment options](https://github.com/otcshare/EMCO/tre ``` > **NOTE**: `edgenode_group:` and `edgenode_vca_group:` are not required for configuration, since EMCO micro services just need to be deployed on the Kubernetes* control plane node. -> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. +> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](../../getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. - Run script `python3 deploy.py`. Deployment should complete successfully. In the flavor, harbor registry is deployed to provide images services as well. ```shell diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md b/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md index 66dfa22c..77f15aba 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md @@ -108,7 +108,7 @@ acc100_userspace_vf: Run setup script `deploy.py` with `flexran` flavor defined in `inventory.yml` for specific cluster. -> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. +> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](../../getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. After a successful deployment, the following pods will be available in the cluster: ```shell diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md index 45d50e9a..2f36fc6c 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md @@ -78,7 +78,7 @@ CMK can be deployed using a [Helm chart](https://helm.sh/). The CMK Helm chart u ... ``` 3. Deploy the controller with `deploy.py`. -> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. +> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](../../getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. **Edge Node / Kubernetes node** @@ -96,7 +96,7 @@ CMK can be deployed using a [Helm chart](https://helm.sh/). The CMK Helm chart u ... ``` 4. Deploy the node with `deploy.py`. -> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. +> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](../../getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. The environment setup can be validated using steps from the [CMK operator manual](https://github.com/intel/CPU-Manager-for-Kubernetes/blob/master/docs/operator.md#validating-the-environment). diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md b/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md index 475191f1..14b3c24c 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md @@ -121,7 +121,7 @@ The following packages need to be placed into specific directories for the featu Run setup script `deploy.py` with defined `inventory.yml` file. -> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. +> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](../../getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. After a successful deployment, the following pods will be available in the cluster (CNI pods may vary depending on deployment): ```shell @@ -225,7 +225,7 @@ To run vRAN workloads on the Intel® FPGA PAC N3000, the FPGA must be programmed #### Telemetry monitoring - Support for monitoring temperature and power telemetry of the Intel® FPGA PAC N3000 is also provided from OpenNESS with a CollectD collector that is configured for the `flexran` flavor. Intel® FPGA PAC N3000 telemetry monitoring is provided to CollectD as a plugin. It collects the temperature and power metrics from the card and exposes them to Prometheus\* from which the user can easily access the metrics. For more information on how to enable telemetry for FPGA in OpenNESS, see the [telemetry whitepaper](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md#collectd). + Support for monitoring temperature and power telemetry of the Intel® FPGA PAC N3000 is also provided from OpenNESS with a CollectD collector that is configured for the `flexran` flavor. Intel® FPGA PAC N3000 telemetry monitoring is provided to CollectD as a plugin. It collects the temperature and power metrics from the card and exposes them to Prometheus\* from which the user can easily access the metrics. For more information on how to enable telemetry for FPGA in OpenNESS, see the [telemetry whitepaper](../../building-blocks/enhanced-platform-awareness/openness-telemetry.md#collectd). ![PACN3000 telemetry](fpga-images/openness-fpga4.png) diff --git a/doc/reference-architectures/ran/openness_ran.md b/doc/reference-architectures/ran/openness_ran.md index e006afc0..1273a621 100644 --- a/doc/reference-architectures/ran/openness_ran.md +++ b/doc/reference-architectures/ran/openness_ran.md @@ -91,7 +91,7 @@ This section explains the steps involved in building the FlexRAN image. Only L1 docker push :/intel/flexran5g:3.10.0-1127.19.1.rt56 ``` -By the end of step 7, the FlexRAN Docker image is created and available in the Harbor registry. This image is copied to the edge node where FlexRAN will be deployed and that is installed with OpenNESS Network edge with all the required EPA features including Intel® FPGA Programmable Acceleration Card (Intel® FPGA PAC) N3000. Please refer to the document [Using FPGA in OpenNESS: Programming, Resource Allocation, and Configuration](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md) for details on setting up Intel® FPGA PAC N3000 with vRAN FPGA image. +By the end of step 7, the FlexRAN Docker image is created and available in the Harbor registry. This image is copied to the edge node where FlexRAN will be deployed and that is installed with OpenNESS Network edge with all the required EPA features including Intel® FPGA Programmable Acceleration Card (Intel® FPGA PAC) N3000. Please refer to the document [Using FPGA in OpenNESS: Programming, Resource Allocation, and Configuration](../../building-blocks/enhanced-platform-awareness/openness-fpga.md) for details on setting up Intel® FPGA PAC N3000 with vRAN FPGA image. # FlexRAN hardware platform configuration ## BIOS @@ -105,11 +105,11 @@ usbcore.autosuspend=-1 selinux=0 enforcing=0 nmi_watchdog=0 softlockup_panic=0 a Host kernel version - 3.10.0-1062.12.1.rt56.1042.el7.x86_64 -Instructions on how to configure the kernel command line in OpenNESS can be found in [OpenNESS getting started documentation](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md#customizing-kernel-grub-parameters-and-tuned-profile--variables-per-host) +Instructions on how to configure the kernel command line in OpenNESS can be found in [OpenNESS getting started documentation](../../getting-started/converged-edge-experience-kits.md#customizing-kernel-grub-parameters-and-tuned-profile--variables-per-host) # Deploying and Running the FlexRAN pod -1. Deploy the OpenNESS cluster with [SRIOV for FPGA enabled](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md#fpga-fec-ansible-installation-for-openness-network-edge). +1. Deploy the OpenNESS cluster with [SRIOV for FPGA enabled](../../building-blocks/enhanced-platform-awareness/openness-fpga.md#fpga-fec-ansible-installation-for-openness-network-edge). 2. Confirm that there are no FlexRAN pods and the FPGA configuration pods are not deployed using `kubectl get pods`. 3. Confirm that all the EPA microservice and enhancements (part of OpenNESS playbook) are deployed `kubectl get po --all-namespaces`. ```yaml @@ -143,9 +143,9 @@ Instructions on how to configure the kernel command line in OpenNESS can be foun openness syslog-master-894hs 1/1 Running 0 7d19h openness syslog-ng-n7zfm 1/1 Running 16 7d19h ``` -4. Deploy the Kubernetes job to program the [FPGA](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md#fpga-programming-and-telemetry-on-openness-network-edge) -5. Deploy the Kubernetes job to configure the [BIOS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-bios.md) (note: only works on select Intel development platforms) -6. Deploy the Kubernetes job to configure the [Intel PAC N3000 FPGA](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md#fec-vf-configuration-for-openness-network-edge) +4. Deploy the Kubernetes job to program the [FPGA](../../building-blocks/enhanced-platform-awareness/openness-fpga.md#fpga-programming-and-telemetry-on-openness-network-edge) +5. Deploy the Kubernetes job to configure the [BIOS](../../building-blocks/enhanced-platform-awareness/openness-bios.md) (note: only works on select Intel development platforms) +6. Deploy the Kubernetes job to configure the [Intel PAC N3000 FPGA](../../building-blocks/enhanced-platform-awareness/openness-fpga.md#fec-vf-configuration-for-openness-network-edge) 7. Deploy the FlexRAN Kubernetes pod using a helm chart provided in Edge Apps repository at `edgeapps/network-functions/ran/charts`: ```shell diff --git a/doc/reference-architectures/ran/openness_xran.md b/doc/reference-architectures/ran/openness_xran.md index ef18ed28..45fbbd26 100644 --- a/doc/reference-architectures/ran/openness_xran.md +++ b/doc/reference-architectures/ran/openness_xran.md @@ -406,7 +406,7 @@ Verify the i40e driver version of the NIC to be used and the firmware version on ## Deploy xRAN sample app O-DU and O-RU in OpenNESS Network Edge -Before starting the deployment script, OpenNESS should be configured according to the instructions available [here](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/controller-edge-node-setup.md) +Before starting the deployment script, OpenNESS should be configured according to the instructions available [here](../../getting-started/network-edge/controller-edge-node-setup.md) Additional configuration steps are provided below. ### Setting up SRIOV @@ -437,7 +437,7 @@ Additional configuration steps are provided below. vm_vf_ports: 0 ``` -Detailed instructions on configuring SRIOV for OpenNESS can be found [here](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md) +Detailed instructions on configuring SRIOV for OpenNESS can be found [here](../../building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md) 3. Modify SRIOV ConfigMap @@ -481,7 +481,7 @@ In file `./inventory/default/group_vars/edgenode_group.yml`, change the followin Host kernel version should be - 3.10.0-1062.12.1.rt56.1042.el7.x86_64 -Instructions on how to configure the kernel command line in OpenNESS can be found in [OpenNESS getting started documentation](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md#customizing-kernel-grub-parameters-and-tuned-profile--variables-per-host) +Instructions on how to configure the kernel command line in OpenNESS can be found in [OpenNESS getting started documentation](../../getting-started/converged-edge-experience-kits.md#customizing-kernel-grub-parameters-and-tuned-profile--variables-per-host) ### PTP Synchronization @@ -545,7 +545,7 @@ Define the `inventory.yml` and then run the deployment script: ```shell python3 deploy.py ``` -> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. +> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](../../getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. Check the `/proc/cmd` output. It should look similar to: From 34d712b8af3bc7ed2e6dd86b014e5813eedd5827 Mon Sep 17 00:00:00 2001 From: Patryk Matuszak <47594217+patrykxmatuszak@users.noreply.github.com> Date: Tue, 23 Mar 2021 14:16:50 +0100 Subject: [PATCH 60/89] Userspace CNI docs update 21.03 (#404) --- doc/building-blocks/dataplane/openness-userspace-cni.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/building-blocks/dataplane/openness-userspace-cni.md b/doc/building-blocks/dataplane/openness-userspace-cni.md index 71d18fa8..b0094dd0 100644 --- a/doc/building-blocks/dataplane/openness-userspace-cni.md +++ b/doc/building-blocks/dataplane/openness-userspace-cni.md @@ -38,12 +38,14 @@ DPDK apps require that a specific number of HugePages are enabled. By default, t # inventory/default/group_vars/controller_group/10-default.yml hugepage_size: "1G" hugepage_amount: "4" +default_grub_params: "default_hugepagesz={{ hugepage_size }} hugepagesz={{ hugepage_size }} hugepages={{ hugepage_amount }} intel_iommu=on iommu=pt" ``` ```yaml # inventory/default/group_vars/edgenode_group/10-default.yml hugepage_size: "1G" hugepage_amount: "4" +default_grub_params: "default_hugepagesz={{ hugepage_size }} hugepagesz={{ hugepage_size }} hugepages={{ hugepage_amount }} intel_iommu=on iommu=pt" ``` ```yaml From 97fbb8fb6ba3eb5c83126b1ee7826c1c24050b0f Mon Sep 17 00:00:00 2001 From: Patryk Matuszak <47594217+patrykxmatuszak@users.noreply.github.com> Date: Tue, 23 Mar 2021 14:29:45 +0100 Subject: [PATCH 61/89] Update 21.03 release notes with versions (#425) --- openness_releasenotes.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/openness_releasenotes.md b/openness_releasenotes.md index daed3a68..810db910 100644 --- a/openness_releasenotes.md +++ b/openness_releasenotes.md @@ -266,7 +266,9 @@ This document provides high-level system features, issues, and limitations infor - Major system Upgrades: Kubernetes 1.19.3, CentOS 7.8, Calico 3.16, and Kube-OVN 1.5.2. ## OpenNESS - 21.03 -- Major system Upgrades: CentOS 7.9, Kubernetes 1.20.0, Calico 3.17 and Docker 20.10.2. +- Major system upgrades: CentOS 7.9, Kubernetes 1.20.0, Docker 20.10.2, QEMU 5.2 and Golang 1.16. +- Kubernetes CNI upgrades: Calico 3.17, SR-IOV CNI 2.6, Flannel 0.13.0. +- Telemetry upgrades: CAdvisor 0.37.5, Grafana 7.4.2, Prometheus 2.24.0, Prometheus Node Exporter 1.0.1. - Set Calico as a default cni for cdn-transcode, central_orchestrator and minimal flavor. # Changes to Existing Features @@ -481,4 +483,4 @@ OpenNESS was tested on CentOS Linux release 7.9.2009 (Core) # Packages Version -Package: telemetry, cadvisor 0.37.5, grafana 7.4.2, prometheus 2.24.0, prometheus: node exporter 1.0.1, golang 1.16, docker 20.10.2, kubernetes 1.20.0, dpdk 19.11.1, ovs 2.14.0, ovn 2.14.0, helm 3.1.2, kubeovn 1.5.2, flannel 0.13.0, calico 3.17.0, multus 3.6, sriov cni 2.6, nfd 0.6.0, cmk v1.4.1, TAS (from specific commit "a13708825e854da919c6fdf05d50753113d04831"), openssl 1.1.1i +Package: telemetry, cadvisor 0.37.5, grafana 7.4.2, prometheus 2.24.0, prometheus: node exporter 1.0.1, golang 1.16, docker 20.10.2, kubernetes 1.20.0, dpdk 19.11.1, ovs 2.14.0, ovn 2.14.0, helm 3.1.2, kubeovn 1.5.2, flannel 0.13.0, calico 3.17.0, multus 3.6, sriov cni 2.6, nfd 0.6.0, cmk v1.4.1, TAS (from specific commit "a13708825e854da919c6fdf05d50753113d04831"), openssl 1.1.1i, QEMU 5.2 From 5fc09a53035ce99d1cfbc7e5b3b6249d93a8092f Mon Sep 17 00:00:00 2001 From: damiankopyto <48013534+damiankopyto@users.noreply.github.com> Date: Tue, 23 Mar 2021 13:55:45 +0000 Subject: [PATCH 62/89] Delete Access Edge Flavor (#422) Delete Access Edge Flavor --- doc/flavors.md | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/doc/flavors.md b/doc/flavors.md index b8bd8e36..ab8aa2e0 100644 --- a/doc/flavors.md +++ b/doc/flavors.md @@ -37,33 +37,9 @@ This deployment flavor enables the following ingredients: To customize this flavor we recommend creating additional file in openness-experience-kits that will override any variables used in previous configuration. This file should be placed in location: `openness-experience-kits/inventory/default/group_vars/all` and filenames should start with number greater than highest value currently present (e.g. `40-overrides.yml`). - ## CERA Access Edge Flavor -The pre-defined *flexran* deployment flavor provisions an optimized system configuration for vRAN workloads on Intel Xeon servers. It also provisions for deployment of PACN3000 FPGA tools and components enabling the offload of acceleration of FEC (Forward Error Correction) to the FPGA. - -Steps to install this flavor are as follows: -1. Configure OEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). -2. Configure the flavor file to reflect desired deployment. - - Configure the CPUs selected for isolation and OS/K8s processes from command line in files [controller_group.yml](https://github.com/otcshare/openness-experience-kits/blob/master/flavors/flexran/controller_group.yml) and [edgenode_group.yml](https://github.com/otcshare/openness-experience-kits/blob/master/flavors/flexran/edgenode_group.yml) - please note that in single node mode the edgenode_group.yml is used to configure the CPU isolation. - - Configure the amount of CPUs reserved for K8s and OS from K8s level with `reserved_cpu` flag in [all.yml](https://github.com/otcshare/openness-experience-kits/blob/master/flavors/flexran/all.yml) file. - - Configure whether the FPGA or eASIC support for FEC is desired or both in [all.yml](https://github.com/otcshare/openness-experience-kits/blob/master/flavors/flexran/all.yml) file. - -3. Run OEK deployment script: - ```shell - $ deploy_ne.sh -f flexran - ``` -This deployment flavor enables the following ingredients: -* Node Feature Discovery -* SRIOV device plugin with FPGA configuration -* Calico CNI -* Telemetry -* FPGA remote system update through OPAE -* FPGA configuration -* eASIC ACC100 configuration -* RT Kernel -* Tapology Manager -* RMD operator +Available in Intel Distribution of OpenNESS ## CERA Media Analytics Flavor From 5e66517c35893776c3e89ad62d1d5b7cdf4be028 Mon Sep 17 00:00:00 2001 From: RafalX Mical Date: Tue, 23 Mar 2021 16:19:26 +0100 Subject: [PATCH 63/89] Minor update about limit variable --- doc/applications-onboard/using-openness-cnca.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/applications-onboard/using-openness-cnca.md b/doc/applications-onboard/using-openness-cnca.md index 433f8cc6..9bbb89c8 100644 --- a/doc/applications-onboard/using-openness-cnca.md +++ b/doc/applications-onboard/using-openness-cnca.md @@ -121,7 +121,7 @@ OpenNESS provides ansible scripts for setting up NGC components for two scenario Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `inventory/default/group_vars/all/10-default.yml` before running `deploy.py` as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/network-edge/controller-edge-node-setup.md) document, **otherwise skip this step.** 2. If Edge-controller is already deployed (but without enabling ngc role) and at a later stage you want to enable NGC components on edge-controller then, - Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `inventory/default/group_vars/all/10-default.yml` and then re-run `deploy.py` with specified `limit: controller` variable in `inventory.yml` (define only one cluster on which the role should be enabled) as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/network-edge/controller-edge-node-setup.md) document. + Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `inventory/default/group_vars/all/10-default.yml` and then re-run `deploy.py` with `limit` set to `controller_group` in `inventory.yml` (define only one cluster on which the role should be enabled) as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/network-edge/controller-edge-node-setup.md) document. **NOTE:** In addition to the OpenNESS controller bringup, by enabling the ngc rule the playbook scripts performs: Clone epcforedge repo from github, builds AF, NEF and OAM micro services, generates certificate files, creates docker images and starts PODs. From d3630f4d5283f5a8e1935684f265d6f0b2965d2d Mon Sep 17 00:00:00 2001 From: Nikita Basovs Date: Tue, 23 Mar 2021 16:27:47 +0000 Subject: [PATCH 64/89] Changed OEK to CEEK --- README.md | 4 ++-- .../openness-network-edge-vm-support.md | 2 +- .../using-openness-cnca.md | 4 ++-- doc/applications/openness_service_mesh.md | 10 +++++----- doc/applications/openness_va_services.md | 4 ++-- doc/architecture.md | 2 +- .../openness-acc100.md | 4 ++-- .../openness-bios.md | 6 +++--- .../openness-fpga.md | 8 ++++---- .../openness-kubernetes-dashboard.md | 4 ++-- .../openness-sriov-multiple-interfaces.md | 6 +++--- .../openness-telemetry.md | 20 +++++++++---------- .../openness-vcac-a.md | 18 ++++++++--------- .../openness_hddl.md | 6 +++--- doc/devkits/openness-azure-devkit.md | 2 +- .../converged-edge-experience-kits.md | 2 +- .../controller-edge-node-setup.md | 12 +++++------ doc/orchestration/openness-helm.md | 6 +++--- .../ran/openness_ran.md | 2 +- openness_releasenotes.md | 2 +- 20 files changed, 62 insertions(+), 62 deletions(-) diff --git a/README.md b/README.md index 21456aaf..c631b8f2 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Below is the complete list of OpenNESS solution documentation ## Getting Started - Setup * [getting-started: Folder containing how to get started with installing and trying OpenNESS Network Edge solutions](https://github.com/otcshare/specs/blob/master/doc/getting-started) - * [converged-edge-experience-kits.md: Overview of the OpenNESS Experience kits that are used to install the Network Edge solutions](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md) + * [converged-edge-experience-kits.md: Overview of the Converged Edge Experience Kits that are used to install the Network Edge solutions](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md) * [network-edge: Folder containing how to get started with installing and trying OpenNESS Network Edge](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge) * [controller-edge-node-setup.md: Started here for installing and trying OpenNESS Network Edge](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/controller-edge-node-setup.md) * [supported-epa.md: List of Silicon and Software EPA that are features that are supported in OpenNESS Network Edge](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/supported-epa.md) @@ -153,5 +153,5 @@ Below is the complete list of OpenNESS solution documentation - COTS: Commercial Off-The-Shelf - DU: Distributed Unit of RAN - CU: Centralized Unit of RAN -- OEK: OpenNESS Experience Kit +- CEEK: Converged Edge Experience Kits - IDO: Intel Distribution of OpenNESS diff --git a/doc/applications-onboard/openness-network-edge-vm-support.md b/doc/applications-onboard/openness-network-edge-vm-support.md index 4cd3217e..2a575d76 100644 --- a/doc/applications-onboard/openness-network-edge-vm-support.md +++ b/doc/applications-onboard/openness-network-edge-vm-support.md @@ -77,7 +77,7 @@ docker build -t centosimage:1.0 . ``` ## Enabling in OpenNESS -The KubeVirt role responsible for bringing up KubeVirt components is enabled by default in the OpenNESS experience kit via Ansible\* automation. In this default state, it does not support SRIOV in a VM and additional steps are required to enable it. The following is a complete list of steps to bring up all components related to VM support in Network Edge. VM support also requires Virtualization and VT-d to be enabled in the BIOS of the Edge Node. +The KubeVirt role responsible for bringing up KubeVirt components is enabled by default in the Converged Edge Experience Kits via Ansible\* automation. In this default state, it does not support SRIOV in a VM and additional steps are required to enable it. The following is a complete list of steps to bring up all components related to VM support in Network Edge. VM support also requires Virtualization and VT-d to be enabled in the BIOS of the Edge Node. 1. Configure Ansible for KubeVirt: KubeVirt is deployed by default. To provide SRIOV support, configure the following settings: diff --git a/doc/applications-onboard/using-openness-cnca.md b/doc/applications-onboard/using-openness-cnca.md index 9bbb89c8..3d1bb36a 100644 --- a/doc/applications-onboard/using-openness-cnca.md +++ b/doc/applications-onboard/using-openness-cnca.md @@ -105,7 +105,7 @@ policy: # 5G NGC components bring up and Configuration using CNCA -OpenNESS provides ansible scripts for setting up NGC components for two scenarios. Each of the scenarios is supported by a separate role in the OpenNESS Experience Kit: +OpenNESS provides ansible scripts for setting up NGC components for two scenarios. Each of the scenarios is supported by a separate role in the Converged Edge Experience Kits: 1. Role "ngc_test" This role brings up the 5g OpenNESS setup in the loopback mode for testing and demonstrating its usability. This scenario is currently the default 5G OpenNESS scenario. The ansible scripts that are part of "ngc_test" role build, configure and start AF, NEF and OAM in the Network Edge. Within this role, AF, NEF and OAM are set up on the controller node. Description of the configuration and setup of the NGC components provided in the next sections of this document refers to ngc_test role. The NGC componetns set up within ngc_test role can be fully integrated and tested with provided Kubectl plugin or CNCA UI. @@ -165,7 +165,7 @@ OpenNESS provides ansible scripts for setting up NGC components for two scenario For Network Edge mode, the CNCA provides a kubectl plugin to configure the 5G Core network. Kubernetes adopted plugin concepts to extend its functionality. The `kube-cnca` plugin executes CNCA related functions within the Kubernetes ecosystem. The plugin performs remote callouts against NGC OAM and AF microservice on the controller itself. -The `kube-cnca` plugin is installed automatically on the control plane during the installation phase of the [OpenNESS Experience Kit](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/controller-edge-node-setup.md) +The `kube-cnca` plugin is installed automatically on the control plane during the installation phase of the [Converged Edge Experience Kits](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/controller-edge-node-setup.md) #### Edge Node services operations with 5G Core (through OAM interface) diff --git a/doc/applications/openness_service_mesh.md b/doc/applications/openness_service_mesh.md index 8e02d4f6..d69747dc 100644 --- a/doc/applications/openness_service_mesh.md +++ b/doc/applications/openness_service_mesh.md @@ -34,7 +34,7 @@ With the Service Mesh approach, the applications do not decide which service end ## OpenNESS Service Mesh Enablement through Istio -[Istio](https://istio.io/) is a feature-rich, cloud-native service mesh platform that provides a collection of key capabilities such as: [Traffic Management](https://istio.io/latest/docs/concepts/traffic-management/), [Security](https://istio.io/latest/docs/concepts/security/) and [Observability](https://istio.io/latest/docs/concepts/observability/) uniformly across a network of services. OpenNESS integrates natively with the Istio service mesh to help reduce the complexity of large scale edge applications, services, and network functions. The Istio service mesh is deployed automatically through OpenNESS Experience Kits (OEK) with an option to onboard the media analytics services on the service mesh. +[Istio](https://istio.io/) is a feature-rich, cloud-native service mesh platform that provides a collection of key capabilities such as: [Traffic Management](https://istio.io/latest/docs/concepts/traffic-management/), [Security](https://istio.io/latest/docs/concepts/security/) and [Observability](https://istio.io/latest/docs/concepts/observability/) uniformly across a network of services. OpenNESS integrates natively with the Istio service mesh to help reduce the complexity of large scale edge applications, services, and network functions. The Istio service mesh is deployed automatically through Converged Edge Experience Kits (CEEK) with an option to onboard the media analytics services on the service mesh. Istio mandates injecting [Envoy sidecars](https://istio.io/latest/docs/ops/deployment/architecture/#envoy) into the applications and services pods to become part of the service mesh. The Envoy sidecars intercept all inter-pod traffic, making it easy to manage, secure, and observe. Sidecar injection is automatically enabled to the `default` namespace in the OpenNESS cluster. This is done by applying the label `istio-injection=enabled` to the `default` namespace. @@ -62,7 +62,7 @@ The service mesh framework takes care of provisioning, monitoring, and routing t ## Video Analytics Service Mesh Deployment -The media analytics services can be automatically deployed on the Istio service mesh using the OEK. To do so, the entry `ne_istio_enable` in the file `flavors/media-analytics/all.yml` needs to be set to `true`. After running the `deploy.sh` script, the output should include the following pods in the `default` and `istio-system` namespaces on the cluster: +The media analytics services can be automatically deployed on the Istio service mesh using the CEEK. To do so, the entry `ne_istio_enable` in the file `flavors/media-analytics/all.yml` needs to be set to `true`. After running the `deploy.sh` script, the output should include the following pods in the `default` and `istio-system` namespaces on the cluster: ```shell $ kubectl get pods -A @@ -421,7 +421,7 @@ _Figure - Istio Telemetry with Grafana_ ### Enabling Service Mesh through enabling the Service Mesh Role -Istio service mesh can be deployed with OpenNESS using the OEK through the defined istio role. Istio role is enabled with setting parameter `ne_istio_enable: true`. Istio is installed with `default` profile by default (for Istio installation profiles refer to: https://istio.io/latest/docs/setup/additional-setup/config-profiles/). +Istio service mesh can be deployed with OpenNESS using the CEEK through the defined istio role. Istio role is enabled with setting parameter `ne_istio_enable: true`. Istio is installed with `default` profile by default (for Istio installation profiles refer to: https://istio.io/latest/docs/setup/additional-setup/config-profiles/). The Istio management console, [Kiali](https://kiali.io/), is deployed alongside Istio with the default credentials: * Username: `admin` @@ -486,7 +486,7 @@ Users can change the namespace labeled with istio label using the parameter `ist > **NOTE**: The default OpenNESS network policy applies to pods in the `default` namespace and blocks all ingress traffic. Users must remove the default policy and apply custom network policy when deploying applications in the `default` namespace. Refer to the [Kubernetes NetworkPolicies](https://github.com/otcshare/specs/blob/master/doc/applications-onboard/network-edge-applications-onboarding.md#applying-kubernetes-network-policies) for an example policy allowing ingress traffic from `192.168.1.0/24` subnet on a specific port. -Kiali console is accessible from a browser using `http://:30001` and credentials defined in OpenNESS Experience Kits: +Kiali console is accessible from a browser using `http://:30001` and credentials defined in Converged Edge Experience Kits: ![Kiali Dashboard Login](./service-mesh-images/kiali-login.png) @@ -494,7 +494,7 @@ _Figure - Kiali Dashboard Login_ ### Enabling Service Mesh with the Media Analytics Flavor -The Istio service mesh is not enabled by default in OpenNESS. It can be installed alongside the video analytics services by setting the flag `ne_istio_enable` to `true` in the *media-analytics* flavor. The media analytics services are installed with the OpenNESS service mesh through the OEK playbook as described in the [Media Analytics](../flavors.md#media-analytics-flavor) section. +The Istio service mesh is not enabled by default in OpenNESS. It can be installed alongside the video analytics services by setting the flag `ne_istio_enable` to `true` in the *media-analytics* flavor. The media analytics services are installed with the OpenNESS service mesh through the CEEK playbook as described in the [Media Analytics](../flavors.md#media-analytics-flavor) section. ## References diff --git a/doc/applications/openness_va_services.md b/doc/applications/openness_va_services.md index f943ba85..e7360140 100644 --- a/doc/applications/openness_va_services.md +++ b/doc/applications/openness_va_services.md @@ -16,12 +16,12 @@ OpenNESS furnishes the Video Analytics Services to enable third-party edge appli ## Getting Started with Video Analytics Services -To get started with deploying Video Analytics Services through OpenNESS Experience Kits (OEK), refer to [Media Analytics Flavor](../flavors.md#media-analytics-flavor) and [Media Analytics Flavor with VCAC-A](../flavors.md#media-analytics-flavor-with-vcac-a). +To get started with deploying Video Analytics Services through Converged Edge Experience Kits (CEEK), refer to [Media Analytics Flavor](../flavors.md#media-analytics-flavor) and [Media Analytics Flavor with VCAC-A](../flavors.md#media-analytics-flavor-with-vcac-a). > **NOTE**: If creating a customized flavor, the *Video Analytics Services* role can be included in the Ansible\* playbook by setting the flag `video_analytics_services_enable: true` in the flavor file. ## Video Analytics Services Deployment -Video Analytics Services are installed by the OEK when `media-services` or `media-services-vca` flavors are deployed. These flavors include the *Video Analytics Services* role in the Ansible playbook by turning on the flag `video_analytics_services_enable: true` under the hood. When the role is included, multiple Video Analytics Services are deployed. One instance of the Video Analytics Services consists of two containers: +Video Analytics Services are installed by the CEEK when `media-services` or `media-services-vca` flavors are deployed. These flavors include the *Video Analytics Services* role in the Ansible playbook by turning on the flag `video_analytics_services_enable: true` under the hood. When the role is included, multiple Video Analytics Services are deployed. One instance of the Video Analytics Services consists of two containers: 1. Video analytics serving gateway (VAS gateway) 2. Video analytics serving sidecar (VAS sidecar) diff --git a/doc/architecture.md b/doc/architecture.md index bbb2183d..a594a60e 100644 --- a/doc/architecture.md +++ b/doc/architecture.md @@ -343,7 +343,7 @@ This devkit supports the installation of an OpenNESS Kubernetes cluster on a Mic | NRF | Network function Repository Function | | NUMA | NonUniform Memory Access | | OAM | Operations, Administration and Maintenance | -| OEK | OpenNESS Experience Kit | +| CEEK | Converged Edge Experience Kits | | OpenNESS | Open Network Edge Services Software | | PCF | Policy Control Function | | PDN | Packet Data Network | diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md b/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md index 77f15aba..e1e89aa1 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md @@ -82,7 +82,7 @@ The full pipeline of preparing the device for workload deployment and deploying To run the OpenNESS package with ACC100 (FEC) functionality, the feature needs to be enabled on both Edge Controller and Edge Node. It can be deployed via the ["flexran" flavor of OpenNESS](https://github.com/otcshare/converged-edge-experience-kits/tree/master/flavors/flexran). #### Converged Edge Experience Kits -To enable ACC100 support from OEK, SRIOV must be enabled in OpenNESS: +To enable ACC100 support from CEEK, SRIOV must be enabled in OpenNESS: ```yaml # flavors/flexran/all.yml kubernetes_cnis: @@ -184,7 +184,7 @@ kubectl get node -o json | jq '.status.allocatable' ``` To request the device as a resource in the pod, add the request for the resource into the pod specification file by specifying its name and the amount of resources required. If the resource is not available or the amount of resources requested is greater than the number of resources available, the pod status will be “Pending” until the resource is available. -**NOTE**: The name of the resource must match the name specified in the configMap for the K8s devices plugin [configMap.yml](https://github.com/otcshare/openness-experience-kits/blob/master/roles/kubernetes/cni/sriov/controlplane/templates/configMap.yml.j2). +**NOTE**: The name of the resource must match the name specified in the configMap for the K8s devices plugin [configMap.yml](https://github.com/otcshare/converged-edge-experience-kits/blob/master/roles/kubernetes/cni/sriov/controlplane/templates/configMap.yml.j2). A sample pod requesting the ACC100 (FEC) VF may look like this: diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-bios.md b/doc/building-blocks/enhanced-platform-awareness/openness-bios.md index 252f1d33..17e91dff 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-bios.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-bios.md @@ -41,13 +41,13 @@ Intel SYSCFG must be manually downloaded by the user after accepting the license ### Setup To enable BIOSFW, perform the following steps: -1. The SYSCFG package must be downloaded and stored inside OpenNESS Experience Kits' `biosfw/` directory as a `syscfg_package.zip`: -`openness-experience-kits/biosfw/syscfg_package.zip` +1. The SYSCFG package must be downloaded and stored inside Converged Edge Experience Kits' `biosfw/` directory as a `syscfg_package.zip`: +`converged-edge-experience-kits/biosfw/syscfg_package.zip` 2. Change the variable `ne_biosfw_enable` in `inventory/default/group_vars/all/10-default.yml` to “true”: ```yaml ne_biosfw_enable: true ``` -3. OpenNESS Experience Kits' NetworkEdge deployment for both controller and nodes can be started. +3. Converged Edge Experience Kits' NetworkEdge deployment for both controller and nodes can be started. ### Usage diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md b/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md index 14b3c24c..537a5a44 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md @@ -10,7 +10,7 @@ Copyright (c) 2019-2020 Intel Corporation - [Intel(R) FPGA PAC N3000 remote system update flow in OpenNESS Network edge Kubernetes](#intelr-fpga-pac-n3000-remote-system-update-flow-in-openness-network-edge-kubernetes) - [Using an FPGA on OpenNESS](#using-an-fpga-on-openness) - [FPGA (FEC) Ansible installation for OpenNESS Network Edge](#fpga-fec-ansible-installation-for-openness-network-edge) - - [OpenNESS Experience Kit](#openness-experience-kit) + - [Converged Edge Experience Kits](#openness-experience-kit) - [FPGA programming and telemetry on OpenNESS Network Edge](#fpga-programming-and-telemetry-on-openness-network-edge) - [Telemetry monitoring](#telemetry-monitoring) - [FEC VF configuration for OpenNESS Network Edge](#fec-vf-configuration-for-openness-network-edge) @@ -84,8 +84,8 @@ For information on how to update and flash the MAX10 to supported version see [I ### FPGA (FEC) Ansible installation for OpenNESS Network Edge To run the OpenNESS package with FPGA (FEC) functionality, the feature needs to be enabled on both Edge Controller and Edge Node. -#### OpenNESS Experience Kit -To enable FPGA support from OEK, change the variable `ne_opae_fpga_enable` in `inventory/default/group_vars/all/10-default.yml` (or flavor alternative file) to `true`: +#### Converged Edge Experience Kits +To enable FPGA support from CEEK, change the variable `ne_opae_fpga_enable` in `inventory/default/group_vars/all/10-default.yml` (or flavor alternative file) to `true`: ```yaml # inventory/default/group_vars/all/10-default.yml ne_opae_fpga_enable: true @@ -268,7 +268,7 @@ kubectl get node -o json | jq '.status.allocatable' ``` To request the device as a resource in the pod, add the request for the resource into the pod specification file by specifying its name and amount of resources required. If the resource is not available or the amount of resources requested is greater than the number of resources available, the pod status will be “Pending” until the resource is available. -**NOTE**: The name of the resource must match the name specified in the configMap for the K8s devices plugin [configMap.yml](https://github.com/otcshare/openness-experience-kits/blob/master/roles/kubernetes/cni/sriov/controlplane/templates/configMap.yml.j2). +**NOTE**: The name of the resource must match the name specified in the configMap for the K8s devices plugin [configMap.yml](https://github.com/otcshare/converged-edge-experience-kits/blob/master/roles/kubernetes/cni/sriov/controlplane/templates/configMap.yml.j2). A sample pod requesting the FPGA (FEC) VF may look like this: diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-kubernetes-dashboard.md b/doc/building-blocks/enhanced-platform-awareness/openness-kubernetes-dashboard.md index e4a272aa..87fc2988 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-kubernetes-dashboard.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-kubernetes-dashboard.md @@ -17,7 +17,7 @@ Kubernetes Dashboard is a web user interface for Kubernetes. User can use Dashbo ## Details - Kubernetes Dashboard support in OpenNESS -Kubernetes Dashboard is disabled by default in OpenNESS Experience Kits. It can be enabled by setting variable `kubernetes_dashboard_enable` in `inventory/default/group_vars/all/10-default.yml` file to `true` value: +Kubernetes Dashboard is disabled by default in Converged Edge Experience Kits. It can be enabled by setting variable `kubernetes_dashboard_enable` in `inventory/default/group_vars/all/10-default.yml` file to `true` value: ```yaml # Kubernetes Dashboard @@ -46,7 +46,7 @@ kubectl describe secret -n kube-system $(kubectl get secret -n kube-system | gre ### Access rights -By default OpenNESS will deploy Kubernetes Dashboard with read-only access to every information except Kubernetes' secrets. To change access rights (for example hide information about persistent volumes claims, etc.) please modify cluster role defined in `roles/kubernetes/dashboard/files/clusterrole.yml` of OpenNESS Experience Kits. +By default OpenNESS will deploy Kubernetes Dashboard with read-only access to every information except Kubernetes' secrets. To change access rights (for example hide information about persistent volumes claims, etc.) please modify cluster role defined in `roles/kubernetes/dashboard/files/clusterrole.yml` of Converged Edge Experience Kits. ## Reference - [Kubernetes Dashboard](https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md b/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md index fa4decd8..3bc059fb 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md @@ -61,7 +61,7 @@ kubernetes_cnis: ### Multus usage -Multus CNI is deployed in OpenNESS using a Helm chart. The Helm chart is available in [openness-experience-kits](https://github.com/otcshare/openness-experience-kits/tree/master/roles/kubernetes/cni/multus/controlplane/files/multus-cni). The Multus image is pulled by Ansible\* Multus role and pushed to a local Docker\* registry on Edge Controller. +Multus CNI is deployed in OpenNESS using a Helm chart. The Helm chart is available in [converged-edge-experience-kits](https://github.com/otcshare/converged-edge-experience-kits/tree/master/roles/kubernetes/cni/multus/controlplane/files/multus-cni). The Multus image is pulled by Ansible\* Multus role and pushed to a local Docker\* registry on Edge Controller. [Custom resource definition](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#custom-resources) (CRD) is used to define an additional network that can be used by Multus. @@ -130,7 +130,7 @@ kubernetes_cnis: - sriov ``` -SR-IOV CNI and device plugin are deployed in OpenNESS using Helm chart. The Helm chart is available in [openness-experience-kits](https://github.com/otcshare/openness-experience-kits/tree/master/roles/kubernetes/cni/sriov/controlplane/files/sriov). Additional chart templates for SR-IOV device plugin can be downloaded from [container-experience-kits repository](https://github.com/intel/container-experience-kits/tree/master/roles/sriov_dp_install/charts/sriov-net-dp/templates). SR-IOV images are built from source by the Ansible SR-IOV role and pushed to a local Harbor registry on Edge Controller. +SR-IOV CNI and device plugin are deployed in OpenNESS using Helm chart. The Helm chart is available in [converged-edge-experience-kits](https://github.com/otcshare/converged-edge-experience-kits/tree/master/roles/kubernetes/cni/sriov/controlplane/files/sriov). Additional chart templates for SR-IOV device plugin can be downloaded from [container-experience-kits repository](https://github.com/intel/container-experience-kits/tree/master/roles/sriov_dp_install/charts/sriov-net-dp/templates). SR-IOV images are built from source by the Ansible SR-IOV role and pushed to a local Harbor registry on Edge Controller. #### Edge Node SR-IOV interfaces configuration @@ -217,7 +217,7 @@ SR-IOV device plugin image building requires downloading the ddptool from `downl ```shell TASK [kubernetes/cni/sriov/master : build device plugin image] ***************************************************** -task path: /root/testy/openness-experience-kits/roles/kubernetes/cni/sriov/master/tasks/main.yml:52 +task path: /root/testy/converged-edge-experience-kits/roles/kubernetes/cni/sriov/master/tasks/main.yml:52 ... STDERR: The command '/bin/sh -c apk add --update --virtual build-dependencies build-base linux-headers && cd /usr/src/sriov-network-device-plugin && make clean && make build && cd /tmp/ddptool && tar zxvf ddptool-1.0.0.0.tar.gz && make' returned a non-zero code: 1 diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md b/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md index 70ac1bd3..448ea4fb 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md @@ -47,7 +47,7 @@ Depending on the role of the component, it is deployed as either a `Deployment` ## Flavors and configuration -The deployment of telemetry components in OpenNESS is easily configurable from the OpenNESS Experience Kit (OEK). The deployment of the Grafana dashboard and PCM (Performance Counter Monitoring) collector is optional (`telemetry_grafana_enable` enabled by default, `telemetry_pcm_enable` disabled by default). There are four distinctive flavors for the deployment of the CollectD collector, enabling the respective set of plugins (`telemetry_flavor`): +The deployment of telemetry components in OpenNESS is easily configurable from the Converged Edge Experience Kits (CEEK). The deployment of the Grafana dashboard and PCM (Performance Counter Monitoring) collector is optional (`telemetry_grafana_enable` enabled by default, `telemetry_pcm_enable` disabled by default). There are four distinctive flavors for the deployment of the CollectD collector, enabling the respective set of plugins (`telemetry_flavor`): - common (default) - flexran @@ -69,7 +69,7 @@ Prometheus is an open-source, community-driven toolkit for systems monitoring an The main idea behind Prometheus is that it defines a unified metrics data format that can be hosted as part of any application that incorporates a simple web server. The data can be then scraped (downloaded) and processed by Prometheus using a simple HTTP/HTTPS connection. -In OpenNESS, Prometheus is deployed as a K8s Deployment with a single pod/replica on the Edge Controller node. It is configured out of the box to scrape all other telemetry endpoints/collectors enabled in OpenNESS and gather data from them. Prometheus is enabled in the OEK by default with the `telemetry/prometheus` role. +In OpenNESS, Prometheus is deployed as a K8s Deployment with a single pod/replica on the Edge Controller node. It is configured out of the box to scrape all other telemetry endpoints/collectors enabled in OpenNESS and gather data from them. Prometheus is enabled in the CEEK by default with the `telemetry/prometheus` role. #### Usage @@ -89,7 +89,7 @@ In OpenNESS, Prometheus is deployed as a K8s Deployment with a single pod/replic ### Grafana -Grafana is an open-source visualization and analytics software. It takes the data provided from external sources and displays relevant data to the user via dashboards. It enables the user to create customized dashboards based on the information the user wants to monitor and allows for the provision of additional data sources. In OpenNESS, the Grafana pod is deployed on a control plane as a K8s `Deployment` type and is by default provisioned with data from Prometheus. It is enabled by default in OEK and can be enabled/disabled by changing the `telemetry_grafana_enable` flag. +Grafana is an open-source visualization and analytics software. It takes the data provided from external sources and displays relevant data to the user via dashboards. It enables the user to create customized dashboards based on the information the user wants to monitor and allows for the provision of additional data sources. In OpenNESS, the Grafana pod is deployed on a control plane as a K8s `Deployment` type and is by default provisioned with data from Prometheus. It is enabled by default in CEEK and can be enabled/disabled by changing the `telemetry_grafana_enable` flag. #### Usage @@ -139,7 +139,7 @@ Grafana is an open-source visualization and analytics software. It takes the dat ### Node Exporter -Node Exporter is a Prometheus exporter that exposes hardware and OS metrics of *NIX kernels. The metrics are gathered within the kernel and exposed on a web server so they can be scraped by Prometheus. In OpenNESS, the Node Exporter pod is deployed as a K8s `Daemonset`; it is a privileged pod that runs on every Edge Node in the cluster. It is enabled by default by OEK. +Node Exporter is a Prometheus exporter that exposes hardware and OS metrics of *NIX kernels. The metrics are gathered within the kernel and exposed on a web server so they can be scraped by Prometheus. In OpenNESS, the Node Exporter pod is deployed as a K8s `Daemonset`; it is a privileged pod that runs on every Edge Node in the cluster. It is enabled by default by CEEK. #### Usage @@ -169,7 +169,7 @@ CollectD is a daemon/collector enabling the collection of hardware metrics from #### Plugins There are four distinct sets of plugins (flavors) enabled for CollectD deployment that can be used depending on the use-case/workload being deployed on OpenNESS. `Common` is the default flavor in OpenNESS. The flavors available are: `common`, `corenetwork`, `flexran`, and `smartcity`. Below is a table specifying which CollectD plugins are enabled for each flavor. -The various OEK flavors are enabled for CollectD deployment as follows: +The various CEEK flavors are enabled for CollectD deployment as follows: | Common | Core Network | FlexRAN | SmartCity | @@ -187,9 +187,9 @@ The various OEK flavors are enabled for CollectD deployment as follows: #### Usage -1. Select the flavor for the deployment of CollectD from the OEK during OpenNESS deployment; the flavor is to be selected with `telemetry_flavor: `. +1. Select the flavor for the deployment of CollectD from the CEEK during OpenNESS deployment; the flavor is to be selected with `telemetry_flavor: `. - In the event of using the `flexran` profile, `OPAE_SDK_1.3.7-5_el7.zip` needs to be available in `./openness-experience-kits/opae_fpga` directory; for details about the packages, see [FPGA support in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md#edge-controller) + In the event of using the `flexran` profile, `OPAE_SDK_1.3.7-5_el7.zip` needs to be available in `./converged-edge-experience-kits/opae_fpga` directory; for details about the packages, see [FPGA support in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md#edge-controller) 2. To access metrics available from CollectD, connect to the Prometheus [dashboard](#prometheus). 3. Look up an example the CollectD metric by specifying the metric name (ie. `collectd_cpufreq`) and pressing `execute` under the `graph` tab. ![CollectD Metric](telemetry-images/collectd_metric.png) @@ -216,7 +216,7 @@ OpenCensus exporter/receiver is used in the default OpenNESS configuration for a ./build.sh push ``` -3. Create a secret using a root-ca created as part of OEK telemetry deployment (this will authorize against the Collector certificates). +3. Create a secret using a root-ca created as part of CEEK telemetry deployment (this will authorize against the Collector certificates). ```shell cd edgeapps/applications/telemetry-sample-app/ @@ -246,7 +246,7 @@ OpenCensus exporter/receiver is used in the default OpenNESS configuration for a ### PCM Processor Counter Monitor (PCM) is an application programming interface (API) and a set of tools based on the API to monitor performance and energy metrics of Intel® Core™, Xeon®, Atom™ and Xeon Phi™ processors. In OpenNESS, the PCM pod is deployed as a K8s `Daemonset` on every available node. PCM metrics are exposed to Prometheus via the Host's NodePort on each EdgeNode. ->**NOTE**: The PCM feature is intended to run on physical hardware (i.e., no support for VM virtualized Edge Nodes in OpenNESS). Therefore, this feature is disabled by default. The feature can be enabled by setting the `telemetry_pcm_enable` flag in OEK. Additionally, a preset dashboard is created for PCM in Grafana visualizing the most crucial metrics. +>**NOTE**: The PCM feature is intended to run on physical hardware (i.e., no support for VM virtualized Edge Nodes in OpenNESS). Therefore, this feature is disabled by default. The feature can be enabled by setting the `telemetry_pcm_enable` flag in CEEK. Additionally, a preset dashboard is created for PCM in Grafana visualizing the most crucial metrics. #### Usage @@ -265,7 +265,7 @@ Processor Counter Monitor (PCM) is an application programming interface (API) an - Prometheus: responsible for collecting and providing metrics. - Prometheus Adapter: exposes the metrics from Prometheus to a K8s API and is configured to provide metrics from Node Exporter and CollectD collectors. -TAS is enabled by default in OEK, a sample scheduling policy for TAS is provided for [VCAC-A node deployment](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md#telemetry-support). +TAS is enabled by default in CEEK, a sample scheduling policy for TAS is provided for [VCAC-A node deployment](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md#telemetry-support). #### Usage diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md b/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md index e735d715..a4f55dc7 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md @@ -15,7 +15,7 @@ Copyright (c) 2020-2021 Intel Corporation - [References](#references) ## Overview -The Visual Cloud Accelerator Card - Analytics (VCAC-A) equips 2nd Generation Intel® Xeon® processor- based platforms with Iris® Pro Graphics and Intel® Movidius™ VPUs to enhance video codec, computer vision, and inference capabilities. Comprised of one Intel i3-7100U CPU and 12 Intel® Movidius™ VPUs, this PCIe add-in card delivers competent stream inference capability and outstanding total cost of ownership. Provisioning the network edge with VCAC-A acceleration through the OpenNESS Experience Kits (OEK) enables dense and performant media analytics and transcoding pipelines. +The Visual Cloud Accelerator Card - Analytics (VCAC-A) equips 2nd Generation Intel® Xeon® processor- based platforms with Iris® Pro Graphics and Intel® Movidius™ VPUs to enhance video codec, computer vision, and inference capabilities. Comprised of one Intel i3-7100U CPU and 12 Intel® Movidius™ VPUs, this PCIe add-in card delivers competent stream inference capability and outstanding total cost of ownership. Provisioning the network edge with VCAC-A acceleration through the Converged Edge Experience Kits (CEEK) enables dense and performant media analytics and transcoding pipelines. ## Architecture @@ -30,7 +30,7 @@ The VCAC-A installation involves a [two-stage build](https://github.com/OpenVisu 1. VCA host kernel build and configuration: this stage patches the CentOS\* 7.9 kernel and builds the necessary modules and dependencies. 2. VCAC-A system image (VCAD) generation: this stage builds an Ubuntu\*-based (VCAD) image that is loaded on the VCAC-A card. -The OEK automates the overall build and installation process of the VCAC-A card by joining it as a standalone logical node to the OpenNESS cluster. The OEK supports force build VCAC-A system image (VCAD) via flag (force\_build\_enable: true (default value)), it also allows the customer to disable the flag to re-use last system image built. When successful, the OpenNESS controller is capable of selectively scheduling workloads on the "VCA node" for proximity to the hardware acceleration. +The CEEK automates the overall build and installation process of the VCAC-A card by joining it as a standalone logical node to the OpenNESS cluster. The CEEK supports force build VCAC-A system image (VCAD) via flag (force\_build\_enable: true (default value)), it also allows the customer to disable the flag to re-use last system image built. When successful, the OpenNESS controller is capable of selectively scheduling workloads on the "VCA node" for proximity to the hardware acceleration. When onboarding applications such as [Open Visual Cloud Smart City Sample](https://github.com/otcshare/edgeapps/tree/master/applications/smart-city-app) with the existence of VCAC-A, the OpenNESS controller schedules all the application pods onto the edge node except the *video analytics* processing that is scheduled on the VCA node as shown in the figure below. @@ -94,7 +94,7 @@ $ kubectl get no -o json | jq '.items[].metadata.labels' ``` ## VPU, GPU Device Plugins, and HDDL Daemonset -Kubernetes provides the [Device Plugins framework](https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/) that is used to advertise system hardware resources. The device plugins of interest for VCAC-A are: [VPU](https://github.com/intel/intel-device-plugins-for-kubernetes/blob/master/cmd/vpu_plugin/README.md) and [GPU](https://github.com/intel/intel-device-plugins-for-kubernetes/blob/master/cmd/gpu_plugin/README.md). They are installed as part of the VCAC-A install sequence that is performed by the OEK. +Kubernetes provides the [Device Plugins framework](https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/) that is used to advertise system hardware resources. The device plugins of interest for VCAC-A are: [VPU](https://github.com/intel/intel-device-plugins-for-kubernetes/blob/master/cmd/vpu_plugin/README.md) and [GPU](https://github.com/intel/intel-device-plugins-for-kubernetes/blob/master/cmd/gpu_plugin/README.md). They are installed as part of the VCAC-A install sequence that is performed by the CEEK. Another ingredient involved in the inference execution through VCAC-A VPUs is the *HDDL-daemon* that is deployed as a [Kubernetes Daemonset](https://github.com/OpenVisualCloud/Dockerfiles/blob/master/VCAC-A/script/setup_hddl_daemonset.yaml). It acts as an arbiter for the various applications/Pods trying to gain access to VPU resources. Therefore, the OpenNESS cluster is ready for onboarding applications and availing of VCAC-A acceleration without worrying about other dependencies. @@ -106,7 +106,7 @@ default intel-vpu-plugin 1 1 1 1 1 kube-system intel-vpu-hddl 1 1 1 1 1 vcac-zone=yes 31h ... ``` -> VPU and GPU device plugins as well as HDDL Daemonset are deployed in the OpenNESS cluster as part of the VCAC-A installation sequence that is performed by the OEK. +> VPU and GPU device plugins as well as HDDL Daemonset are deployed in the OpenNESS cluster as part of the VCAC-A installation sequence that is performed by the CEEK. ## Telemetry Support VCAC-A telemetry is an integral part of the OpenNESS telemetry suite that enables the Kubernetes scheduler to perform telemetry-aware scheduling decisions. The following metrics are exported: @@ -118,13 +118,13 @@ The VCAC-A VPU metrics are exported by the *NodeExporter* that integrates with P ``` $ /opt/intel/vcaa/vpu_metric/run.sh start ``` -> The VPU metrics exporter script is executed as part of the VCAC-A install sequence that is performed by the OEK. +> The VPU metrics exporter script is executed as part of the VCAC-A install sequence that is performed by the CEEK. ![Exporting VCAC-A VPU Metrics to OpenNESS Telemetry](vcaca-images/vcac-a-vpu-metrics.png) _Figure - Exporting VCAC-A VPU Metrics to OpenNESS Telemetry_ -Telemetry-Aware Scheduling (TAS) is the mechanism of defining policies that the controller aims to fulfill at run-time (based on the collected real-time metrics). A sample VCAC-A VPU telemetry policy is given below that is applied by default as part of the install sequence performed by the OEK. +Telemetry-Aware Scheduling (TAS) is the mechanism of defining policies that the controller aims to fulfill at run-time (based on the collected real-time metrics). A sample VCAC-A VPU telemetry policy is given below that is applied by default as part of the install sequence performed by the CEEK. ```yaml apiVersion: telemetry.intel.com/v1alpha1 @@ -152,7 +152,7 @@ spec: - metricname: vpu_device_utilization operator: LessThan ``` -> The above telemetry policy is applied by default as part of the VCAC-A install sequence performed by OEK. +> The above telemetry policy is applied by default as part of the VCAC-A install sequence performed by CEEK. The diagram below demonstrates an example use of the VCAC-A telemetry within the OpenNESS context: @@ -166,9 +166,9 @@ _Figure - Using VCAC-A Telemetry with OpenNESS_ 4. Now that the VPU device usage became 60, when the `OpenVINO` application turns up, it gets scheduled on VCA pool B in fulfillment of the policy. ## Media-Analytics-VCA Flavor -The pre-defined OpenNESS flavor *media-analytics-vca* is provided to provision an optimized system configuration for media analytics workloads leveraging VCAC-A acceleration. This flavor is applied through the OEK playbook as described in the [OpenNESS Flavors](../flavors.md#media-analytics-flavor-with-vcac-a) document and encompasses the VCAC-A installation. +The pre-defined OpenNESS flavor *media-analytics-vca* is provided to provision an optimized system configuration for media analytics workloads leveraging VCAC-A acceleration. This flavor is applied through the CEEK playbook as described in the [OpenNESS Flavors](../flavors.md#media-analytics-flavor-with-vcac-a) document and encompasses the VCAC-A installation. -The VCAC-A installation in OEK performs the following tasks: +The VCAC-A installation in CEEK performs the following tasks: - Pull the release package from [Open Visual Cloud VCAC-A card media analytics software](https://github.com/OpenVisualCloud/VCAC-SW-Analytics) and the required dependencies - Apply CentOS 7.9 kernel patches and build kernel RPM - Apply module patches and build driver RPM diff --git a/doc/building-blocks/enhanced-platform-awareness/openness_hddl.md b/doc/building-blocks/enhanced-platform-awareness/openness_hddl.md index 06da715f..ca16d0d5 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness_hddl.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness_hddl.md @@ -27,10 +27,10 @@ Each implementation for each hardware is an inference engine plugin. The plugin for the Intel® Movidius™ Myriad™ X HDDL solution, or IE HDDL plugin for short, supports the Intel® Movidius™ Myriad™ X HDDL Solution hardware PCIe card. It communicates with the Intel® Movidius™ Myriad™ X HDDL HAL API to manage multiple Intel® Movidius™ Myriad™ X devices in the card, and it schedules deep-learning neural networks and inference tasks to these devices. ## HDDL OpenNESS Integration -OpenNESS provides support for the deployment of OpenVINO™ applications and workloads accelerated through Intel® Vision Accelerator Design with the Intel® Movidius™ VPU HDDL-R add-in card. As a prerequisite for enabling the support, it is required for the HDDL add-in card to be inserted into the PCI slot of the Edge Node platform. The support is then enabled by setting the appropriate flag - 'ne_hddl_enable' in the 'inventory/default/group_vars/all/10-default.yml' before running OEK playbooks. +OpenNESS provides support for the deployment of OpenVINO™ applications and workloads accelerated through Intel® Vision Accelerator Design with the Intel® Movidius™ VPU HDDL-R add-in card. As a prerequisite for enabling the support, it is required for the HDDL add-in card to be inserted into the PCI slot of the Edge Node platform. The support is then enabled by setting the appropriate flag - 'ne_hddl_enable' in the 'inventory/default/group_vars/all/10-default.yml' before running CEEK playbooks. > **NOTE** No pre-defined flavor is provided for HDDL. If user wants to enable HDDL with flavor, can set flag - 'ne_hddl_enable' in the 'flavors//all.yml'. The node with HDDL card inserted will be labelled as 'hddl-zone=true'. -The OEK automation script for HDDL will involve the following steps: +The CEEK automation script for HDDL will involve the following steps: - Download the HDDL DaemonSet yaml file from [Open Visual Cloud dockerfiles software](https://github.com/OpenVisualCloud/Dockerfiles) and templates it with specific configuration to satifiy OpenNESS need such as OpenVINO version...etc. - Download the OpenVINO™, install kernel-devel and then install HDDL dependencies. - Build the HDDLDdaemon image. @@ -38,7 +38,7 @@ The OEK automation script for HDDL will involve the following steps: - HDDL Daemon automatically brings up on the node with label 'hddl-zone=true'. The HDDL Daemon provides the backend service to manage VPUs and dispatch inference tasks to VPUs. OpenVINO™-based applications that utilizes HDDL hardware need to access the device node '/dev/ion' and domain socket under '/var/tmp' to communicate with the kernel and HDDL service. -> **NOTE** With the default kernel used by OpenNESS OEK, the ion driver will not enabled by OpenVINO™ toolkits, and the shared memory - '/dev/shm' will be used as fallback. More details refer to [installing_openvino_docker_linux](https://docs.openvinotoolkit.org/2020.2/_docs_install_guides_installing_openvino_docker_linux.html) +> **NOTE** With the default kernel used by OpenNESS CEEK, the ion driver will not enabled by OpenVINO™ toolkits, and the shared memory - '/dev/shm' will be used as fallback. More details refer to [installing_openvino_docker_linux](https://docs.openvinotoolkit.org/2020.2/_docs_install_guides_installing_openvino_docker_linux.html) ![HDDL-Block-Diagram](hddl-images/hddlservice.png) diff --git a/doc/devkits/openness-azure-devkit.md b/doc/devkits/openness-azure-devkit.md index 17a69f9b..213667c0 100644 --- a/doc/devkits/openness-azure-devkit.md +++ b/doc/devkits/openness-azure-devkit.md @@ -14,4 +14,4 @@ for automated depoyment, and supports deployment using Porter. It enables cloud ## Getting Started Following document contains steps for quick deployment on Azure: -* [openness-experience-kits/cloud/README.md: Deployment and setup guide](https://github.com/open-ness/openness-experience-kits/blob/master/cloud/README.md) +* [converged-edge-experience-kits/cloud/README.md: Deployment and setup guide](https://github.com/open-ness/converged-edge-experience-kits/blob/master/cloud/README.md) diff --git a/doc/getting-started/converged-edge-experience-kits.md b/doc/getting-started/converged-edge-experience-kits.md index 9b006673..d82d3090 100644 --- a/doc/getting-started/converged-edge-experience-kits.md +++ b/doc/getting-started/converged-edge-experience-kits.md @@ -299,7 +299,7 @@ kernel_version: 3.10.0-1062.9.1.rt56.1033.el7.x86_64 ``` ### Use different non-rt kernel (3.10.0-1062) -The OEK installs a real-time kernel by default. However, the non-rt kernel is present in the official CentOS repository. Therefore, to use a different non-rt kernel, the following overrides must be applied: +The CEEK installs a real-time kernel by default. However, the non-rt kernel is present in the official CentOS repository. Therefore, to use a different non-rt kernel, the following overrides must be applied: ```yaml kernel_repo_url: "" # package is in default repository, no need to add new repository kernel_package: kernel # instead of kernel-rt-kvm diff --git a/doc/getting-started/network-edge/controller-edge-node-setup.md b/doc/getting-started/network-edge/controller-edge-node-setup.md index 7661e9aa..f4b00a66 100644 --- a/doc/getting-started/network-edge/controller-edge-node-setup.md +++ b/doc/getting-started/network-edge/controller-edge-node-setup.md @@ -250,7 +250,7 @@ role: harbor_registry/controlplane role: harbor_registry/node ``` -The following steps are processed by openness-experience-kits during the Harbor registry installation on the OpenNESS control plane node. +The following steps are processed by converged-edge-experience-kits during the Harbor registry installation on the OpenNESS control plane node. * Download Harbor Helm Charts on the Kubernetes Control plane Node. * Check whether huge pages is enabled and templates values.yaml file accordingly. @@ -260,7 +260,7 @@ The following steps are processed by openness-experience-kits during the Harbor * Docker login the Harbor Registry, thus enable pulling, pushing and tag images with the Harbor Registry -On the OpenNESS edge nodes, openness-experience-kits will conduct the following steps: +On the OpenNESS edge nodes, converged-edge-experience-kits will conduct the following steps: * Get harbor.crt from the OpenNESS control plane node and save into the host location /etc/docker/certs.d/ * Docker login the Harbor Registry, thus enable pulling, pushing and tag images with the Harbor Registry @@ -270,12 +270,12 @@ On the OpenNESS edge nodes, openness-experience-kits will conduct the following #### Projects -Two Harbor projects will be created by OEK as below: +Two Harbor projects will be created by CEEK as below: - ```library``` The registry project can be used by edge application developer as default images registries. - ```intel``` The registry project contains the registries for the OpenNESS microservices and relevant kubernetes addon images. Can also be used for OpenNESS sample application images. ### Harbor login -For the nodes inside of the OpenNESS cluster, openness-experience-kits ansible playbooks automatically login and prepare harbor CA certifications to access Harbor services. +For the nodes inside of the OpenNESS cluster, converged-edge-experience-kits ansible playbooks automatically login and prepare harbor CA certifications to access Harbor services. For the external host outside of the OpenNESS cluster, can use following commands to access the Harbor Registry: @@ -427,7 +427,7 @@ Use following example commands to delete a specific image version: Kubernetes uses 3rd party networking plugins to provide [cluster networking](https://kubernetes.io/docs/concepts/cluster-administration/networking/). These plugins are based on the [CNI (Container Network Interface) specification](https://github.com/containernetworking/cni). -OpenNESS Experience Kits provide several ready-to-use Ansible roles deploying CNIs. +Converged Edge Experience Kits provide several ready-to-use Ansible roles deploying CNIs. The following CNIs are currently supported: * [kube-ovn](https://github.com/alauda/kube-ovn) @@ -449,7 +449,7 @@ The following CNIs are currently supported: Multiple CNIs can be requested to be set up for the cluster. To provide such functionality [the Multus CNI](https://github.com/intel/multus-cni) is used. ->**NOTE**: For a guide on how to add new a CNI role to the OpenNESS Experience Kits, refer to [the OpenNESS Experience Kits guide](../../getting-started/converged-edge-experience-kits.md#adding-new-cni-plugins-for-kubernetes-network-edge). +>**NOTE**: For a guide on how to add new a CNI role to the Converged Edge Experience Kits, refer to [the Converged Edge Experience Kits guide](../../getting-started/converged-edge-experience-kits.md#adding-new-cni-plugins-for-kubernetes-network-edge). ### Selecting cluster networking plugins (CNI) diff --git a/doc/orchestration/openness-helm.md b/doc/orchestration/openness-helm.md index 8b7faa0c..ac0d6aaa 100644 --- a/doc/orchestration/openness-helm.md +++ b/doc/orchestration/openness-helm.md @@ -12,7 +12,7 @@ Copyright (c) 2020 Intel Corporation - [References](#references) ## Introduction -Helm is a package manager for Kubernetes\*. It allows developers and operators to easily package, configure, and deploy applications and services onto Kubernetes clusters. For details refer to the [Helm Website](https://helm.sh). With OpenNESS, Helm is used to extend the [OpenNESS Experience Kits](https://github.com/otcshare/openness-experience-kits) Ansible\* playbooks to deploy Kubernetes packages. Helm adds considerable flexibility. It enables users to upgrade an existing installation without requiring a re-install. It provides the option to selectively deploy individual microservices if a full installation of OpenNESS is not needed. And it provides a standard process to deploy different applications or network functions. This document aims to familiarize the user with Helm and provide instructions on how to use the specific Helm charts available for OpenNESS. +Helm is a package manager for Kubernetes\*. It allows developers and operators to easily package, configure, and deploy applications and services onto Kubernetes clusters. For details refer to the [Helm Website](https://helm.sh). With OpenNESS, Helm is used to extend the [Converged Edge Experience Kits](https://github.com/otcshare/converged-edge-experience-kits) Ansible\* playbooks to deploy Kubernetes packages. Helm adds considerable flexibility. It enables users to upgrade an existing installation without requiring a re-install. It provides the option to selectively deploy individual microservices if a full installation of OpenNESS is not needed. And it provides a standard process to deploy different applications or network functions. This document aims to familiarize the user with Helm and provide instructions on how to use the specific Helm charts available for OpenNESS. ## Architecture The below figure shows the architecture for the OpenNESS Helm in this document. @@ -22,7 +22,7 @@ _Figure - Helm Architecture in OpenNESS_ ## Helm Installation -Helm 3 is used for OpenNESS. The installation is automatically conducted by the [OpenNESS Experience Kits](https://github.com/otcshare/openness-experience-kits) Ansible playbooks as below: +Helm 3 is used for OpenNESS. The installation is automatically conducted by the [Converged Edge Experience Kits](https://github.com/otcshare/converged-edge-experience-kits) Ansible playbooks as below: ```yaml - role: kubernetes/helm ``` @@ -39,7 +39,7 @@ OpenNESS provides the following helm charts: - CNI plugins including Multus\* and SRIOV CNI - Video analytics service - 5G control plane pods including AF, NEF, OAM, and CNTF -> **NOTE**: NFD, CMK, Prometheus, NodeExporter, and Grafana leverage existing third-party helm charts: [Container Experience Kits](https://github.com/intel/container-experience-kits) and [Helm GitHub\* Repo](https://github.com/helm/charts). For other helm charts, [OpenNESS Experience Kits](https://github.com/otcshare/openness-experience-kits) Ansible playbooks perform automatic charts generation and deployment. +> **NOTE**: NFD, CMK, Prometheus, NodeExporter, and Grafana leverage existing third-party helm charts: [Container Experience Kits](https://github.com/intel/container-experience-kits) and [Helm GitHub\* Repo](https://github.com/helm/charts). For other helm charts, [Converged Edge Experience Kits](https://github.com/otcshare/converged-edge-experience-kits) Ansible playbooks perform automatic charts generation and deployment. - Sample applications, network functions, and services that can be deployed and verified on the OpenNESS platform: - Applications diff --git a/doc/reference-architectures/ran/openness_ran.md b/doc/reference-architectures/ran/openness_ran.md index 1273a621..91d7c869 100644 --- a/doc/reference-architectures/ran/openness_ran.md +++ b/doc/reference-architectures/ran/openness_ran.md @@ -83,7 +83,7 @@ This section explains the steps involved in building the FlexRAN image. Only L1 tag: 3.10.0-1127.19.1.rt56 # The tag identifying the FlexRAN docker image, # the kernel version used to build FlexRAN can be used as tag ``` -7. Tag the image and push to a local Harbor registry (Harbor registry deployed as part of OpenNESS Experience Kit) +7. Tag the image and push to a local Harbor registry (Harbor registry deployed as part of Converged Edge Experience Kits) ```shell docker tag flexran5g :/intel/flexran5g:3.10.0-1127.19.1.rt56 diff --git a/openness_releasenotes.md b/openness_releasenotes.md index 810db910..c4ed509b 100644 --- a/openness_releasenotes.md +++ b/openness_releasenotes.md @@ -142,7 +142,7 @@ This document provides high-level system features, issues, and limitations infor - Non-Privileged Container: Support deployment of non-privileged pods (CNFs and Applications as reference) - Edge Compute EPA features support for On-Premises - Using Intel® Movidius™ Myriad™ X High Density Deep Learning (HDDL) solution in OpenNESS -- OpenNESS Experience Kit for Network and OnPremises edge +- Converged Edge Experience Kits for Network and OnPremises edge - Offline Release Package: Customers should be able to create an installer package that can be used to install OnPremises version of OpenNESS without the need for Internet access. - 5G NR Edge Cloud deployment support - 5G NR edge cloud deployment support with SA mode From 7646c0d741bc2e8f40ed6c49766aec1660e9a451 Mon Sep 17 00:00:00 2001 From: "xiaopeng,tong" Date: Wed, 24 Mar 2021 13:59:09 +0800 Subject: [PATCH 65/89] update to align with modification in the ido --- doc/building-blocks/emco/openness-emco.md | 66 ++++++++++++++++------- 1 file changed, 47 insertions(+), 19 deletions(-) diff --git a/doc/building-blocks/emco/openness-emco.md b/doc/building-blocks/emco/openness-emco.md index ebb4a052..874a0a4c 100644 --- a/doc/building-blocks/emco/openness-emco.md +++ b/doc/building-blocks/emco/openness-emco.md @@ -69,14 +69,14 @@ The following figure shows the topology overview for the OpenNESS EMCO orchestra _Figure 2 - Topology Overview with OpenNESS EMCO_ All the managed edge clusters and cloud clusters are connected with the EMCO cluster through the WAN network. -- The central orchestration (EMCO) cluster can be installed and provisioned by using the [OpenNESS Central Orchestrator Flavor](https://github.com/otcshare/specs/blob/master/doc/flavors.md). -- The edge clusters and the cloud cluster can be installed and provisioned by using the [OpenNESS Flavor](https://github.com/otcshare/specs/blob/master/doc/flavors.md). +- The central orchestration (EMCO) cluster can be installed and provisioned by using the [OpenNESS Central Orchestrator Flavor](../../flavors.md). +- The edge clusters and the cloud cluster can be installed and provisioned by using the [OpenNESS Flavor](../../flavors.md). - The composite application - [SmartCity](https://github.com/OpenVisualCloud/Smart-City-Sample) is composed of two parts: edge application and cloud (web) application. - The edge application executes media processing and analytics on multiple edge clusters to reduce latency. - The cloud application is like a web application for additional post-processing, such as calculating statistics and display/visualization on the cloud cluster side. - The EMCO user can deploy the SmartCity applications across the clusters. Besides that, EMCO allows the operator to override configurations and profiles to satisfy deployment needs. -This document aims to familiarize the user with EMCO and [OpenNESS deployment flavor](https://github.com/otcshare/specs/blob/master/doc/flavors.md) for EMCO installation and provision, and provide instructions accordingly. +This document aims to familiarize the user with EMCO and [OpenNESS deployment flavor](../../flavors.md) for EMCO installation and provision, and provide instructions accordingly. ## EMCO Introduction @@ -301,11 +301,22 @@ Steps for EMCO Authentication and Authorization Setup: - Apply Authentication and Authorization Policies ### EMCO Installation With OpenNESS Flavor -EMCO supports [multiple deployment options](https://github.com/otcshare/EMCO/tree/main/deployments). [OpenNESS Experience Kit](https://github.com/otcshare/specs/blob/master/doc/getting-started/openness-experience-kits.md) offers the `central_orchestrator` flavor to automate EMCO build and deployment as mentioned below. -- The first step is to prepare one server environment which needs to fulfill the [preconditions](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/controller-edge-node-setup.md#preconditions). -- Then place the EMCO server hostname in `[controller_group]` group in `inventory/default/inventory.ini` file of openness-experience-kit. -> **NOTE**: `[edgenode_group]` and `[edgenode_vca_group]` are not required for configuration, since EMCO micro services just need to be deployed on the Kubernetes* control plane node. -- Run script `./deploy_ne.sh -f central_orchestrator`. Deployment should complete successfully. In the flavor, harbor registry is deployed to provide images services as well. +EMCO supports [multiple deployment options](https://github.com/otcshare/EMCO/tree/main/deployments). [Converged Edge Experience Kits](../../getting-started/converged-edge-experience-kits.md) offers the `central_orchestrator` flavor to automate EMCO build and deployment as mentioned below. +- The first step is to prepare one server environment which needs to fulfill the [preconditions](../../getting-started/network-edge/controller-edge-node-setup.md#preconditions). +- Place the EMCO server hostname in `controller_group/hosts/ctrl.openness.org:` dictionary in `inventory.yml` file of converged-edge-experience-kit. +- Update the `inventory.yaml` file by setting the deployment flavor as `central_orchestrator` + ```yaml + --- + all: + vars: + cluster_name: central_orchestrator_cluster + flavor: central_orchestrator + ... + ``` +> **NOTE**: `edgenode_group:` and `edgenode_vca_group:` are not required for configuration, since EMCO micro services just need to be deployed on the Kubernetes* control plane node. + +> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](../../getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. +- Run script `python3 deploy.py`. Deployment should complete successfully. In the flavor, harbor registry is deployed to provide images services as well. ```shell # kubectl get pods -n emco @@ -322,7 +333,7 @@ emco ovnaction-5d8d4447f9-nn7l6 1/1 Running 0 14m emco rsync-99b85b4x88-ashmc 1/1 Running 0 14m ``` -Besides that, OpenNESS EMCO also provides Azure templates and supports deployment automation for EMCO cluster installation on Azure public cloud. More details refer to [OpenNESS Development Kit for Microsoft Azure](https://github.com/otcshare/ido-specs/blob/master/doc/devkits/openness-azure-devkit.md). +Besides that, OpenNESS EMCO also provides Azure templates and supports deployment automation for EMCO cluster on Azure public cloud. More details refer to [OpenNESS Development Kit for Microsoft Azure](https://github.com/otcshare/ido-specs/blob/master/doc/devkits/openness-azure-devkit.md). ## EMCO Example: SmartCity Deployment - The [SmartCity application](https://github.com/OpenVisualCloud/Smart-City-Sample) is a sample application that is built on top of the OpenVINO™ and Open Visual Cloud software stacks for media processing and analytics. The composite application is composed of two parts: EdgeApp + WebApp (cloud application for additional post-processing such as calculating statistics and display/visualization) @@ -335,6 +346,7 @@ _Figure 11 - SmartCity Deployment Architecture Overview_ The example steps are shown as follows: - Prerequisites - Make one edge cluster and one cloud cluster ready by using OpenNESS Flavor. + - If testing with HPA intent, need to prepare two edge clusters. - Prepare one server with a vanilla CentOS\* 7.9.2009 for EMCO installation. - EMCO installation - Cluster setup @@ -342,14 +354,19 @@ The example steps are shown as follows: - Logical cloud Setup - Deploy SmartCity application +### EMCO installation +Follow the guidance as [EMCO Installation With OpenNESS Flavor](#emco-installation-with-openness-flavor), logon to the EMCO host server and maker sure that Harbor and EMCO microservices are in running status. + ### Cluster Setup -In the step, cluster provider will be created. And both the edge cluster and the cloud cluster will be registered in the EMCO. +The step includes: +- Prepare edge and cloud clusters kubeconfig files, SmartCity helm charts and relevant artifacts. +- Register clusters provider by [EMCO CLI](https://github.com/otcshare/EMCO/tree/main/src/tools/emcoctl). +- Register provider's clusters by [EMCO CLI](https://github.com/otcshare/EMCO/tree/main/src/tools/emcoctl). +- Register EMCO controllers and resource synchroizer by [EMCO CLI](https://github.com/otcshare/EMCO/tree/main/src/tools/emcoctl). -1. After [EMCO Installation With OpenNESS Flavor](#emco-installation-with-openness-flavor), logon to the EMCO host server and maker sure that Harbor and EMCO microservices are in running status. - -2. On the edge and cloud cluster, run the following command to make Docker logon to the Harbor deployed on the EMCO server, thus the clusters can pull SmartCity images from the Harbor: +1. On the edge and cloud cluster, run the following command to make Docker logon to the Harbor deployed on the EMCO server, thus the clusters can pull SmartCity images from the Harbor: ```shell - HARBORRHOST= + HARBORRHOST=:30003 cd /etc/docker/certs.d/ mkdir ${HARBORRHOST} @@ -361,19 +378,19 @@ In the step, cluster provider will be created. And both the edge cluster and the > **NOTE**: should be `:30003`. -3. On the EMCO server, download the [scripts,profiles and configmap JSON files](https://github.com/otcshare/edgeapps/tree/master/applications/smart-city-app/emco). +2. On the EMCO server, download the [scripts,profiles and configmap JSON files](https://github.com/otcshare/edgeapps/tree/master/applications/smart-city-app/emco). -4. Run the command for the environment setup with success return as below: +3. Artifacts Preparation for clusters's kubeconfig, smartcity helm charts and other relevant artifacts + Run the command for the environment setup with success return as below: ```shell # cd cli-scripts/ # ./setup_env.sh -e -d -c -r ``` - > **NOTE**: [SmartCity application](https://github.com/OpenVisualCloud/Smart-City-Sample) secrets need the specific information only accessiable by the edge cluster and the cloud cluster. `setup_env.sh` will automate it. - > **NOTE**: The enviroment setup steps include SmartCity github repo clone, docker images building, helm charts prepration and clusters configuration information preparation. + > **NOTE**: EMCO CLI is used in the setup script, and the steps include SmartCity github repo clone, docker images building, helm charts prepration and clusters configuration information preparation...etc. -5. Run the command for the clusters setup with expected result as below: +4. Run the command for the clusters setup with expected result as below: ```shell # cd cli-scripts/ # ./01_apply.sh @@ -383,9 +400,12 @@ In the step, cluster provider will be created. And both the edge cluster and the ``` > **NOTE**: The cluster setup steps include clusters providers registration, clusters registration, adding labels for the clusters, EMCO controller creation and registration. + > **NOTE**: The `01_apply.sh` script invokes EMCO CLI tool - `emcoctl` and applies resource template file - `01_clusters_template.yaml` which contains the clusters related resources to create in EMCO. For example: Cluster Providers, Labels...etc. ### Project Setup +The step includes: +- Register a project which groups SmartCity application under a common tenant. Run the command for the project setup with expected result as below: @@ -401,6 +421,8 @@ Run the command for the project setup with expected result as below: > **NOTE**: The `02_apply.sh` script invokes EMCO CLI tool - `emcoctl` and applies resource template file - `02_project_template.yaml` which contains the projects related resources to create in EMCO. ### Logical Cloud Setup +The step includes: +- Register a logical cloud associated with the physical clusters. Run the command for the logical cloud setup with expected result as below: @@ -420,6 +442,11 @@ Run the command for the logical cloud setup with expected result as below: > **NOTE**: The `03_apply.sh` script invokes EMCO CLI tool - `emcoctl` and applies resource template file - `03_logical_cloud_template.yaml` which contains the logical cloud related resources to create in EMCO. ### Deploy SmartCity Application +The setup includes: +- Onboard SmartCity Application helm charts and profiles +- Create generic placement intent to specify the edge/cloud cluster locations for each applicaiton of SmartCity +- Create deployment intent references of the generic placement intent and generic actions intent for SmartCity generic kuberenetes resource: configmap, secret...etc. +- Approve and Instantiate SmartCityp deployment 1. Run the command for the SmartCity application deployment with expected result as below: ```shell @@ -433,6 +460,7 @@ Run the command for the logical cloud setup with expected result as below: ``` > **NOTE**: EMCO supports generic K8S resource configuration including configmap, secret,etc. The example offers the usage about [configmap configuration](https://github.com/otcshare/edgeapps/blob/master/applications/smart-city-app/emco/cli-scripts/04_apps_template.yaml) to the clusters. + > **NOTE**: The `04_apply.sh` script invokes EMCO CLI tool - `emcoctl` and applies resource template file - `04_apps_template.yaml` which contains the application related resources to create in EMCO, for example deployment-intent, application helm chart entries, override profiles, configmap...etc. The placement intent for the use case is cluster label name and provider name. 2. Verify SmartCity Application Deployment Information. From c597e194a20fd6b4cb5692aa29482be79336c732 Mon Sep 17 00:00:00 2001 From: Karina Murawko-Wisniewska <48431435+i-karina@users.noreply.github.com> Date: Wed, 24 Mar 2021 15:04:30 +0100 Subject: [PATCH 66/89] Known issues update (#426) --- openness_releasenotes.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/openness_releasenotes.md b/openness_releasenotes.md index cb210aa6..7fbbf997 100644 --- a/openness_releasenotes.md +++ b/openness_releasenotes.md @@ -33,6 +33,7 @@ This document provides high-level system features, issues, and limitations infor - [OpenNESS - 20.09](#openness---2009-2) - [OpenNESS - 20.12](#openness---2012-2) - [OpenNESS - 20.12.02](#openness---201202) + - [OpenNESS - 21.03](#openness---2103-1) - [Known Issues and Limitations](#known-issues-and-limitations) - [OpenNESS - 19.06](#openness---1906-3) - [OpenNESS - 19.06.01](#openness---190601-3) @@ -43,6 +44,7 @@ This document provides high-level system features, issues, and limitations infor - [OpenNESS - 20.09](#openness---2009-3) - [OpenNESS - 20.12](#openness---2012-3) - [OpenNESS - 20.12.02](#openness---201202-1) + - [OpenNESS - 21.03](#openness---2103-2) - [Release Content](#release-content) - [OpenNESS - 19.06](#openness---1906-4) - [OpenNESS - 19.06.01](#openness---190601-4) @@ -347,6 +349,9 @@ There are no non-Intel issues relevant to this release. - Fixed TAS deployment - Updated SR-IOV CNI and device plugin to fix issues with image build in offline package creator +## OpenNESS - 21.03 +- Offline deployment issues related to zlib-devel version 1.2.7-19 + # Known Issues and Limitations ## OpenNESS - 19.06 There are no issues relevant to this release. @@ -397,6 +402,11 @@ There is one issue relevant to this release: it is not possible to remove the ap ## OpenNESS - 20.12.02 - Offline deployment issues related to zlib-devel version 1.2.7-19 +## OpenNESS - 21.03 +- cAdvisor CPU utilization of Edge Node is high and could cause a delay to get an interactive SSH session. A work around is to remove CAdvisor if not needed using `helm uninstall cadvisor -n telemetry` +- An issue appears when the KubeVirt Containerized Data Importer (CDI) upload pod is deployed with Kube-OVN CNI, the deployed pods readiness probe fails and pod is never in ready state. Calico CNI is used by default in OpenNESS when using CDI +- Telemetry deployment with PCM enabled will cause a deployment failure in single node cluster deployments due to conflict with CollectD deployment, it is advised to not use PCM and CollectD at the same time in OpenNESS at this time + # Release Content ## OpenNESS - 19.06 From b9c63f7436404162a1580011ccff5d731da10e63 Mon Sep 17 00:00:00 2001 From: Jameson Date: Wed, 24 Mar 2021 14:30:58 +0000 Subject: [PATCH 67/89] Update openness-network-edge-vm-support.md --- .../openness-network-edge-vm-support.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/applications-onboard/openness-network-edge-vm-support.md b/doc/applications-onboard/openness-network-edge-vm-support.md index 2a575d76..202fdd1e 100644 --- a/doc/applications-onboard/openness-network-edge-vm-support.md +++ b/doc/applications-onboard/openness-network-edge-vm-support.md @@ -81,11 +81,11 @@ The KubeVirt role responsible for bringing up KubeVirt components is enabled by 1. Configure Ansible for KubeVirt: KubeVirt is deployed by default. To provide SRIOV support, configure the following settings: - - Enable kubeovn CNI and SRIOV: + - Enable calico CNI and SRIOV: ```yaml # inventory/default/group_vars/all/10-default.yml kubernetes_cnis: - - kubeovn + - calico - sriov ``` - Enable SRIOV for KubeVirt: @@ -165,7 +165,7 @@ To deploy a sample stateful VM with persistent storage and additionally use a Ge >**NOTE**: Each stateful VM with a new Persistent Volume Claim (PVC) requires a new Persistent Volume (PV) to be created. See more in the [limitations section](#limitations). Also, CDI needs two PVs when creating a PVC and loading a VM image from the qcow2 file: one PV for the actual PVC to be created and one PV to translate the qcow2 image to raw input. ->**NOTE**: An issue appears when the CDI upload pod is deployed with Kube-OVN CNI, the deployed pods readiness probe fails and pod is never in ready state. It is advised that the user uses other CNI such as Calico CNI when using CDI with OpenNESS. +>**NOTE**: An issue appears when the CDI upload pod is deployed with Calico CNI, the deployed pods readiness probe fails and pod is never in ready state. It is advised that the user uses other CNI such as Calico CNI when using CDI with OpenNESS. 1. Create a persistent volume for the VM: @@ -451,7 +451,7 @@ Delete VM, DV, PV, PVC, and the Virtual Disk related to VM from the Edge Node: [node]# rm /var/vd/vol/disk.img ``` -4. Cleanup script `cleanup_ne.sh` does not properly clean up KubeVirt/CDI components, if the user has intentionally/unintentionally deleted one of these components outside the script. +4. Cleanup script `deploy.py --clean` does not properly clean up KubeVirt/CDI components, if the user has intentionally/unintentionally deleted one of these components outside the script. The KubeVirt/CDI components must be cleaned up/deleted in a specific order to wipe them successfully and the cleanup script does that for the user. When a user tries to delete the KubeVirt/CDI operator in the wrong order, the namespace for the component may be stuck indefinitely in a `terminating` state. This is not an issue if the user runs the script to completely clean the cluster but might be troublesome if the user wants to run cleanup for KubeVirt only. To fix this, use: 1. Check which namespace is stuck in a `terminating` state: @@ -476,7 +476,7 @@ The KubeVirt/CDI components must be cleaned up/deleted in a specific order to wi 3. Run clean up script for kubeVirt again: ```shell - [controller]# ./cleanup_ne.sh + [controller]# python3 deploy.py --clean ``` ## Helpful Links From cd32850490eae855a944c0d7abab0f121b3e00bd Mon Sep 17 00:00:00 2001 From: Patryk Matuszak <47594217+patrykxmatuszak@users.noreply.github.com> Date: Wed, 24 Mar 2021 16:18:35 +0100 Subject: [PATCH 68/89] Hugepage docs update - 21.03 (#406) --- .../openness-hugepage.md | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-hugepage.md b/doc/building-blocks/enhanced-platform-awareness/openness-hugepage.md index b68ca799..60bf2a27 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-hugepage.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-hugepage.md @@ -19,23 +19,25 @@ Both applications and network functions can improve performance using HugePages. ## Details of HugePage support on OpenNESS -OpenNESS deployment enables hugepages by default and provides parameters for tuning hugepages: +Deployment of OpenNESS' minimal flavor does not enable the hugepages. +To enable hugepages either use flavor that supports hugepages (e.g. flexran) or enable hugepages by editing `default_grub_params` variable in `group_vars` and/or `host_vars`. Suggested value for hugepage enablement is `default_hugepagesz={{ hugepage_size }} hugepagesz={{ hugepage_size }} hugepages={{ hugepage_amount }}`. + +Next, following parameters can be used for tuning hugepages: * `hugepage_size` - size, which can be either `2M` or `1G` * `hugepage_amount` - amount -By default, these variables have values: - -| Mode | Machine type | `hugepage_amount` | `hugepage_size` | Comments | -| ------------ | ------------ | :---------------: | :-------------: | -------------------------------------------- | -| Network Edge | Controller | `1024` | `2M` | | -| | Node | `1024` | `2M` | | +Previously default values were: +| Machine type | `hugepage_amount` | `hugepage_size` | +|--------------|-------------------|-----------------| +| Controller | `1024` | `2M` | +| Node | `1024` | `2M` | Find below a guide on changing these values. Customizations must be made before OpenNESS deployment. Variables for hugepage customization can be placed in several files: -* `inventory/default/group_vars/controller_group/10-default.yml` and `inventory/default/group_vars/edgenode_group/10-default.yml` will affect Edge Controller and Edge Nodes in every mode -* `inventory/default/host_vars//10-default.yml` will only affect the `` host present in `inventory/default/inventory.ini` (in all modes) -* Hugepages can be also specified for mode and machine type, (e.g., hugepages for On-Premises Edge Node can be set in `network_edge.yml` in a play for Edge Nodes: +* `inventory/default/group_vars/controller_group/10-default.yml` and `inventory/default/group_vars/edgenode_group/10-default.yml` will affect Edge Controller and Edge Nodes +* `inventory/default/host_vars//10-default.yml` will only affect the `` host present in `inventory.yml` +* Hugepages can be also specified inside playbook, however due to Ansible's\* variable priority this is not recommended (it will override both `group_vars` and `host_vars`). For example: ```yaml # network_edge.yml @@ -43,15 +45,14 @@ Variables for hugepage customization can be placed in several files: vars: hugepage_amount: "5000" ``` - >**NOTE**: Due to Ansible’s\* variable precedence, configuring hugepages in `network_edge.yml` is not recommended because it overrides customization in `inventory/default/group_vars` and `inventory/default/host_vars`. The usage is summarized in the following table: -| File | Network Edge | Native On Premises | Edge Controller | Edge Node | Comment | -| --------------------------------------------- | :----------: | :---------: | :------------------------------------: | :-----------------------------------------------: | :-----------------------------------------------------------------------------: | -| `inventory/default/group_vars/controller_group/10-default.yml` | yes | yes | yes | | | -| `inventory/default/group_vars/edgenode_group/10-default.yml` | yes | yes | | yes - every node | | -| `inventory/default/host_vars//10-default.yml` | yes | yes | yes | yes | affects machine specified in `inventory/default/inventory.ini` with name `` | -| `network_edge.yml` | yes | | `vars` under `hosts: controller_group` | `vars` under `hosts: edgenode_group` - every node | not recommended | +| File | Edge Controller | Edge Node | Comment | +|--------------------------------------------------------------------|----------------------------------------|---------------------------------------------------|---------------------------------------------------------------------------------| +| `inventory/default/group_vars/controller_group/10-default.yml` | yes | | | +| `inventory/default/group_vars/edgenode_group/10-default.yml` | | yes - every node | | +| `inventory/default/host_vars//10-default.yml` | yes | yes | affects machine specified in `inventory.yml` with name `` | +| `network_edge.yml` | `vars` under `hosts: controller_group` | `vars` under `hosts: edgenode_group` - every node | not recommended | Note that variables have precedence: 1. **not recommended:** `network_edge.yml` will always take precedence for files from this list (overrides every other var) @@ -71,6 +72,7 @@ Change the following lines in the `inventory/default/group_vars/edgenode_group/1 hugepage_size: "2M" hugepage_amount: "1500" + default_grub_params: "default_hugepagesz={{ hugepage_size }} hugepagesz={{ hugepage_size }} hugepages={{ hugepage_amount }}" ``` * To set 10 of the hugepages with the page size of 1GB for the Edge Nodes: @@ -79,6 +81,7 @@ Change the following lines in the `inventory/default/group_vars/edgenode_group/1 hugepage_size: "1G" hugepage_amount: "10" + default_grub_params: "default_hugepagesz={{ hugepage_size }} hugepagesz={{ hugepage_size }} hugepages={{ hugepage_amount }}" ``` #### Customizing hugepages for specific machine @@ -88,6 +91,7 @@ To specify the size or amount only for a specific machine, `hugepage_size` and/o hugepage_size: "2M" hugepage_amount: "1500" +default_grub_params: "default_hugepagesz={{ hugepage_size }} hugepagesz={{ hugepage_size }} hugepages={{ hugepage_amount }}" ``` ## Reference From 374a56f598bcf4b9ee84d311f68f432cd8dcc2ac Mon Sep 17 00:00:00 2001 From: "xiaopeng,tong" Date: Thu, 25 Mar 2021 13:49:17 +0800 Subject: [PATCH 69/89] align with ido wp for several update --- doc/building-blocks/emco/openness-emco.md | 52 +++++++++++------------ 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/doc/building-blocks/emco/openness-emco.md b/doc/building-blocks/emco/openness-emco.md index 874a0a4c..e9054b46 100644 --- a/doc/building-blocks/emco/openness-emco.md +++ b/doc/building-blocks/emco/openness-emco.md @@ -22,7 +22,7 @@ Copyright (c) 2020-2021 Intel Corporation - [Traffic Controller](#traffic-controller) - [Generic Action Controller](#generic-action-controller) - [Resource Synchronizer](#resource-synchronizer) - - [Placment and Action Controllers in EMCO](#placment-and-action-controllers-in-emco) + - [Placement and Action Controllers in EMCO](#placement-and-action-controllers-in-emco) - [Status Monitoring and Queries in EMCO](#status-monitoring-and-queries-in-emco) - [EMCO Terminology](#emco-terminology-1) - [EMCO API](#emco-api) @@ -215,7 +215,7 @@ To achieve both the usecases, the controller exposes RESTful APIs to create, upd #### Resource Synchronizer This microservice is the one which deploys the resources in edge/cloud clusters. 'Resource contexts' created by various microservices are used by this microservice. It takes care of retrying, in case the remote clusters are not reachable temporarily. -#### Placment and Action Controllers in EMCO +#### Placement and Action Controllers in EMCO This section illustrates some key aspects of the EMCO controller architecture. Depending on the needs of a composite application, intents that handle specific operations for application resources (e.g. addition, modification, etc.) can be created via the APIs provided by the corresponding controller API. The following diagram shows the sequence of interactions to register controllers with EMCO. ![OpenNESS EMCO](openness-emco-images/emco-register-controllers.png) @@ -404,43 +404,39 @@ The step includes: > **NOTE**: The `01_apply.sh` script invokes EMCO CLI tool - `emcoctl` and applies resource template file - `01_clusters_template.yaml` which contains the clusters related resources to create in EMCO. For example: Cluster Providers, Labels...etc. ### Project Setup -The step includes: -- Register a project which groups SmartCity application under a common tenant. +The step invokes EMCO CLI and registers a project which groups SmartCity application under a common tenant. Run the command for the project setup with expected result as below: - ```shell - # cd cli-scripts/ - # ./02_apply.sh - - Using config file: emco_cfg.yaml - http://localhost:31298/v2 - URL: projects Response Code: 201 Response: {"metadata":{"name":"project_smtc","description":"","UserData1":"","UserData2":""}} - ``` + ```shell + # cd cli-scripts/ + # ./02_apply.sh - > **NOTE**: The `02_apply.sh` script invokes EMCO CLI tool - `emcoctl` and applies resource template file - `02_project_template.yaml` which contains the projects related resources to create in EMCO. + Using config file: emco_cfg.yaml + http://localhost:31298/v2 + URL: projects Response Code: 201 Response: {"metadata":{"name":"project_smtc","description":"","UserData1":"","UserData2":""}} + ``` +The `02_apply.sh` script invokes EMCO CLI tool - `emcoctl` and applies resource template file - `02_project_template.yaml` which contains the projects related resources to create in EMCO. ### Logical Cloud Setup -The step includes: -- Register a logical cloud associated with the physical clusters. +The step invokes EMCO CLI and registers a logical cloud associated with the physical clusters. Run the command for the logical cloud setup with expected result as below: - ```shell - # cd cli-scripts/ - # ./03_apply.sh + ```shell + # cd cli-scripts/ + # ./03_apply.sh - Using config file: emco_cfg.yaml - http://localhost:31877/v2 - URL: projects/project_smtc/logical-clouds Response Code: 201 Response: {"metadata":{"name":"default","description":"","userData1":"","userData2":""},"spec":{"namespace":"","level":"0","user":{"user-name":"","type":"","user-permissions":null}}} - http://localhost:31877/v2 - URL: projects/project_smtc/logical-clouds/default/cluster-references Response Code: 201 Response: {"metadata":{"name":"lc-edge01","description":"","userData1":"","userData2":""},"spec":{"cluster-provider":"smartcity-cluster-provider","cluster-name":"edge01","loadbalancer-ip":"0.0.0.0","certificate":""}} - http://localhost:31877/v2 - URL: projects/project_smtc/logical-clouds/default/instantiate Response Code: 200 Response: - ``` + Using config file: emco_cfg.yaml + http://localhost:31877/v2 + URL: projects/project_smtc/logical-clouds Response Code: 201 Response: {"metadata":{"name":"default","description":"","userData1":"","userData2":""},"spec":{"namespace":"","level":"0","user":{"user-name":"","type":"","user-permissions":null}}} + http://localhost:31877/v2 + URL: projects/project_smtc/logical-clouds/default/cluster-references Response Code: 201 Response: {"metadata":{"name":"lc-edge01","description":"","userData1":"","userData2":""},"spec":{"cluster-provider":"smartcity-cluster-provider","cluster-name":"edge01","loadbalancer-ip":"0.0.0.0","certificate":""}} + http://localhost:31877/v2 + URL: projects/project_smtc/logical-clouds/default/instantiate Response Code: 200 Response: + ``` +The `03_apply.sh` script invokes EMCO CLI tool - `emcoctl` and applies resource template file - `03_logical_cloud_template.yaml` which contains the logical cloud related resources to create in EMCO. - > **NOTE**: The `03_apply.sh` script invokes EMCO CLI tool - `emcoctl` and applies resource template file - `03_logical_cloud_template.yaml` which contains the logical cloud related resources to create in EMCO. - ### Deploy SmartCity Application The setup includes: - Onboard SmartCity Application helm charts and profiles From a7a21942e122d2480c4ed2db076f97f6dceb101b Mon Sep 17 00:00:00 2001 From: damiankopyto <48013534+damiankopyto@users.noreply.github.com> Date: Thu, 25 Mar 2021 18:28:59 +0000 Subject: [PATCH 70/89] Remove RAN/XRAN from Open (#421) Remove RAN/XRAN from Open --- doc/reference-architectures/ran/index.html | 14 - .../ran/openness-ran.png | Bin 89180 -> 0 bytes .../ran/openness_ran.md | 340 ------ .../ran/openness_xran.md | 1028 ----------------- .../ran/openness_xran_images/xran_img1.png | Bin 59811 -> 0 bytes .../ran/openness_xran_images/xran_img10.png | Bin 64543 -> 0 bytes .../ran/openness_xran_images/xran_img11.png | Bin 6996 -> 0 bytes .../ran/openness_xran_images/xran_img12.png | Bin 16716 -> 0 bytes .../ran/openness_xran_images/xran_img13.png | Bin 89106 -> 0 bytes .../ran/openness_xran_images/xran_img14.png | Bin 55457 -> 0 bytes .../ran/openness_xran_images/xran_img16.png | Bin 373354 -> 0 bytes .../ran/openness_xran_images/xran_img17.png | Bin 63609 -> 0 bytes .../ran/openness_xran_images/xran_img18.png | Bin 10720 -> 0 bytes .../ran/openness_xran_images/xran_img19.png | Bin 119841 -> 0 bytes .../ran/openness_xran_images/xran_img2.png | Bin 129422 -> 0 bytes .../ran/openness_xran_images/xran_img20.png | Bin 44060 -> 0 bytes .../ran/openness_xran_images/xran_img21.png | Bin 59000 -> 0 bytes .../ran/openness_xran_images/xran_img22.png | Bin 77144 -> 0 bytes .../ran/openness_xran_images/xran_img23.png | Bin 61226 -> 0 bytes .../ran/openness_xran_images/xran_img24.png | Bin 97903 -> 0 bytes .../ran/openness_xran_images/xran_img25.png | Bin 61089 -> 0 bytes .../ran/openness_xran_images/xran_img3.png | Bin 23867 -> 0 bytes .../ran/openness_xran_images/xran_img4.png | Bin 63601 -> 0 bytes .../ran/openness_xran_images/xran_img5.png | Bin 46671 -> 0 bytes .../ran/openness_xran_images/xran_img6.png | Bin 151152 -> 0 bytes .../ran/openness_xran_images/xran_img7.png | Bin 56562 -> 0 bytes .../ran/openness_xran_images/xran_img8.png | Bin 49329 -> 0 bytes .../ran/openness_xran_images/xran_img9.png | Bin 75482 -> 0 bytes 28 files changed, 1382 deletions(-) delete mode 100644 doc/reference-architectures/ran/index.html delete mode 100644 doc/reference-architectures/ran/openness-ran.png delete mode 100644 doc/reference-architectures/ran/openness_ran.md delete mode 100644 doc/reference-architectures/ran/openness_xran.md delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img1.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img10.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img11.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img12.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img13.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img14.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img16.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img17.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img18.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img19.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img2.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img20.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img21.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img22.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img23.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img24.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img25.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img3.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img4.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img5.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img6.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img7.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img8.png delete mode 100644 doc/reference-architectures/ran/openness_xran_images/xran_img9.png diff --git a/doc/reference-architectures/ran/index.html b/doc/reference-architectures/ran/index.html deleted file mode 100644 index 57c7da80..00000000 --- a/doc/reference-architectures/ran/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - ---- -title: OpenNESS Documentation -description: Home -layout: openness ---- -

You are being redirected to the OpenNESS Docs.

- diff --git a/doc/reference-architectures/ran/openness-ran.png b/doc/reference-architectures/ran/openness-ran.png deleted file mode 100644 index 1f46c47efc2ff026aa4f9f9abdf85a596df41f58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89180 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 diff --git a/doc/reference-architectures/ran/openness_ran.md b/doc/reference-architectures/ran/openness_ran.md deleted file mode 100644 index 91d7c869..00000000 --- a/doc/reference-architectures/ran/openness_ran.md +++ /dev/null @@ -1,340 +0,0 @@ -```text -SPDX-License-Identifier: Apache-2.0 -Copyright (c) 2020 Intel Corporation -``` - -# OpenNESS Radio Access Network (RAN) -- [Introduction](#introduction) -- [Building the FlexRAN image](#building-the-flexran-image) -- [FlexRAN hardware platform configuration](#flexran-hardware-platform-configuration) - - [BIOS](#bios) - - [Host kernel command line](#host-kernel-command-line) -- [Deploying and Running the FlexRAN pod](#deploying-and-running-the-flexran-pod) -- [Setting up 1588 - PTP based Time synchronization](#setting-up-1588---ptp-based-time-synchronization) - - [Setting up PTP](#setting-up-ptp) - - [Primary clock](#primary-clock) - - [Secondary clock](#secondary-clock) -- [BIOS configuration](#bios-configuration) -- [References](#references) - -# Introduction -Radio Access Network (RAN) is the edge of wireless network. 4G and 5G base stations form the key network function for the edge deployment. In OpenNESS, FlexRAN is used as a reference for 4G and 5G base stations as well as 4G and 5G end-to-end testing. - -FlexRAN offers high-density baseband pooling that could run on a distributed Telco\* cloud to provide a smart indoor coverage solution and next-generation fronthaul architecture. This 4G and 5G platform provides the open platform ‘smarts’ for both connectivity and new applications at the edge of the network, along with the developer tools to create these new services. FlexRAN running on the Telco Cloud provides low latency compute, storage, and network offload from the edge. Thus, saving network bandwidth. - -FlexRAN 5GNR Reference PHY is a baseband PHY Reference Design for a 4G and 5G base station, using Intel® Xeon® processor family with Intel® architecture. This 5GNR Reference PHY consists of a library of c-callable functions that are validated on several technologies from Intel (Intel® microarchitecture code name Broadwell, Intel® microarchitecture code name Skylake, Cascade Lake, and Ice Lake) and demonstrates the capabilities of the software running different 5GNR L1 features. The functionality of these library functions is defined by the relevant sections in [3GPP TS 38.211, 212, 213, 214, and 215]. Performance of the Intel 5GNR Reference PHY meets the requirements defined by the base station conformance tests in [3GPP TS 38.141]. This library of functions will be used by Intel partners and end customers as a foundation for their product development. Reference PHY is integrated with third-party L2 and L3 to complete the base station pipeline. - -The diagram below shows FlexRAN DU (Real-time L1 and L2) deployed on the OpenNESS platform with the necessary microservices and Kubernetes\* enhancements required for real-time workload deployment. - -![FlexRAN DU deployed on OpenNESS](openness-ran.png) - -This document aims to provide the steps involved in deploying FlexRAN 5G (gNb) on the OpenNESS platform. - ->**NOTE**: This document covers both FlexRAN 4G and 5G. All the steps mentioned in this document use 5G for reference. Refer to the [FlexRAN 4G Reference Solution L1 User Guide #570228](https://cdrdv2.intel.com/v1/dl/getContent/570228) for minor updates needed to build, deploy, and test FlexRAN 4G. - -# Building the FlexRAN image - -This section explains the steps involved in building the FlexRAN image. Only L1 and L2-stub will be part of these steps. Real-time L2 (MAC and RLC) and non-real-time L2 and L3 are out of scope as it is a part of the third-party component. - -1. Contact your Intel representative to obtain the package -2. Untar the FlexRAN package. -3. Set the required environmental variables: - ``` - export RTE_SDK=$localPath/dpdk-19.11 - export RTE_TARGET=x86_64-native-linuxapp-icc - export WIRELESS_SDK_TARGET_ISA=avx512 - export RPE_DIR=${flexranPath}/libs/ferrybridge - export ROE_DIR=${flexranPath}/libs/roe - export XRAN_DIR=${localPath}/flexran_xran - export WIRELESS_SDK_TOOLCHAIN=icc - export DIR_WIRELESS_SDK_ROOT=${localPath}/wireless_sdk - export DIR_WIRELESS_FW=${localPath}/wireless_convergence_l1/framework - export DIR_WIRELESS_TEST_4G=${localPath}/flexran_l1_4g_test - export DIR_WIRELESS_TEST_5G=${localPath}/flexran_l1_5g_test - export SDK_BUILD=build-${WIRELESS_SDK_TARGET_ISA}-icc - export DIR_WIRELESS_SDK=${DIR_WIRELESS_SDK_ROOT}/${SDK_BUILD} - export FLEXRAN_SDK=${DIR_WIRELESS_SDK}/install - export DIR_WIRELESS_TABLE_5G=${flexranPath}/bin/nr5g/gnb/l1/table - ``` - >**NOTE**: The environmental variables path must be updated according to your installation and file/directory names. -4. Build L1, WLS interface between L1, L2, and L2-Stub (testmac): - `./flexran_build.sh -r 5gnr_sub6 -m testmac -m wls -m l1app -b -c` -5. Once the build has completed, copy the required binary files to the folder where the Docker\* image is built. This can be done by using a provided example [build-du-dev-image.sh](https://github.com/otcshare/edgeapps/blob/master/network-functions/ran/5G/du-dev/build-du-dev-image.sh) script from Edge Apps OpenNESS repository, it will copy the files from the paths provided as environmental variables in previous step. The script will copy the files into the right directory containing the Dockerfile and commence the docker build. - ```shell - git clone https://github.com/otcshare/edgeapps.git - cd edgeapps/network-functions/ran/5G/du-dev - ./build-du-dev-image.sh - ``` - The list of binary files that are used is documented in [dockerfile](https://github.com/otcshare/edgeapps/blob/master/network-functions/ran/5G/du-dev/Dockerfile) - - ICC, IPP mpi and mkl Runtime - - DPDK build target directory - - FlexRAN test vectors (optional) - - FlexRAN L1 and testmac (L2-stub) binary - - FlexRAN SDK modules - - FlexRAN WLS share library - - FlexRAN CPA libraries - - -6. The following example reflects the Docker image [expected by Helm chart](https://github.com/otcshare/edgeapps/blob/master/network-functions/ran/charts/du-dev/values.yaml), user needs to adjust the IP address and port of the Harbor registry where Docker image will be pushed: - ```shell - image: - repository: :/intel/flexran5g # Change Me! - please provide IP address and port - # of Harbor registry where FlexRAN docker image is uploaded - tag: 3.10.0-1127.19.1.rt56 # The tag identifying the FlexRAN docker image, - # the kernel version used to build FlexRAN can be used as tag - ``` -7. Tag the image and push to a local Harbor registry (Harbor registry deployed as part of Converged Edge Experience Kits) - - ```shell - docker tag flexran5g :/intel/flexran5g:3.10.0-1127.19.1.rt56 - - docker push :/intel/flexran5g:3.10.0-1127.19.1.rt56 - ``` - -By the end of step 7, the FlexRAN Docker image is created and available in the Harbor registry. This image is copied to the edge node where FlexRAN will be deployed and that is installed with OpenNESS Network edge with all the required EPA features including Intel® FPGA Programmable Acceleration Card (Intel® FPGA PAC) N3000. Please refer to the document [Using FPGA in OpenNESS: Programming, Resource Allocation, and Configuration](../../building-blocks/enhanced-platform-awareness/openness-fpga.md) for details on setting up Intel® FPGA PAC N3000 with vRAN FPGA image. - -# FlexRAN hardware platform configuration -## BIOS -FlexRAN on Intel® microarchitecture code name Skylake and Cascade Lake technology from Intel requires a BIOS configuration that disables C-state and enables Config TDP level-2. Refer to the [BIOS configuration](#bios-configuration) section in this document. - -## Host kernel command line - -``` -usbcore.autosuspend=-1 selinux=0 enforcing=0 nmi_watchdog=0 softlockup_panic=0 audit=0 intel_pstate=disable cgroup_memory=1 cgroup_enable=memory mce=off idle=poll isolcpus=1-23,25-47 rcu_nocbs=1-23,25-47 kthread_cpus=0,24 irqaffinity=0,24 nohz_full=1-23,25-47 hugepagesz=1G hugepages=50 default_hugepagesz=1G intel_iommu=on iommu=pt pci=realloc pci=assign-busses -``` - -Host kernel version - 3.10.0-1062.12.1.rt56.1042.el7.x86_64 - -Instructions on how to configure the kernel command line in OpenNESS can be found in [OpenNESS getting started documentation](../../getting-started/converged-edge-experience-kits.md#customizing-kernel-grub-parameters-and-tuned-profile--variables-per-host) - -# Deploying and Running the FlexRAN pod - -1. Deploy the OpenNESS cluster with [SRIOV for FPGA enabled](../../building-blocks/enhanced-platform-awareness/openness-fpga.md#fpga-fec-ansible-installation-for-openness-network-edge). -2. Confirm that there are no FlexRAN pods and the FPGA configuration pods are not deployed using `kubectl get pods`. -3. Confirm that all the EPA microservice and enhancements (part of OpenNESS playbook) are deployed `kubectl get po --all-namespaces`. - ```yaml - NAMESPACE NAME READY STATUS RESTARTS AGE - kube-ovn kube-ovn-cni-8x5hc 1/1 Running 17 7d19h - kube-ovn kube-ovn-cni-p6v6s 1/1 Running 1 7d19h - kube-ovn kube-ovn-controller-578786b499-28lvh 1/1 Running 1 7d19h - kube-ovn kube-ovn-controller-578786b499-d8d2t 1/1 Running 3 5d19h - kube-ovn ovn-central-5f456db89f-l2gps 1/1 Running 0 7d19h - kube-ovn ovs-ovn-56c4c 1/1 Running 17 7d19h - kube-ovn ovs-ovn-fm279 1/1 Running 5 7d19h - kube-system coredns-6955765f44-2lqm7 1/1 Running 0 7d19h - kube-system coredns-6955765f44-bpk8q 1/1 Running 0 7d19h - kube-system etcd-silpixa00394960 1/1 Running 0 7d19h - kube-system kube-apiserver-silpixa00394960 1/1 Running 0 7d19h - kube-system kube-controller-manager-silpixa00394960 1/1 Running 0 7d19h - kube-system kube-multus-ds-amd64-bpq6s 1/1 Running 17 7d18h - kube-system kube-multus-ds-amd64-jf8ft 1/1 Running 0 7d19h - kube-system kube-proxy-2rh9c 1/1 Running 0 7d19h - kube-system kube-proxy-7jvqg 1/1 Running 17 7d19h - kube-system kube-scheduler-silpixa00394960 1/1 Running 0 7d19h - kube-system kube-sriov-cni-ds-amd64-crn2h 1/1 Running 17 7d19h - kube-system kube-sriov-cni-ds-amd64-j4jnt 1/1 Running 0 7d19h - kube-system kube-sriov-device-plugin-amd64-vtghv 1/1 Running 0 7d19h - kube-system kube-sriov-device-plugin-amd64-w4px7 1/1 Running 0 4d21h - openness eaa-78b89b4757-7phb8 1/1 Running 3 5d19h - openness edgedns-mdvds 1/1 Running 16 7d18h - openness interfaceservice-tkn6s 1/1 Running 16 7d18h - openness nfd-master-82dhc 1/1 Running 0 7d19h - openness nfd-worker-h4jlt 1/1 Running 37 7d19h - openness syslog-master-894hs 1/1 Running 0 7d19h - openness syslog-ng-n7zfm 1/1 Running 16 7d19h - ``` -4. Deploy the Kubernetes job to program the [FPGA](../../building-blocks/enhanced-platform-awareness/openness-fpga.md#fpga-programming-and-telemetry-on-openness-network-edge) -5. Deploy the Kubernetes job to configure the [BIOS](../../building-blocks/enhanced-platform-awareness/openness-bios.md) (note: only works on select Intel development platforms) -6. Deploy the Kubernetes job to configure the [Intel PAC N3000 FPGA](../../building-blocks/enhanced-platform-awareness/openness-fpga.md#fec-vf-configuration-for-openness-network-edge) -7. Deploy the FlexRAN Kubernetes pod using a helm chart provided in Edge Apps repository at `edgeapps/network-functions/ran/charts`: - - ```shell - helm install flexran-pod du-dev - ``` - -8. `exec` into FlexRAN pod `kubectl exec -it flexran -- /bin/bash` -9. Find the PCI Bus function device ID of the FPGA VF assigned to the pod: - - ```shell - printenv | grep FEC - ``` - -11. Edit `phycfg_timer.xml` used for configuration of L1 application with the PCI Bus function device ID from the previous step to offload FEC to this device: - - ```xml - - 1 - - 0000:1d:00.1 - ``` -12. Once in the FlexRAN pod L1 and test-L2 (testmac) can be started. - -# Setting up 1588 - PTP based Time synchronization -This section provides an overview of setting up PTP-based time synchronization in a cloud-native Kubernetes/docker environment. For FlexRAN specific xRAN fronthaul tests and configurations please refer to the xRAN specific document in the reference section. - ->**NOTE**: The PTP-based time synchronization method described here is applicable only for containers. For VMs, methods based on Virtual PTP need to be applied and this is not covered in this document. - -## Setting up PTP -In the environment that needs to be synchronized, install the linuxptp package, which provides ptp4l and phc2sys applications. The PTP setup needs the primary clock and secondary clock setup. The secondary clock will be synchronized to the primary clock. At first, the primary clock will be configured. A supported NIC is required to use Hardware Time Stamps. To check if NIC is supporting Hardware Time Stamps, run the ethtool and a similar output should appear: -```shell -# ethtool -T eno4 -Time stamping parameters for eno4: -Capabilities: - hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE) - software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE) - hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE) - software-receive (SOF_TIMESTAMPING_RX_SOFTWARE) - software-system-clock (SOF_TIMESTAMPING_SOFTWARE) - hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE) -PTP Hardware Clock: 3 -Hardware Transmit Timestamp Modes: - off (HWTSTAMP_TX_OFF) - on (HWTSTAMP_TX_ON) -Hardware Receive Filter Modes: - none (HWTSTAMP_FILTER_NONE) - ptpv1-l4-sync (HWTSTAMP_FILTER_PTP_V1_L4_SYNC) - ptpv1-l4-delay-req (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ) - ptpv2-event (HWTSTAMP_FILTER_PTP_V2_EVENT) -``` - -The time in containers is the same as on the host machine, and so it is enough to synchronize the host to the primary clock. - -PTP requires a few kernel configuration options to be enabled: -- CONFIG_PPS -- CONFIG_NETWORK_PHY_TIMESTAMPING -- CONFIG_PTP_1588_CLOCK - -## Primary clock -This is an optional step if you already have a primary clock. The below steps explain how to set up a Linux system to behave like ptp GM. - -On the primary clock side, take a look at the `/etc/sysconfig/ptp4l` file. It is the `ptp4l` daemon configuration file where starting options will be provided. Its content should look like this: -```shell -OPTIONS=”-f /etc/ptp4l.conf -i ” -``` -`` is the interface name used for time stamping and `/etc/ptp4l.conf` is a configuration file for the `ptp4l` instance. - -To determine if a primary clock PTP protocol is using BMC algorithm, and it is not obvious which clock will be chosen as primary clock. However, users can set the timer that is preferable to be the primary clock. It can be changed in `/etc/ptp4l.conf`. Set `priority1 property` to `127`. - -After that start ptp4l service. - -```shell -service ptp4l start -``` - -Output from the service can be checked at `/var/log/messages`, and for primary clock, it should be like this: - -```shell -Mar 16 17:08:57 localhost ptp4l: ptp4l[23627.304]: selected /dev/ptp2 as PTP clock -Mar 16 17:08:57 localhost ptp4l: [23627.304] selected /dev/ptp2 as PTP clock -Mar 16 17:08:57 localhost ptp4l: [23627.306] port 1: INITIALIZING to LISTENING on INITIALIZE -Mar 16 17:08:57 localhost ptp4l: ptp4l[23627.306]: port 1: INITIALIZING to LISTENING on INITIALIZE -Mar 16 17:08:57 localhost ptp4l: [23627.307] port 0: INITIALIZING to LISTENING on INITIALIZE -Mar 16 17:08:57 localhost ptp4l: ptp4l[23627.307]: port 0: INITIALIZING to LISTENING on INITIALIZE -Mar 16 17:08:57 localhost ptp4l: [23627.308] port 1: link up -Mar 16 17:08:57 localhost ptp4l: ptp4l[23627.308]: port 1: link up -Mar 16 17:09:03 localhost ptp4l: [23633.664] port 1: LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES -Mar 16 17:09:03 localhost ptp4l: ptp4l[23633.664]: port 1: LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES -Mar 16 17:09:03 localhost ptp4l: ptp4l[23633.664]: selected best master clock 001e67.fffe.d2f206 -Mar 16 17:09:03 localhost ptp4l: ptp4l[23633.665]: assuming the grand master role -Mar 16 17:09:03 localhost ptp4l: [23633.664] selected best master clock 001e67.fffe.d2f206 -Mar 16 17:09:03 localhost ptp4l: [23633.665] assuming the grand master role -``` - -The next step is to synchronize PHC timer to the system time. To do that `phc2sys` daemon will be used. Firstly edit configuration file at `/etc/sysconfig/phc2sys`. - -```shell -OPTIONS="-c -s CLOCK_REALTIME -w" -``` - -Replace `` with the interface name. Start the phc2sys service. -```shell -service phc2sys start -``` -Logs can be viewed at `/var/log/messages` and it looks like this: - -```shell -phc2sys[3656456.969]: Waiting for ptp4l... -phc2sys[3656457.970]: sys offset -6875996252 s0 freq -22725 delay 1555 -phc2sys[3656458.970]: sys offset -6875996391 s1 freq -22864 delay 1542 -phc2sys[3656459.970]: sys offset -52 s2 freq -22916 delay 1536 -phc2sys[3656460.970]: sys offset -29 s2 freq -22909 delay 1548 -phc2sys[3656461.971]: sys offset -25 s2 freq -22913 delay 1549 -``` - -## Secondary clock -The secondary clock configuration will be the same as the primary clock except for `phc2sys` options and priority1 property for `ptp4l`. For secondary clock priority1 property in `/etc/ptp4l.conf` should stay with default value (128). Run `ptp4l` service. To keep the system time synchronized to PHC time, change `phc2sys` options in `/etc/sysconfig/phc2sys` using the following command: - -```shell -OPTIONS=”phc2sys -s -w" -``` -Replace `` with the interface name. Logs will be available at `/var/log/messages`. - -```shell -phc2sys[28917.406]: Waiting for ptp4l... -phc2sys[28918.406]: phc offset -42928591735 s0 freq +24545 delay 1046 -phc2sys[28919.407]: phc offset -42928611122 s1 freq +5162 delay 955 -phc2sys[28920.407]: phc offset 308 s2 freq +5470 delay 947 -phc2sys[28921.407]: phc offset 408 s2 freq +5662 delay 947 -phc2sys[28922.407]: phc offset 394 s2 freq +5771 delay 947 -``` -Since this moment, both clocks should be synchronized. Any Docker container running in a pod is using the same clock as host so its clock will be synchronized as well. - - -# BIOS configuration - -Below is the subset of the BIOS configuration. It contains the list of BIOS features that are recommended to be configured for FlexRAN DU deployment. - -```shell -[BIOS::Advanced] - -[BIOS::Advanced::Processor Configuration] -Intel(R) Hyper-Threading Tech=Enabled -Active Processor Cores=All -Intel(R) Virtualization Technology=Enabled -MLC Streamer=Enabled -MLC Spatial Prefetcher=Enabled -DCU Data Prefetcher=Enabled -DCU Instruction Prefetcher=Enabled -LLC Prefetch=Enabled - -[BIOS::Advanced::Power & Performance] -CPU Power and Performance Policy=Performance -Workload Configuration=I/O Sensitive - -[BIOS::Advanced::Power & Performance::CPU C State Control] -Package C-State=C0/C1 state -C1E=Disabled ; Can be enabled Power savings -Processor C6=Disabled - -[BIOS::Advanced::Power & Performance::Hardware P States] -Hardware P-States=Disabled - -[BIOS::Advanced::Power & Performance::CPU P State Control] -Enhanced Intel SpeedStep(R) Tech=Enabled -Intel Configurable TDP=Enabled -Configurable TDP Level=Level 2 -Intel(R) Turbo Boost Technology=Enabled -Energy Efficient Turbo=Disabled - -[BIOS::Advanced::Power & Performance::Uncore Power Management] -Uncore Frequency Scaling=Enabled -Performance P-limit=Enabled - -[BIOS::Advanced::Memory Configuration::Memory RAS and Performance Configuration] -NUMA Optimized=Enabled -Sub_NUMA Cluster=Disabled - -[BIOS::Advanced::PCI Configuration] -Memory Mapped I/O above 4 GB=Enabled -SR-IOV Support=Enabled -``` - -# References -- FlexRAN Reference Solution Software Release Notes - Document ID:575822 -- FlexRAN Reference Solution LTE eNB L2-L1 API Specification - Document ID:571742 -- FlexRAN 5G New Radio Reference Solution L2-L1 API Specification - Document ID:603575 -- FlexRAN 4G Reference Solution L1 User Guide - Document ID:570228 -- FlexRAN 5G NR Reference Solution L1 User Guide - Document ID:603576 -- FlexRAN Reference Solution L1 XML Configuration User Guide - Document ID:571741 -- FlexRAN 5G New Radio FPGA User Guide - Document ID:603578 -- FlexRAN Reference Solution xRAN FrontHaul SAS - Document ID:611268 diff --git a/doc/reference-architectures/ran/openness_xran.md b/doc/reference-architectures/ran/openness_xran.md deleted file mode 100644 index 45fbbd26..00000000 --- a/doc/reference-architectures/ran/openness_xran.md +++ /dev/null @@ -1,1028 +0,0 @@ -```text -SPDX-License-Identifier: Apache-2.0 -Copyright (c) 2020-2021 Intel Corporation -``` - -# O-RAN Front Haul Sample Application in OpenNESS -- [Introduction](#introduction) -- [Dynamic Device Personalization](#dynamic-device-personalization) - - [X710 Flexible Pipeline](#x710-flexible-pipeline) - - [Flow Director](#flow-director) - - [Received Side Scaling](#received-side-scaling) - - [DPDK support](#dpdk-support) -- [O-RAN Specification for vRAN Front Haul](#o-ran-specification-for-vran-front-haul) - - [Front Haul Data Flows](#front-haul-data-flows) - - [U-Plane Packet Structure](#u-plane-packet-structure) - - [C-Plane Packet Structure](#c-plane-packet-structure) - - [S-Plane](#s-plane) -- [Flexible Radio Access Network](#flexible-radio-access-network) - - [5GNR FlexRAN PHY](#5gnr-flexran-phy) - - [xRAN Library](#xran-library) - - [Packet Classification](#packet-classification) - - [xRAN Library Sample Application](#xran-library-sample-application) - - [Precision Time Protocol Synchronization](#precision-time-protocol-synchronization) - - [eCPRI DDP Profile](#ecpri-ddp-profile) -- [xRAN Sample App Deployment in OpenNESS](#xran-sample-app-deployment-in-openness) - - [Hardware Configuration and Checks](#hardware-configuration-and-checks) - - [Deploy xRAN sample app O-DU and O-RU in OpenNESS Network Edge](#deploy-xran-sample-app-o-du-and-o-ru-in-openness-network-edge) - - [Setting up SRIOV](#setting-up-sriov) - - [Amend GRUB and tuned configuration](#amend-grub-and-tuned-configuration) - - [PTP Synchronization](#ptp-synchronization) - - [Deploy Openness NE](#deploy-openness-ne) - - [Configure Interfaces](#configure-interfaces) - - [Build xRAN Sample App](#build-xran-sample-app) - - [Generate Test IQ samples](#generate-test-iq-samples) - - [Create Docker Image](#create-docker-image) - - [Deploy xRAN App Pods with Helm](#deploy-xran-app-pods-with-helm) - - [DDP Profile Deployment](#ddp-profile-deployment) - - [Steps Required to Apply eCPRI Profile through Software](#steps-required-to-apply-ecpri-profile-through-software) -- [Summary](#summary) -- [References](#references) -- [List of abbreviations](#list-of-abbreviations) - -# Introduction -Recent and incoming telecommunication standards for Radio Access Network (RAN) tend to introduce open network interfaces that are expected to become adopted by broad numbers of RAN vendors and operators. Networks based on common standards are thought to be more inclined to innovations. Thus, standardization committees aim to support the global industry vision and encourage emerging multi-vendor, interoperable, and innovative virtualized RAN (vRAN) to enable vRAN shift to the Cloud and exploit the opportunities the Cloud has to offer—scalability, efficiency, cost reduction, and more. Flexible Radio Access Network (FlexRAN), which is part of proof-of-concept work at Intel, demonstrates vRAN deployment on Intel® architecture. It follows the most recent RAN standards and deploys innovative software and hardware solutions proposed by Intel to refine the baseband L1 functionality. Recently, 5GNR FlexRAN has started supporting the open Front Haul\* interface standard introduced by the O-RAN Alliance\* [here](https://www.o-ran.org/specifications). - -The focus of this white paper is to show how OpenNESS facilitates the deployment of 5GNR FlexRAN Front Haul functional units based on O-RAN specifications at the Network Edge. It also demonstrates how OpenNESS may assist in exploiting the capabilities of the X700 family NICs to address the challenges related to 5G RAN evolution including fast-growing user traffic and the move towards the Edge Cloud. -This document describes the Intel® Ethernet Controller X710 new capability known as Dynamic Device Personalization (DDP). It provides the steps for utilizing this feature on the OpenNESS platforms. DDP technology has been previously implemented and tested within LTE FlexRAN L1 and proven to reduce network latency and the number of CPU cycles used for packet processing, leading to the increase of the overall network throughput. Choosing DDP is a promising option for removing the network bottleneck related to packet filtering and realizing stringent latency and throughput requirements imposed onto 5G networks. Tests performed with FlexRAN using LTE Front Haul interface based on Ferry Bridge (FB), the codename of a technology from Intel, and incorporating the DDP capability of Intel® Ethernet Controller X710 showed up to 34% reduction in CPU cycles used for packet processing. Whereas tests performed on Multi-access Edge Computing (MEC) solution demonstrated a nearly 60% reduction in network latency. These findings are already described in an incoming white paper “Dynamic Device Personalization: Intel Ethernet Controller 700 Series - RadioFH Profile Application Note”. Shifting towards DDP for increased performance is also a promising option for the Network Edge. Such deployment has already been tested on Kubernetes\* architecture and described [here](https://builders.intel.com/docs/networkbuilders/intel-ethernet-controller-700-series-dynamic-device-personalization-support-for-cnf-with-kubernetes-technology-guide.pdf). - -# Dynamic Device Personalization -In contrast to the Intel® Ethernet Controller X550 static pipeline, the packet processing pipeline built into Intel® Ethernet Controller X710 is programmable. It can be customized to achieve different packet filtering on separate NICs to meet the requirements of a variety of customers, or it is possible to enable different protocols and classification types (new protocols/filters ) for separate network segments. As a result, 64 unique classification configurations are possible on Intel 700 Series NICs. Intel NIC XL710 supports up to 64 PCTYPEs and up to 192 PTYPEs. However, only 21 PCTYPEs and a few PTYPEs are defined in the default profile. The configuration options are limited because of the limited resources on the hardware itself. Each PCTYPE needs its own filters’ configuration space. Enabling new configurations by overwriting the existing PCTYPES can be achieved through a firmware update. However, DDP capability provides a means to replace the original device configuration profile in run time using a DDP profile. A DDP profile is a binary file that loads new PTYPEs and PCTYPEs into the hardware configuration space. Then, each new PCTYPE needs to be mapped to an unused DPDK flow type. The original profile is saved and may be restored on the device in runtime as well. Some packets may be lost during the profiles switching. -During the processing of incoming traffic, the NIC's internal parser, filters, and switch are used to perform on-NIC packet classification and steer the traffic to specific queues from where the software application can take them over for further processing defined per queue. -To classify new packet types (xRAN) and protocols (eCPRI) on the Intel® Ethernet Controller X710 pipeline, they must be enabled on the NIC through device reconfiguration. Normally, this requires a firmware upgrade involving a cold restart of the server. But with DDP, new packet classification types can be added in runtime, and there is no need for a firmware upgrade requiring machine power off. Intel® Ethernet Controller X710 fully supports DDP since Firmware Version 6.0. - -## X710 Flexible Pipeline -The flexible pipeline added onto the XL710 NIC consists of four main functional units: -* buffer -* parser -* switch -* classifier filter: Flow Director (FD) and Hash Filter (Receive Side Scaling (RSS) - -Before the buffered packet gets to the filters block, its headers are parsed, and specific header fields are extracted into a Field Vector (a metadata buffer that is attached to the packet). The parser detects the packet type (PTYPE), which is saved to the RX descriptor and defines the packet classification type (PCTYPE). Some fields from the Field Vector are used in the next functional block for switching the packet to the proper PF or VF. If FD and hash filters such as RSS are enabled for the pipeline, they are used to select the packet’s destination queue within the PF/VF it had been switched to. The information stored in the Field Vector fields is used by the filters to steer packet destination queues to where the host expects them. -The Intel® Ethernet Controller X710 provides programs with advanced classification and traffic steering functionality due to the following features of its pipeline: -- Multiple queues are available per virtual function (VF) / physical function (PF). - - 1536 queue pairs in the device, 16 queues per VF and 128 VFs – 384 Virtual Station Interfaces (VSIs) in total -- Use of receive-side parser for packet classification. -- Switch and filter blocks use RSS and/or FD. -- The received packets are buffered in a packet buffer. -- The parser inspects different header fields such as Ethernet, IP, and UDP. -- The switch module switches the VSI/PCI function using parsed header fields. -- The flow rules of the switch are programmable by the upper layer software. -- The packet filter/classifier module implements the queue selection logic. -- FD supports exact 8K match rules and wild card rules. -- An 8K exact match rule can use up to 16 flexible bytes, along with L2, L3, and L4 header fields. - -The diagram below depicts the functional units of the Intel® Ethernet Controller X710 pipeline: -![Intel X710 NIC Pipeline](openness_xran_images/xran_img1.png) - -## Flow Director -Flow Director (FD) is a packet filtering functionality provided by DPDK for routing packets to specific queues on NIC ports. DPDK Flow Types are equivalents of PCTYPEs used by the hardware. FD uses Flow Types, specific input set per Flow Type (exact match of the input set’s selected fields -tuples), or flexible payload fields to match packets and direct them accordingly to existing FD rules. A flow rule consists of a set of attributes with a matching pattern and a list of actions. Its primary use is to match actions with Flow Types. Actions that can be performed on the matched packets include dropping, diverting to a specific queue, port, or a virtual/physical device function, performing tunnel offloads, and marking packets. FD uses the Toeplitz hash function to calculate the hash signature of the input set generated for each filtered packet. - -## Received Side Scaling -Received Side Scaling (RSS) is a hash filter used to statistically distribute packets into queues belonging to a queue region by maintaining load balance. The queues are assigned to different processors. Thus, the packet processing work is shared among several processors. RSS calculates the 32-bit hash signature out of the input set selected from the Field Vector. The 32-bit hash function based on the Toeplitz algorithm or an XOR scheme is used for generating that hash. Based on its hash, value flows are assigned to a queue region, including one queue at least. Packets of the same flow will be distributed evenly to all queues within the queue region. -The flow chart below shows an example of using FD and RSS in the pipeline to achieve advanced classification and lookup. - -![Advanced classification and lookup on XL710](openness_xran_images/xran_img2.png) - -## DPDK support -Special Admin Queue (AQ) commands have been added to the Intel® Ethernet Controller X710 firmware version 6 to assist new profile addition/removal to/from the hardware, and to retrieve information about the profiles currently registered on the NIC. The new AQ commands can update NIC configuration tables or read/retrieve their content. DPDK started supporting the DDP feature by providing software calls to the AQ commands gradually through versions 17.05, 17.08, and 17.11. Since then, DPDK provides full support for working with DDP profiles and enables the recognition of protocols not known to DPDK flows (rte_flows). Currently, DPDK APIs can be used to load/remove profiles and retrieve a list of registered profiles and their descriptions. DPDK “testpmd” application deploys RTE APIs to manipulate the DDP profiles and uses them to configure/enhance packet filtering on the NIC. - -More information on Intel® Ethernet Controller X710 flexible pipeline can be found in the [here] (https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xl710-10-40-controller-datasheet.pdf). -# O-RAN Specification for vRAN Front Haul -According to the O-RAN Alliance Fronthaul specification, the physical layer of the 5GNR vRAN network is divided into two functional units: O-RU and O-DU. The functional split of the eNG/gNB functions aims to keep the O-RU simple. O-RAN selected two possible options for the split called 7-2x: Category A (lower split) and Category B (upper split). The difference between the two split categories refers to precoding placement. In category A, precoding is done on the O-DU side. In Category B, it is done on O-RU. The O-RAN Alliance specifies the packet formats for the data flows over the 5GNR O-RAN Front Haul. - -The image below presents the 7-2x functional split and places Precoding on O-DU for Cat A split and on O-RU for Cat B split: -![O-RAN Font Haul Functional Split 7.2x](openness_xran_images/xran_img3.png) - -## Front Haul Data Flows - -The following lists supported data flows in the 5GNR Front Haul defined by O-RAN. - -1. User Plane - - Data Flow 1a: Flows of IQ Data in FFT frequency domain on DL - - Data Flow 1b: Flows of IQ Data in FFT frequency domain on UL - - Data Flow 1c: Flow of PRACH IQ data in FFT frequency domain -2. Control Plane - - Data Flow 2a: Scheduling commands (DL and UL) & Beamforming commands - - Data Flow 2b: LAA Listen-Before-Talk (LBT) configuration commands and requests - - Data Flow 2c: LAA LBT status and response messages -3. Synchronization-Plane - -O-RAN specification includes Management Plane. Examples of the responsibilities of M-plane are: -- Generic static O-RU configuration -- O-RU management -- Compression configuration -- Choosing a power-saving setting - -The following diagram presents the data flows between the proposed O-DU and O-RU: - -![O-DU - O-RU Data Flows](openness_xran_images/xran_img4.png) - -U-Plane packets exchange IQ data between O-RU and O-DU. The data is transmitted symbol by symbol within U-Plane messages. The main purpose of the C-Plane messages is to transmit data control information required for the processing of user data. The data-associated control information is typically sent to every slot (or every TTI in LTE) in a different data flow with its header and encapsulated payload (C-Plane messages). C-Plane messages send information regarding the next expected U-Plane data packets. - -An example of DL C-Plane and DL U-Plane Package Exchange is shown in the following diagram: - -![DL C-Plane and DL U-Plane Package Exchange](openness_xran_images/xran_img6.png) - -Information exchanged between O-DU and O-RU is encapsulated into standard Ethernet frames. Ethernet is used as a transport mechanism for both U-plane and C-plane. M-Plane should be responsible for MAC address resolution and VLAN tagging of the frames. According to the O-RAN standard, the Ethernet header is followed by an eCPRI transport header. Additionally, the eCPRI header can be encapsulated into IP/UDP datagrams but this solution is not supported by 5GNR FlexRAN. - -Native Ethernet Frame with VLAN: - -![Native Ethernet Frame with VLAN](openness_xran_images/xran_img7.png) - -Native IPv4 Packet with VLAN: - -![Native IPv4 Packet with VLAN](openness_xran_images/xran_img8.png) - -eCPRI transport header: - -![eCPRI Transport Header](openness_xran_images/xran_img9.png) - -The “ecpriMessage” field uses different values for U-Plane (0), C-Plane (2), and eCPRI One-Way Delay Measurement message (5), which is not supported in 5GNR FlexRAN. The standard proposes that U-Plane and C-Plane transmit data over separate channels. - -## U-Plane Packet Structure - -Following the transport layer in the U-Plane packets, there is the Radio Application Header used for time reference: - -![Radio Application Header](openness_xran_images/xran_img18.png) - -The Radio Application Header is followed by repeated Data Sections that start with the Application Header that is followed by the data in the form of multiple PRBs. Each PRB is built of 12 IQ samples. - -The header of the Repeated Data Section: - -![Section Application Header](openness_xran_images/xran_img11.png) - -Data Section Payload Format: - -![Section Payload](openness_xran_images/xran_img12.png) - -Currently, Section Type 1, 3, 5, and 6 are defined for U-Plane packets. All of them have the same field structure. - -## C-Plane Packet Structure -eCPRI packets with message type 2 (C-Plane) can contain different section types that apply to the specific purpose of the control plane packet: -- Section Type 0 Unused Resource Blocks or symbols in Downlink or Uplink -- Section Type 1 Most DL/UL radio channels -- Section Type 3 PRACH and mixed-numerology channels -- Section Type 5 UE scheduling information (UE-ID assignment to section) -- Section Type 6 Channel information -- Section Type 7 LAA - -Following the eCPRI transport header, C-Plane messages have a Radio Application Common Header with the number and type of the Radio Application Sections included in the packet, followed by the actual sections. The sections send information applicable to specific PRBs sent over the U-Plane. Sections of different Section Type have different fields structure. - -Radio Application Common Header of a C-Plane Packet Section Type 1: - -![Radio Application Common Header of a C-Plane Packet Section Type 1](openness_xran_images/xran_img19.png) - -The Common Radio Application Header is followed by multiple sections. - -Section Application Header for C-Plane Packet Section Type 1: - -![Section Application Header for C-Plane Packet Section Type 1](openness_xran_images/xran_img13.png) - -Next, each section carried by the C-Plane packets can contain a Section Extension that provides even more information applicable to the PRBs being referred by the section. O-RAN defines the following types of section extensions: -- Section Extension Type 0 - Reserved, for future use -- Section Extension Type 1 - Beamforming weights -- Section Extension Type 2 - Beamforming attributes -- Section Extension Type 3 - DL Precoding configuration parameters and indications, not supported -- Section Extension Type 4 - Modulation compression parameter -- Section Extension Type 5 - Modulation compression additional scaling parameters -- Section Extension Type 6-127 - reserved for future use -As of version 20.04 all section extension types 1 to 5 are supported. - -## S-Plane -For synchronization O-RAN proposes use of Precision Time Protocol (PTP) as it provides much higher precision than NTP - usually up to nanoseconds. PTP messages are transported over Ethernet using ethertype 0x88F7. - -The PTP packet format looks as below: -![Precision Time Protocol Packet Format](openness_xran_images/xran_img14.png) - -# Flexible Radio Access Network - -Wireless network consists of two major components: the Core Network owned by the Internet provider, and Radio Access Network (RAN) including base stations and antennas, known as Remote Radio Head (RRH) or Remote Radio Unit (RRU ), that cover a given territory. RAN which is the edge of the network, consists of multiple eNodeBs (eNB) in LTE networks or gNodeBs (gNB) in NR 5G networks. RRH and eNodeBs together build the network Front Haul. Here the frequency domain representation of the signal sent by a RRH is translated to the time domain to be sent over a digital connection towards eNodeB and then to access the network Back Haul leading to the Core Network. The underlying architecture of the Front Haul network differs with respect to the RAN technology – LTE or 5G. 5GNR networks add a split onto the gNB PHY and divide its functionality into two functional units – Radio Unit (RU) and Distributed Unit (DU). - -## 5GNR FlexRAN PHY - -Flexible Radio Access Network is part of Intel proof of concept which demonstrates flexible 4G and 5G platform powered by Intel® architecture for virtualized RAN deployment that runs in a distributed Cloud environment. Flexran provides 4G and 5GNR baseband PHY reference design - L1, which is integrated with third party L2 and L3 to complete the base station pipeline. FlexRAN demonstrates optimized baseband PHY functionality that achieves high-density baseband pooling in virtualized and distributed Cloud deployments. Solutions deployed by FlexRAN provide a smart indoor coverage and next generation Front Haul architecture for 4G and 5G device connectivity, operator services, user applications and developer tools. FlexRAN deployment in the Cloud has been proven to be latency and energy efficient. More on FlexRAN deployment in the Cloud with use of OpenNESS toolkit is available [here](./openness_ran.md) -5GNR FlexRAN 5GNR provides reference implementation of the control plane (C-plane) and user plane (U-plane) as well as synchronization plane (S-Plane) functionality according to O-RAN Front Haul specification. In this 5G NR vRAN deployment communication between O-RAN Distributed Unit (O-DU) and O-RAN Radio Unit (O-RU) happens over the PHY functional split. The details of the communication have been included in the new standard for Front Haul proposed by the O-RAN Alliance. -According to the standard, messages between the two units travel over the Ethernet connection and adhere to eCPRI data transport protocol. This new O-RAN defined Front Haul functionality has been implemented in FlexRAN and encapsulated in a stand alone library called "xRAN Library". - -In the 5GNR O-RAN scenario by FlexRAN, the xRAN library defines how the data between the two units is exchanged over a DPDK Ethernet port. From the hardware perspective, two networking ports are used for the communication in the Front Haul network as well as to receive PTP synchronization. Time for the xRAN protocol is obtained from system time, where the system timer is synchronized to GPS time via PTP protocol using the Linux PHP package. Linux PTP package is used to synchronize the connected NICs to the PTP primary clock. -From the software perspective, the xRAN library is the core of the O-RAN FH implementation in FlexRAN. It is built on top of DPDK, that provides the interface to the Ethernet port. 5GNR reference PHY (L1) uses the xRAN library to access the interface to O-RU. The interface between the library and PHY is defined to communicate TTI event, symbol time, C-plane information as well as IQ sample data. - -As of 5GNR FlexRAN release 20.04, the following data flows between O-DU and O-RU are supported: - -![Supported Data Flows](openness_xran_images/xran_img20.png) - -5GNR FlexRAN O-RAN FH Thread Performs the following: -- Symbol base “time event” to the rest of the system based on System Clock synchronized to GPS time via PTP -- Baseline polling mode driver performing TX and RX of Ethernet packets -- Most of the packet processing such as Transport header, Application header, Data section header and interactions with the rest of the PHY processing pipeline. -- Baseband Polling of BBDev for FEC on PAC N3000 acceleration card - -5GNR L1app Threads are presented on the diagram: - -![5GNR L1app Threads](openness_xran_images/xran_img16.png) - - -## xRAN Library -The library implements functionality to perform user plane and control plane tasks according to the O-RAN specification. The library defines the packet formats for transporting radio samples between O-RU and O-DU according to the ORAN Fronthaul specification. FlexRAN calls the FH packets "xRAN packets". The library provides functionality for generating these packets, appending IQ samples into their payload, and extracting IQ samples from the packets. The xRAN library as of version 20.04 is ready to be used in the PTP synchronized environment. - -The xRAN library depends on DPDK primitives to perform Ethernet networking in user space, including initialization and control of Ethernet ports. Ethernet ports are expected to be SRIOV virtual functions (VF) but they can be physical functions (PF) as well. -The library is expected to be included in the FlexRAN project via xran_fh_o_du.h, statically compiled and linked with the L1 application as well as DPDK libraries. The xRAN packet processing-specific functionality is encapsulated into this library and not exposed to the rest of the 5GNR pipeline. - -The xRAN Library functionality is broken down into two main sections: -- Ethernet and supporting functionality -- O-RAN specific packet handling - -Ethernet (ethdi) consists of two modules: -- Ethernet implements xRAN specific HW Ethernet initialization, close, send and receive. "ethdi" provides Ethernet level software primitive to handle xRAN packet exchange -The O-RAN layer implements the next set of functionalities: -- Common code specific for both C-plane and U-plane as well as TX and RX -- Implementation of C-plane API available within the library and externally -- The primary function where general library initialization and configuration performed -- Module to provide the status of PTP synchronization -- Timing module where system time is polled -- eCPRI specific transport layer functions -- APIs to handle U-plane packets -- A set of utility modules for debugging (printf) and data tables are included as well. - -The following diagram presents the xRAN Library sublayers: - -![xRAN Library Sublayers](openness_xran_images/xran_img22.png) - -## Packet Classification -The U-Plane and C-Plane data flows are separated based on VLAN assumed to be assigned via M-plane. Two different VLAN IDs are expected to be assigned to C-Plane ad U-Plane packets. VLAN offload feature is used to filter the received C-Plane and U-Plane packets and direct them to separate virtual ports (VFs) (with assigned specific MAC addresses) or to insert proper VLAN IDs into transmitted packets. U-Plane packets are not farther classified. -Next level of classification of the C-Plane packets is based on Section Type and it is performer by the software. Specific packet headers are being stripped off one by one from the processed packet in order to get to the Section Type hidden in the Common Radio Application header. Next, the packet’s sections are further parsed to retrieve the information they carry. The packet‘s sections can be parsed even farther to read the section extensions if they are present. The way the section extensions are parsed depends on the extension type. - -## xRAN Library Sample Application -A sample application was created as part of FlexRAN release to execute test scenarios with features of the xRAN library and test external API as well as timing. The xRAN sample application presents only the minimal functionality of the xRAN library which FlexRAN uses for O-RAN 5GNR Front Haul. The sample application does not include BBU or FEC related thread tasks. - -The diagram below shows xRAN Library Sample Application - the O-DU and O-RU functional units exchanging messages over the Ethernet: - -![xRAN Sample Application](openness_xran_images/xran_img17.png) - -The sample application can act as O-DU or simplified simulation of O-RU depending on configuration file settings. O-DU and O-RU can be run on one or two separate machines. In case of using separate machines they must be synchronized with PTP according to C1 or C3 configuration provided later in this document. O-RU and O_DU must be connected via Ethernet network cable. The sample application on both sides executes using a constant configuration according to settings in corresponding config files (./app/usecase/mu0_10mhz/config_file_o_du.dat and ./app/usecase/mu0_10mhz/config_file_o_ru.dat) and uses binary files with IQ samples as input. Multiple-user cases for different numerologies and different BW are available as examples. -From the start of the process, the application (O-DU) sends DL packets for the U-plane and C-plane and receives U-plane UL packets. Synchronization of O-DU and O-RU sides is achieved via IEEE 1588. - -## Precision Time Protocol Synchronization -Precision Time Protocol based on 1588 IEEE specification uses primary-secondary architecture for time synchronization between machines connected through ETH. The primary clock is a reference clock for the secondary nodes that adapt their clocks to the primary node's clock. Using Physical Hardware Clock called PHC (NIC's own clock) from the primary clock, the precision timestamp packets sent from the Primary Node NIC port can be served for other connected network nodes so nodes adjust their PHC to the primary clock following the IEEE 1588 specification. -For the best precision, PTP uses hardware timestamping to read current time just a moment before the packet is sent to minimize the delays added by the Kernel for processing the packet. In the case of software timestamping, the time is read at the application stage, giving a much larger difference between the time of packet timestamping and its transmission. - -The following image shows the difference between software and hardware time stamping: - -![software vs hardware timestamping](openness_xran_images/xran_img25.png) - -Not every NIC supports hardware timestamping. To verify if the NIC supports hardware timestamping, run the ethtool command for the interface in use: - -Example: - -```shell - - ethtool -T enp134s0f0 -``` - -Sample output: - -```shell - Time stamping parameters for enp134s0f0: - Capabilities: - hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE) - software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE) - hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE) - software-receive (SOF_TIMESTAMPING_RX_SOFTWARE) - software-system-clock (SOF_TIMESTAMPING_SOFTWARE) - hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE) - PTP Hardware Clock: 2 - Hardware Transmit Timestamp Modes: - off (HWTSTAMP_TX_OFF) - on (HWTSTAMP_TX_ON) - Hardware Receive Filter Modes: - none (HWTSTAMP_FILTER_NONE) - ptpv1-l4-sync (HWTSTAMP_FILTER_PTP_V1_L4_SYNC) - ptpv1-l4-delay-req (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ) - ptpv2-l4-event (HWTSTAMP_FILTER_PTP_V2_L4_EVENT) - ptpv2-l4-sync (HWTSTAMP_FILTER_PTP_V2_L4_SYNC) - ptpv2-l4-delay-req (HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ) - ptpv2-l2-event (HWTSTAMP_FILTER_PTP_V2_L2_EVENT) - ptpv2-l2-sync (HWTSTAMP_FILTER_PTP_V2_L2_SYNC) - ptpv2-l2-delay-req (HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ) - ptpv2-event (HWTSTAMP_FILTER_PTP_V2_EVENT) - ptpv2-sync (HWTSTAMP_FILTER_PTP_V2_SYNC) - ptpv2-delay-req (HWTSTAMP_FILTER_PTP_V2_DELAY_REQ) -``` - -Another PTP requirement is for the kernel to be built with a configuration having the following settings enabled: -- CONFIG_PPS -- CONFIG_NETWORK_PHY_TIMESTAMPING -- CONFIG_PTP_1588_CLOCK - -To check, use the following commands: - -```shell - # grep CONFIG_PPS= /boot/config-`uname -r` - CONFIG_PPS=m - - # grep CONFIG_NETWORK_PHY_TIMESTAMPING= /boot/config-`uname -r` - CONFIG_NETWORK_PHY_TIMESTAMPING=y - - # grep CONFIG_PTP_1588_CLOCK= /boot/config-`uname -r` - CONFIG_PTP_1588_CLOCK=m -``` - -To meet the xRAN library requirement, in a scenario with O-DU and O-RU running on separate nodes, the nodes should be synchronized with the use of PTP implementation "PTP for Linux" - a Linux package called "linuxptp" that provides two tools: ptp4l and phc2sys. - -1. ptp4l - -This tool handles all PTP traffic on the NIC port provided for synchronization and updates the node’s NIC PHC. It also determines the primary clock to be used by the node and tracks the status of the synchronization between the primary and secondary node. It observes the offset between the primary and the secondary nodes’ PHC and changes the secondary node PHC's frequency to minimize the offset. - -2. phc2sys - -The PHC clock is independent of the system clock. Synchronizing only PHC does not make the system clock the same as the primary clock. The xRAN library requires the use of the system clock to determine a common point in time on two machines (O-DU and RU) to start transmission at the same moment and keep time frames defined by ORAN Fronthaul specification. The phc2sys application keeps the system clock updated to PHC. It makes it possible to use POSIX timers as a time reference in the xRAN application. - ->**NOTE**: The `linuxptp` package also includes PTP Management Client (PMC). It sends PTP management messages to PTP nodes and can be used by the user to verify the synchronization status from a particular node (primary or secondary). Use this command to check the node's current role in the PTP cluster and verify that it is synchronized. -Example: - -```shell - # pmc -u -b 0 'GET PORT_DATA_SET' - - portIdentity 90e2ba.fffe.2ce324-1 - portState SLAVE - logMinDelayReqInterval 0 - peerMeanPathDelay 0 - logAnnounceInterval 1 - announceReceiptTimeout 3 - logSyncInterval -4 - delayMechanism 1 - logMinPdelayReqInterval 0 - versionNumber 2 - -``` - -## eCPRI DDP Profile -To enhance the filtering described above, a DDP profile for classification of O-RAN Front Haul traffic (xRAN packet format) was generated. The profile is called "eCPRI" DDP profile and is available on request after contacting an Intel representative. Its usage has not been incorporated into the sample application yet. It can be done for future releases following potential interest from a customer. -The eCPRI profile adds new PTYPEs and PCTYPEs to the Intel® Ethernet Controller X710 NIC to enable the classification of xRAN packets on the NIC device. It is defined for the classification of xRAN packets using Native Ethernet (or IP/UDP) and eCPRI protocols for transport over the 5GNR vRAN Front Haul. -The classification is based on the Message Type in the eCPRI header and the Section Type hidden in the Common Radio Application Header within the eCPRI payload of the C-Plane packets. Loading of the eCPRI DDP profile on the NIC enables offloading classification tasks from the application to the hardware to accelerate packet processing in software and optimize core usage within the network Front Haul. -Once the new PCTYPEs are loaded to the NIC configuration space with the DDP profile, the NIC can filter the xRAN packets sent over the network Fronthaul and steer them to queues assigned per PCTYPE. The new eCPRI DDP profile adds 10 new PCTYPEs to the NIC. By loading the DDP profile, the new PCTYPEs are applied to the NIC filters. More PCTYPEs can be added in the future to classify packets based on the information hidden in the eCPRI payload what could enable filtering of even higher granularity. - -The recently generated eCPRI DDP profile is the initial attempt to leverage the classification of xRAN packets by offloading it to the hardware. The xRAN sample application provides a limited functionality of 5GNR Front Haul defined by O-RAN specification. Thus, further work on the 5GNR Front Haul and the eCPRI profile can bring more advanced applications of on-NIC classification with DDP into the 5GNR Front Haul packet processing. -The following is the list of PCTYPES the eCPRI profile provides: - -![eCPRI Profile PCTYPES](openness_xran_images/xran_img21.png) - - -# xRAN Sample App Deployment in OpenNESS -As OpenNESS NE is based on Kubernetes architecture, the xRAN sample application deployed on OpenNESS platforms is expected to work in a pod environment. As of the OpenNESS release 20.06, pods with O-DU and O-RU applications are placed on the same K8s node. Thus, for this scenario, PTP synchronization between O-DU and O-RU is not needed. O-DU and O-RU can be deployed in one or two separate pods. Nevertheless, the default configuration of the xRAN application in OpenNESS is set to deploy them in separate pods. O-DU and O-RU are expected to communicate through an Ethernet connection. The machine hosting the two pods must have one Intel® Ethernet Controller X710 NIC with two ports connected via ETH. The machine must be SRIOV-enabled as two VFs must be created on each of the physical ports and made available to each application pod. - -Deployment of O-DU and O-RU applications on separate K8s nodes will be enabled in a future OpenNESS release. This scenario requires the two nodes to be synchronized according to the Precision Time Protocol (PTP). PTP synchronization of nodes is enabled in OpenNESS 20.06. The instructions are provided [here](#ptp-synchronization). - -The two supported by xRAN sample app configurations are as follows: - -1. O-DU acts as PTP primary clock and O-RU acts as PTP secondary clock and is synchronized to the O-DU clock: - -![PTP configuration C1](openness_xran_images/xran_img23.png) - - -2. O-DU and O-RU are synchronized to another primary clock available in the network: - -![PTP configuration C2](openness_xran_images/xran_img24.png) - - -## Hardware Configuration and Checks -If needed, download and install an updated version of the i40e driver from: www.intel.com. The current recommended version of i40e is 2.10.19.82. However, any latest version of i40e after 2.9.21 is expected to be functional for ORAN FH. -Verify the i40e driver version of the NIC to be used and the firmware version on it. - -```shell - ethtool -i enp134s0f0 - driver: i40e - version: 2.10.19.82 - firmware-version: 7.20 0x800079e6 1.2585.0 - expansion-rom-version: - bus-info: 0000:86:00.0 - supports-statistics: yes - supports-test: yes - supports-eeprom-access: yes - supports-register-dump: yes - supports-priv-flags: yes -``` - -## Deploy xRAN sample app O-DU and O-RU in OpenNESS Network Edge - -Before starting the deployment script, OpenNESS should be configured according to the instructions available [here](../../getting-started/network-edge/controller-edge-node-setup.md) -Additional configuration steps are provided below. - -### Setting up SRIOV -1. Modify the `inventory/default/group_vars/all/10-default.yml` file as follows: - -```yaml - kubernetes_cnis: - - kubeovn - - sriov -``` - -```yaml - ne_nfd_enable: True -``` - -```yaml - kubeovn_dpdk: false -``` - -2. Modify `inventory/default/host_vars//10-default.yml`. Provide the physical addresses of the connected interface to be used by the xRAN sample application and the number of VFs to be created on each of the connected physical ports. Each port needs to have 2 VFs. The SRIOV setting should look similar to: - -```yaml - sriov: - network_interfaces: {enp134s0f0: 2, enp134s0f1: 2} - interface_subnets: [] - interface_ips: [] - network_name: [] - vm_vf_ports: 0 -``` - -Detailed instructions on configuring SRIOV for OpenNESS can be found [here](../../building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md) - -3. Modify SRIOV ConfigMap - -Modify SRIOV ConfigMap. In the file `roles/kubernetes/cni/sriov/controlplane/files/sriov/templates/configMap.yml`, amend the “drivers” entry for SRIOV resource “intel_sriov_dpdk” adding “vfio-pci”. The output should look as below: - -```yaml - { - "resourceName": "intel_sriov_dpdk", - "selectors": { - "vendors": ["8086"], - "devices": ["154c", "10ed"], - "drivers": ["igb_uio", "vfio-pci"] - } - } -``` - -### Amend GRUB and tuned configuration - -In file `./inventory/default/group_vars/edgenode_group.yml`, change the following settings: - ->**NOTE**: These configuration settings are for real-time kernels. The expected kernel version is - 3.10.0-1062.12.1.rt56.1042.el7.x86_64 - -1. Under “Tuned configuration”, set: - -```yaml - tuned_skip: false -``` - -```yaml - tuned_vars: | - isolcpus=1-19,21-39 nosoftlockup skew_tick=1 nohz=on nohz_full=1-19,21-39 rcu_nocbs=1-19,21-39 -``` - -2. Under “GRUB configurations”, set: - -```yaml - hugepage_size: "1G" - hugepage_amount: "40" - additional_grub_params: “processor.max_cstate=1 intel_idle.max_cstate=0 intel_pstate=disable idle=poll selinux=0 enforcing=0 nmi_watchdog=0 audit=0 mce=off kthread_cpus=0,20 irqaffinity=0” -``` - -Host kernel version should be - 3.10.0-1062.12.1.rt56.1042.el7.x86_64 - -Instructions on how to configure the kernel command line in OpenNESS can be found in [OpenNESS getting started documentation](../../getting-started/converged-edge-experience-kits.md#customizing-kernel-grub-parameters-and-tuned-profile--variables-per-host) - -### PTP Synchronization - -To enable PTP synchronization, modify one setting in `./inventory/default/group_vars/all/10-default.yml`: - -```yaml - ptp_sync_enable: true -``` - -For the two nodes that are to be synchronized with PTP, modify files `inventory/default/host_vars/nodeXX/10-default.yml` - -Example: - -For node "node01", modify file `inventory/default/host_vars/node01/10-default.yml` - -1. For PTP Configuration 1 [see](#xran-sample-app-deployment-in-openness) - -- For a node to act as a PTP primary clock (O-DU) to the node running O-RU, provide: - - interface used to connect to its primary clock (ptp_port_gm) and the interface used to connect to the PTP secondary node running O-RU (ptp_port): - -Example: - -```yaml - ptp_port_gm: ens786f0 - - ptp_port: ens786f1 - -``` - -- For a node to act as a PTP node (O-RU), provide: - - the interface used to connect to O-DU - -Example: - -```yaml - ptp_port: enp175s0f0 - -``` - -2. For PTP Configuration 3 [see](#xran-sample-app-deployment-in-openness) - -- For a node to act as a PTP Control Plane (O-DU), provide: - - the interface used to connect to the PTP node (O-RU): - -```yaml - ptp_port: ens786f1 - -``` -- For a node to act as a PTP node (O-RU), provide: - - the interface used to connect to O-DU - -Example: - -```yaml - ptp_port: enp175s0f0 - -``` - -### Deploy Openness NE -Define the `inventory.yml` and then run the deployment script: -```shell - python3 deploy.py -``` -> **NOTE**: for more details about deployment and defining inventory please refer to [CEEK](../../getting-started/converged-edge-experience-kits.md#converged-edge-experience-kit-explained) getting started page. - -Check the `/proc/cmd` output. It should look similar to: - -```shell - #cat /proc/cmdline - - BOOT_IMAGE=/vmlinuz-3.10.0-1160.11.1.rt56.1145.el7.x86_64 root=/dev/mapper/centosroot ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap intel_iommu=on iommu=pt usbcore.autosuspend=-1 selinux=0 enforcing=0 nmi_watchdog=0 softlockup_panic=0 audit=0 intel_pstate=disable cgroup_memory=1 cgroup_enable=memory mce=off idle=poll hugepagesz=1G hugepages=16 hugepagesz=2M hugepages=0 default_hugepagesz=1G isolcpus=1-19,21-39 rcu_nocbs=1-19,21-39 kthread_cpus=0,20 irqaffinity=0,20 nohz_full=1-19,21-39 -``` - -### Configure Interfaces - -At this stage, OpenNESS with enabled SRIOV should be deployed. It is also expected that DPDK version 19.11 is installed on the node, and `vfio-pci` driver is loaded according to instructions given [here](https://cdrdv2.intel.com/v1/dl/getContent/611268). - -Use the following commands to assign the following MAC addresses to the VFs, specifying the physical address of the PFs provided to the SRIOV configuration. - -``` - ip link set vf 1 mac 00:11:22:33:44:66 vlan 1 - ip link set vf 0 mac 00:11:22:33:44:66 vlan 2 - ip link set vf 1 mac 00:11:22:33:44:55 vlan 1 - ip link set vf 0 mac 00:11:22:33:44:55 vlan 2 -``` - -Example: -``` - ip link set enp134s0f0 vf 1 mac 00:11:22:33:44:66 vlan 1 - ip link set enp134s0f0 vf 0 mac 00:11:22:33:44:66 vlan 2 - ip link set enp134s0f1 vf 1 mac 00:11:22:33:44:55 vlan 1 - ip link set enp134s0f1 vf 0 mac 00:11:22:33:44:55 vlan 2 -``` - -The output from the “ip link” command should display interfaces that look similar to: - -```shell - 4: enp134s0f0: mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 - link/ether 3c:fd:fe:ce:24:f0 brd ff:ff:ff:ff:ff:ff - vf 0 MAC 00:11:22:33:44:66, vlan 2, spoof checking on, link-state auto, trust off - vf 1 MAC 00:11:22:33:44:66, vlan 1, spoof checking on, link-state auto, trust off - 5: enp134s0f1: mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 - link/ether 3c:fd:fe:ce:24:f1 brd ff:ff:ff:ff:ff:ff - vf 0 MAC 00:11:22:33:44:55, vlan 2, spoof checking on, link-state auto, trust off - vf 1 MAC 00:11:22:33:44:55, vlan 1, spoof checking on, link-state auto, trust off -``` - -Next, the VFs need to be manually bound to the `vfio-pci` driver using the following command: - - -``` - $RTE_SDK/usertools/dpdk-devbind.py --bind=vfio_pci -``` - -Example: - -```shell - /opt/openness/dpdk-19.11/usertools/dpdk-devbind.py --bind=vfio_pci 0000:86:0a.1 -``` - -Restart the SRIOV device plugin pods from the K8s control plane. - -Execute the command: - -```shell -kubectl get pods -n kube-system -o wide -``` -The output should show the SRIOV device plugin pods among the others. - -Sample output: - -```shell - NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES - coredns-6955765f44-mxxgt 1/1 Running 0 2d15h 10.16.0.3 silpixa00399145 - coredns-6955765f44-slbjq 1/1 Running 0 2d15h 10.16.0.2 silpixa00399145 - etcd-silpixa00399145 1/1 Running 0 2d15h 10.237.222.140 silpixa00399145 - kube-apiserver-silpixa00399145 1/1 Running 0 2d15h 10.237.222.140 silpixa00399145 - kube-controller-manager-silpixa00399145 1/1 Running 0 2d15h 10.237.222.140 silpixa00399145 - kube-multus-ds-amd64-8gw8q 1/1 Running 0 2d15h 10.237.222.140 silpixa00399145 - kube-multus-ds-amd64-xzrg2 1/1 Running 7 2d15h 10.237.223.134 silpixa00400101 - kube-proxy-5s29c 1/1 Running 0 2d15h 10.237.222.140 silpixa00399145 - kube-proxy-wtnz6 1/1 Running 7 2d15h 10.237.223.134 silpixa00400101 - kube-scheduler-silpixa00399145 1/1 Running 0 2d15h 10.237.222.140 silpixa00399145 - sriov-release-kube-sriov-cni-ds-amd64-6tcdx 1/1 Running 7 2d15h 10.237.223.134 silpixa00400101 - sriov-release-kube-sriov-cni-ds-amd64-z79cg 1/1 Running 0 2d15h 10.237.222.140 silpixa00399145 - sriov-release-kube-sriov-device-plugin-amd64-95p6r 1/1 Running 0 2d4h 10.237.222.140 silpixa00399145 - sriov-release-kube-sriov-device-plugin-amd64-jf4vv 1/1 Running 0 2d4h 10.237.223.134 silpixa00400101 - -``` - -Locate the `sriov-release-kube-sriov-device-plugin-amd64_xxxxx` pod deployed on the node with the configured interfaces and delete it. - -Example: - -```shell - kubectl delete pod sriov-release-kube-sriov-device-plugin-amd64_jf4vv -n kube-system -``` - -Verify if the pod has been restarted. Use the following command again: - -```shell - kubectl get pods -n kube-system -o wide -``` - -Now, check if the SRIOV devices have been found. Use the following command: - -```shell - kubectl get node -o json | jq ".status.allocatable" -``` - -Example: - -```shell - kubectl get node silpixa00400101 -o json | jq '.status.allocatable' -``` - -The output should show that four devices have been found: - -```shell - "intel.com/intel_sriov_dpdk": "4", -``` - -### Build xRAN Sample App -Building the xRAN application and supporting software libraries and tools is beyond the scope of this document. Detailed instructions are provided in the documentation related to [O-RAN Front Haul Sample Application] (https://docs.o-ran-sc.org/projects/o-ran-sc-o-du-phy/en/latest/Setup-Configuration_fh.html#a-4-install-and-configure-sample-application). -To build the xRAN sample app as of version 20.04, the following versions of the software are required: -- icc version 19.0.3.206 (gcc version 4.8.5 compatibility) -- [140 driver v2.10.19.82](https://downloadcenter.intel.com/download/24769/Non-Volatile-Memory-NVM-Update-Utility-for-Intel-Ethernet-Network-Adapter-700-Series) -- [X710 NIC FW v7.10](https://sourceforge.net/projects/e1000/files/i40e%20stable/) -- DPDK-19.11 -- [googletest v1.7](https://github.com/google/googletest/releases/tag/release-1.7.0) - -1. Install the icc compiler, DPDK, and googletest according to the steps provided in the xRAN sample app documentation. -2. Download the `flexran_xran` v20.04 package. -3. Untar the package. -4. Set the required environmental variables: - -``` - export RTE_SDK=${localPath}/dpdk-19.11 - export RTE_TARGET=x86_64-native-linuxapp-icc - export XRAN_DIR=${localPath}/flexran_xran - export GTEST_ROOT=${localPath}/gtest - export GTEST_DIR=${localPathg}/gtest -``` -5. Build xRAN: - -```shell - cd $XRAN_DIR - ./build.sh xclean - ./build.sh -``` - -### Generate Test IQ samples - -1. Install Octave version 3.8.2-20.el7.x86_64 on the node: - -```shell - yum install octave-3.8.2-20.el7.x86_64 -``` - -2. Generate test IQ samples: - -```shell - cd flexran_xran/app - octave ./gen_test.m > octave_gen_test.log 2>&1 -``` - -### Create Docker Image -To build the xran-sample-app:1.0 image, the xran (edgeapps/network-functions/xran/) directory needs to have the following items copied into it: - -- flexran_xran – the downloaded fexran_xran package/repository with built xRAN sample app binaries -- dpdk-19.11 – build with target x86_64-native-linuxapp-icc -- gtest – with build googletestv1.7 -- icc_libs - with built icc compiler run time libraries - -The `xran-sample-app` Docker\* image can be built with the provided run.sh script: - -```shell - cd network-functions/xran - ./run.sh -``` - -### Deploy xRAN App Pods with Helm -The edgeapp repository provides Helm charts to deploy the sample xRAN O-DU and O-RU applications on two seperate pods deployed on a single node. - -To deploy the xRAN applications on the pods with the default configuration, run: - -```shell - cd network-functions/helmchart - helm install xran ./xranchart -``` - -Check if the xran-du and xran-ru pods are running: - -```shell - kubectl get pods --all-namespaces -o wide -``` - -Sample output: - -```shell - cdi cdi-apiserver-5f6457f4cb-tn7tv 1/1 Running 7 2d13h - cdi cdi-deployment-db8c54f8d-wk2x5 1/1 Running 7 2d13h - cdi cdi-operator-7796c886c5-ljzws 1/1 Running 7 2d13h - cdi cdi-uploadproxy-556bf8d455-7tx97 1/1 Running 7 2d13h - default xran-du 1/1 Running 0 21h - default xran-ru 1/1 Running 0 21h - kube-ovn kube-ovn-cni-b5p8l 1/1 Running 8 2d13h - kube-ovn kube-ovn-cni-c6hkc 1/1 Running 0 2d13h - kube-ovn kube-ovn-controller-578786b499-dc8sj 1/1 Running 7 2d13h - kube-ovn kube-ovn-controller-578786b499-dxx56 1/1 Running 0 2d13h - kube-ovn ovn-central-5f456db89f-mbhsk 1/1 Running 0 2d13h - kube-ovn ovs-ovn-jlhn6 1/1 Running 0 2d13h - kube-ovn ovs-ovn-wm5ts 1/1 Running 7 2d13h - kube-system coredns-6955765f44-mxxgt 1/1 Running 0 2d13h - kube-system coredns-6955765f44-slbjq 1/1 Running 0 2d13h - kube-system etcd-silpixa00399145 1/1 Running 0 2d13h - kube-system kube-apiserver-silpixa00399145 1/1 Running 0 2d13h - kube-system kube-controller-manager-silpixa00399145 1/1 Running 0 2d13h - kube-system kube-multus-ds-amd64-8gw8q 1/1 Running 0 2d13h - kube-system kube-multus-ds-amd64-xzrg2 1/1 Running 7 2d13h - kube-system kube-proxy-5s29c 1/1 Running 0 2d13h - kube-system kube-proxy-wtnz6 1/1 Running 7 2d13h - kube-system kube-scheduler-silpixa00399145 1/1 Running 0 2d13h - kube-system sriov-release-kube-sriov-cni-ds-amd64-6tcdx 1/1 Running 7 2d13h - kube-system sriov-release-kube-sriov-cni-ds-amd64-z79cg 1/1 Running 0 2d13h - kube-system sriov-release-kube-sriov-device-plugin-amd64-95p6r 1/1 Running 0 2d3h - kube-system sriov-release-kube-sriov-device-plugin-amd64-jf4vv 1/1 Running 0 2d3h - kubevirt virt-api-684fdfbd57-fz24p 1/1 Running 7 2d13h - kubevirt virt-api-684fdfbd57-pkgdj 1/1 Running 7 2d13h - kubevirt virt-controller-64db8cd74c-8lhb4 1/1 Running 7 2d13h - kubevirt virt-controller-64db8cd74c-ks6th 1/1 Running 7 2d13h - kubevirt virt-handler-j9wcf 1/1 Running 7 2d13h - kubevirt virt-operator-559b8d88b7-4m99h 1/1 Running 7 2d13h - kubevirt virt-operator-559b8d88b7-l9djj 1/1 Running 7 2d13h - openness eaa-759fcc549-vhlwd 1/1 Running 7 2d13h - openness edgedns-swpk4 1/1 Running 7 2d13h - openness interfaceservice-ws8mn 1/1 Running 7 2d13h - openness nfd-release-node-feature-discovery-master-65f7cd7f68-44hkd 1/1 Running 0 2d13h - openness nfd-release-node-feature-discovery-worker-k5vjv 1/1 Running 7 2d13h - openness syslog-master-8v2mn 1/1 Running 0 2d13h - openness syslog-ng-xxk8j 1/1 Running 7 2d13h - telemetry prometheus-node-exporter-6hssb 1/1 Running 11 2d13h - telemetry prometheus-server-77b4bdbbd-qq6f2 2/2 Running 0 2d13h - telemetry telemetry-node-certs-slz22 1/1 Running 7 2d13h -``` - -Once started, the pods run the default test case. When the test case is finished, its results are verified by the python script, which is always executed on the pod acting as the O-DU. -To see the results, check the kubectl logs: - -```shell - kubectl logs -f xran-du -``` - -The output should show all tests PASSED. -Sample output: - -```shell - compare results: DL [compression 0] - ('test result :', '/opt/flexran_xran/results/o-ru-rx_log_ant0.txt') - ('test reference:', '/opt/flexran_xran/results/o-du-play_ant0.txt') - 712320 - 712320 - 40 - ('test result :', '/opt/flexran_xran/results/o-ru-rx_log_ant1.txt') - ('test reference:', '/opt/flexran_xran/results/o-du-play_ant1.txt') - 712320 - 712320 - 40 - ('test result :', '/opt/flexran_xran/results/o-ru-rx_log_ant2.txt') - ('test reference:', '/opt/flexran_xran/results/o-du-play_ant2.txt') - 712320 - 712320 - 40 - ('test result :', '/opt/flexran_xran/results/o-ru-rx_log_ant3.txt') - ('test reference:', '/opt/flexran_xran/results/o-du-play_ant3.txt') - 712320 - 712320 - 40 - compare results: UL [compression 0] - - ('test result :', '/opt/flexran_xran/results/o-du-rx_log_ant0.txt') - ('test reference:', '/opt/flexran_xran/results/o-ru-play_ant0.txt') - 712320 - 712320 - 40 - ('test result :', '/opt/flexran_xran/results/o-du-rx_log_ant1.txt') - ('test reference:', '/opt/flexran_xran/results/o-ru-play_ant1.txt') - 712320 - 712320 - 40 - ('test result :', '/opt/flexran_xran/results/o-du-rx_log_ant2.txt') - ('test reference:', '/opt/flexran_xran/results/o-ru-play_ant2.txt') - 712320 - 712320 - 40 - ('test result :', '/opt/flexran_xran/results/o-du-rx_log_ant3.txt') - ('test reference:', '/opt/flexran_xran/results/o-ru-play_ant3.txt') - 712320 - 712320 - 40 - PASS - Wed Jun 10 16:03:17 IST 2020 xRAN sample app test and test verification completed -``` -To remove the pods, use the following command: - -```shell - helm uninstall xran -``` - -Optional Use: - -Helm creates the xRAN pods using parameters for the pod specifications saved in the `xranchart/values.yml` file. -The user can modify the xranchart/values.yml to run different test configurations. - -For example, the configuration can be changed to run both O-DU and O-RU apps on one pod. To achieve this, the user should set the application mode for one of the pods to “ru-du” and the other one to “none”. And then adjust the pods' resources. - -Example: - -```yaml -duApplicationMode: ru-du -ruApplicationMode: none -In this case the O-DU resources must be doubled: -duResources: - #limits sets containers' resource limits - limits: - # sriovResName is the name of the sriov resource - sriovResName: intel_sriov_dpdk - # sriovResAmount is the limit for VFs number under sriovResName - sriovResAmount: 4 - # hugepageSize sets the hugepage size limit to hugepages-2Mi or hugepages-1Gi - hugepageSize: hugepages-1Gi - # hugepageAmount sets the the number of hugepages limit available to each pod - hugepageAmount: 40Gi - # memorySize is the memory size limit for each pod - memorySize: 40Gi - # requests specifies the requested containers' resource - requests: - # sriovResName is the name of the sriov resource - sriovResName: intel_sriov_dpdk - # sriovResAmount is the number of VFs requested - sriovResAmount: 4 - # hugepageSize sets the requested hugepage size to hugepages-2Mi or hugepages-1Gi - hugepageSize: hugepages-1Gi - # hugepageAmount sets the requested number of hugepages available to each pod - hugepageAmount: 40Gi - # memorySize is the size of memory requested for each pod - memorySize: 40Gi - - O-RU resorses should be minimised: -ruResources: - #limits sets containers' resource limits - limits: - # sriovResName is the name of the sriov resource - sriovResName: intel_sriov_dpdk - # sriovResAmount is the limit for VFs number under sriovResName - sriovResAmount: 0 - # hugepageSize sets the hugepage size limit to hugepages-2Mi or hugepages-1Gi - hugepageSize: hugepages-1Gi - # hugepageAmount sets the the number of hugepages limit available to each pod - hugepageAmount: 1Gi - # memorySize is the memory size limit for each pod - memorySize: 1Gi - # requests specifies the requested containers' resource - requests: - # sriovResName is the name of the sriov resource - sriovResName: intel_sriov_dpdk - # sriovResAmount is the number of VFs requested - sriovResAmount: 0 - # hugepageSize sets the requested hugepage size to hugepages-2Mi or hugepages-1Gi - hugepageSize: hugepages-1Gi - # hugepageAmount sets the requested number of hugepages available to each pod - hugepageAmount: 1Gi - # memorySize is the size of memory requested for each pod - memorySize: 1Gi -``` - -## DDP Profile Deployment - -### Steps Required to Apply eCPRI Profile through Software -To enable new PCTYPEs on the Intel® Ethernet Controller X710 NIC, the eCPRI DDP profile must be loaded onto the NIC. This step can be completed with the use of a DPDK test-pmd application or through ethtool commands. This process is well described in “Dynamic Device Personalization Guide: Intel® Ethernet 700 Series Controller – GTPv1 Profile” under section "Using DDP profiles with test-pmd". - -The next required steps could be performed with the use of DPDK test-pmd application following the instructions in the document mentioned above or could be implemented in xRAN sample application. The application should make use of the DPDK APIs developed to support DDP on the Intel® Ethernet 700 series Controller NIC to configure the the pipeline in a specific way that works for xRAN sample applications. The following is the list of the further steps required to enable offloading of xRAN packet filtering to the hardware. Implementation of these steps in FlexRAN L1 application is also described in the white paper on the DDP usage in 4G FlexRAN. - -1. Map all the new PCTYPEs to existing unused DPDK flow types by calling the DPDK function `rte_pmd_i40e_flow_type_mapping_update` for each new PCTYPE. The following PCTYPEs should be enabled: - PCTYPEs: 8, 9, 10, 11, 12, 13 ( C-PLane packets based on Section Type ) - PCTYPE 16 ( all U-Plane packets ) - PCTYPE 17 and 25 (eCPRI packets that couldn't be further categorized based on the known PTYPEs and C-Plane that were not successfully categorized based on Section Type - - >**NOTE1**: PCTYPE 18 does not apply to the xRAN sample app as of v20.04 - >**NOTE2**: Intel® Ethernet Controller X71 has the limit of 8 queue regions per VSI - -2. Generate 8 RSS queue regions - - Add one queue (1 to 7) to each of seven regions for the following PCTYPEs (the limit of queue regions per VSI is 8). This will enable forwarding of this PCTYPES to separate queues: - - PCTYPEs: 8, 9, 10, 11, 12, 13 if assigned to separate queues will enable classification of C-PLane packets based on Section Type - - PCTYPE 0: if assigned to one specific queue, it will enable the forwarding of U-Plane packets to a separate queue - - Add three queues (8 to 10) to one left queue region for the following PCTYPEs (the limit of queue regions per VSI is 8). - - then PCTYPEs 16, 17, and 25 can be forwarded to a common queue (queue 0) as they will mark eCPRI packets that could not be further categorized based on the known PTYPEs - - Call DPDK function `rte_pmd_i40e_rss_queue_region_conf` using `RTE_PMD_I40E_RSS_QUEUE_REGION_SET` as the function argument for operation type. - -3. Assign the flow types to separate queue regions. Use the DPDK function `rte_pmd_i40e_rss_queue_region_conf` and operation type `RTE_PMD_I40E_RSS_QUEUE_REGION_FLOWTYPE_SET` - - - Flow Type for PCTYPEs: 8, 9, 10, 11, 12, 13 should be assigned to seperate queue regions - - Flow Type for PCTYPE 0 should be assigned to a seperate queue region - - Flow Types for PCTYPEs: 16, 17 and 25 should be assigned a common queue region (queue 0) - - -4. Apply the changes on the NIC. The configuration will apply to all ports on the NIC. Queue region configuration should be flashed with DPDK function `rte_pmd_i40e_rss_queue_region_conf` using `RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_ON` as operation type. - -# Summary -Performance results presented currently confirm that DDP capability enabled on 700 series NICs can accelerate packet processing and should be used for improving the performance of wireless networks. The more complex the classification, the higher the visible savings in terms of latency and core utilization. The application of DDP profiles increases network efficiency and leads to better utilization of available CPU resources. - -1. Better core utilization -Moving packet classification and load balancing tasks from the software to the hardware reduces CPU overhead and leads to the reduction of the number of CPU cores needed for packet processing while the freed CPU cores can be used to perform other network tasks. Packet loads on cores are balanced on the NIC, where RSS is enabled to distribute loads of specific packet types equally among assigned queues leading to specific cores. - -2. Reduced packet latency -Full packet classification can be performed on the hardware. The time software needs for packet processing becomes reduced. - -3. Increased throughput -As a result of reduced packet latency, packet throughput grows on the nodes responsible for packet processing, reducing the risk of bottlenecks in the network. - -DDP capability enables firmware updates on the NIC in the run time. It adds support for new and custom protocols and packet classification types, which is a key feature in the open and fast-changing environment like the Cloud. -Previous FlexRAN test cases proved that deployment of DDP profiles on the Intel® Ethernet Controller X710 tends to accelerate the processing of new protocols and packet classification types. It speeds up packet processing and reduces the possibility of network bottlenecks. DDP capability should continue to be implemented in other network sectors to optimize their performance. It should be further utilized to help more complex classification cases to further optimize the network. - - -# References -- Dynamic Device Personalization: Intel® Ethernet 700 Series Controller – RadioFH Profile Application Note, white paper, 2019 -- Dynamic Device Personalization Guide: Intel® Ethernet 700 Series Controller – GTPv1 Profile, 2018 [https://downloadmirror.intel.com/28040/eng/ddp-guide-intel-ethernet-700-series-controller-gtpv1-profile-app-note.pdf](https://downloadmirror.intel.com/28040/eng/ddp-guide-intel-ethernet-700-series-controller-gtpv1-profile-app-note.pdf) -- Enabling new protocol processing with DPDK using Dynamic Device Personalization, presentation [https://www.slideshare.net/MichelleHolley1/enabling-new-protocol-processing-with-dpdk-using-dynamic-device-personalization](https://www.slideshare.net/MichelleHolley1/enabling-new-protocol-processing-with-dpdk-using-dynamic-device-personalization) -- Intel® Ethernet Controller 700 Series - Dynamic Device Personalization Support for CNF with Kubernetes Technology Guide [https://builders.intel.com/docs/networkbuilders/intel-ethernet-controller-700-series-dynamic-device-personalization-support-for-cnf-with-kubernetes-technology-guide.pdf](https://builders.intel.com/docs/networkbuilders/intel-ethernet-controller-700-series-dynamic-device-personalization-support-for-cnf-with-kubernetes-technology-guide.pdf) -- Intel® Ethernet Controller 700 Series Dynamic Device Personalization presentation at DPDK summit [https://www.youtube.com/watch?v=X8aMDdAnnBI](https://www.youtube.com/watch?v=X8aMDdAnnBI) -- Intel® Ethernet Controller X710/XXV710/XL710 datasheet [https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xl710-10-40-controller-datasheet.pdf](https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xl710-10-40-controller-datasheet.pdf) -- O-RAN Fronthaul Control, User and Synchronization Plane Specification Version 3.0 - April 2020 (O-RAN.WG4.CUS.0-v03.00) [https://www.o-ran.org/specifications](https://www.o-ran.org/specifications) -- Precision Time Protocol on Linux, presentation, 2014 [https://events.static.linuxfound.org/sites/events/files/slides/lcjp14_ichikawa_0.pdf](https://events.static.linuxfound.org/sites/events/files/slides/lcjp14_ichikawa_0.pdf) -- xRAN Front Haul Software Architecture Specification v20.04 - [https://cdrdv2.intel.com/v1/dl/getContent/611268](https://cdrdv2.intel.com/v1/dl/getContent/611268) - -# List of abbreviations -- API: Application Program Interface -- AQ: Admin Queue Command -- BBU: Base Band Unit -- CLI: Command Line Interface -- eCPRI: Enhanced Common Public Radio Interface -- CPU: Central Processing Unit -- DDP: Dynamic Device Personalization -- DPDK: Data Plane Development Kit -- eNB: Evolved base station, eNodeB -- gNB: Next generation base station, gNodeB -- EPC: Evolved Packet Core -- FD: Flow Director -- FEC: Forward Error Correction -- FH: Front Haul -- FlexRAN: Flexible Radio Access Network -- FPGA: Field Programmable Gate Array -- FW: Firmware -- GTP: GPRS Tunneling Protocol -- IA: Intel Architecture -- IP: Internet Protocol -- LTE: Long-Term Evolution -- MEC: Multi-access Edge Computing -- NIC: Network Interface Controller -- NR: New Radio -- O-DU: O-RAN Distributed Unit -- O-RAN: Open Radio Access Network -- O-RU: O-RAN Radio Unit -- PCI: Peripheral Component Interconnect -- PCTYPE: Packet Classification Type -- PF: Physical Function -- PTP: Precision Time Protocol -- PTYPE: Packet Type -- PRACH: Physical Random Access Channel -- PUSH: Physical Uplink Shared Channel -- RAN: Radio Access Network -- RRH: Remote Radio Head -- RSS: Receive Side Scaling -- RU: Radio Unit -- RX: Reception -- SRIOV: Single Root Input/Output Virtualization -- UDP: User Datagram Protocol -- VF: Virtual Function -- VLAN: Virtual Local Area Network -- vRAN: Virtualized Radio Access Network -- VSI: Virtual Station Interface diff --git a/doc/reference-architectures/ran/openness_xran_images/xran_img1.png b/doc/reference-architectures/ran/openness_xran_images/xran_img1.png deleted file mode 100644 index 26262d329643d3a97070444bb823de925aa2c99b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59811 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 diff --git a/doc/reference-architectures/ran/openness_xran_images/xran_img10.png b/doc/reference-architectures/ran/openness_xran_images/xran_img10.png deleted file mode 100644 index 2f93376bac061df605ae0f4e2b39eb86a7b3a953..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64543 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%0DBjX)R`GZF^e7$Ay1$9?_kcd()^|5u7!!5 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 diff --git a/doc/reference-architectures/ran/openness_xran_images/xran_img11.png b/doc/reference-architectures/ran/openness_xran_images/xran_img11.png deleted file mode 100644 index 3106f3b9556856e51be47d968075f074d206cf46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6996 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 AbN~PV diff --git a/doc/reference-architectures/ran/openness_xran_images/xran_img12.png b/doc/reference-architectures/ran/openness_xran_images/xran_img12.png deleted file mode 100644 index b1a90fdd0c273793a2732cca70fa8879b69256bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16716 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 diff --git a/doc/reference-architectures/ran/openness_xran_images/xran_img13.png b/doc/reference-architectures/ran/openness_xran_images/xran_img13.png deleted file mode 100644 index da01a99f6dbdd7877662b2ba753a28cb1e4a1f27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89106 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

i_Mc7y+nv{#wFSzqCTR2)-E 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 B=7q)mR@t@MA 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 diff --git a/doc/reference-architectures/ran/openness_xran_images/xran_img16.png b/doc/reference-architectures/ran/openness_xran_images/xran_img16.png deleted file mode 100644 index c2892468416e16cb83abab1b080a63312c0e44fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 373354 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

~}bi%O}zbxT)Y!jW6b0gzis-6M}a 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 baW5EbUL`ij;_0BT`=O$wp;#{eBKW@myOZFR diff --git a/doc/reference-architectures/ran/openness_xran_images/xran_img17.png b/doc/reference-architectures/ran/openness_xran_images/xran_img17.png deleted file mode 100644 index 21ef45a2329992298b18051cba7b23330df38819..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63609 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�|aQCch-Qx?VN{xGasK8G+^Fs0Fd>E(K;qE9i-)ev;WX62g>|T9!vhLHlmRLUfN2lrE|7os4hb9z z`=&WSHki@^R+Tm|54!Bo^j&agjb-+Xr?CS@CO{K$d`KIr#cL6ruA4b=m+exDrV{3b z+WZ-+3}fH^o9z-yfR$ zX!5J<*=dXJZO#6?ze*Wo)BLY!(C(5=_LlT#RG~u3>#YJnXNii53EMyCCZBHP;Gm_e zy7%iwd^xTG*eN@%T~jp1oKW~y3I0=uCef%Y8=MJCR5KUy(=C z%S&i$ygVd|DX>fU_C96q&K%>7^?yPU^^r4sKi-m69Q5t}FgCTgQZ%1q&{sZ1&w+O~>v;y6=Gel2~+p zlM%-ayy)MD&rDie4a5f5UwM+d{n@XcObe<;y!t=dp$oL+!gPO&!+JiKt-*d8xDt0) z`7tt%mT6(Z$}$y@mv;@WO2LL2Lcpmy0bif;WMC!t&`WGKRWpB#?E}i z_W`YHe>@>Fs`#YDM=3*XN*wH()QcUvCtt_bZtvg}) za&4=e*G60LO1P)51ZP8?HVkV$sIxQhzhlG@GQoHTD*=vC#tl0ZZzP{33gWmK9n6})NY-+=snWaZ%W%UWNx8{1h#kl7zLG!id zQsN6#;I9x&tf~+*+mZUD00S?$-G#-ObuSYiJU6)IdVAh2bh-w)xs}(?P-!%ejrnml zUVu;HE%g@|suc^|XeJU0^unYKEjIBENHGbc&C?_tkp1N_=s8A7U#YpW>O-3YibqZuT|c^tP-exLkZ2%t7%q1K0D! zZq@d`>FRH@C~}%$Yy3(k1b!VFNmkl}aayOmo5Z=;)u{7R`PBbpVl(de7I)hMzr#VH zlvs$Yb?lHgKHuA7$tcL)`lXfJRte?U$KC6|uk|^y7f-zwoOk9r?oC!h{&$wQXDEak z3RAMpyXG@8NCgmT8Ai?Ys8#Auj(YyRW|N)`+~i+6A0$rg9M%g5tT3hSX>t1h~L@Q`Dgb#`(Ml4;(+Udf?tbURgM(NZ(If4sG&Gj zk-+Vbm4hXj|ArK;#NRL)hc8N~O0NY4*#U>ginp&u`L}gj6CU1S49b4f5}rjQA)d*I-eeg=Z)FGzq;O%+x4dr4U(K!aCaUrmXzG7rvSSK%i-VNF#Cby{n=*T|4J5fIh^jYv`q=QyZ^}XE{vXBq0+d88mus@j3br* zNpoc7AY-9Gv@Ud(r2t)&mcQb|dOvcF?;sJ&wD(Bb=cKLaX>WL0oyaO|KfjV3ihKr< z{mU%?$qo0#d`k(JIT9%1{0=xdRUIf zZ4Sl$o2Yt^uIe4i0rf8uVgpF}^{r%3^O+5l^>`bua;8xBf3dJ67w3~W|BL^dHnF$m zy*jxrP8IhBGBxly0jrKXynK)#Cob zYQVb#j^!&kxqJ(-Wr-0Jo-`6C5hh?n(q~;B@Xg_J)nR;LHg>+q)_ktWfr`rW9Acf| z*IavzNC7AOH|^Uh_@~4H<55IBoqL(DJ9>41ME>va#PmBf`46-Fed06a8C+``p5p7s zv&rmH7j(Z22k7s&FGm?~yPxIC(o?DWP*}RphXG?fGmlB5RM-csa2>s{J#RAWPv)(F zaB6OLJk&DOW_*)6AAk-Ood49dmb~pjLpZZ}{gRvt7@*B7H;Q3Z3^ecmtZdve-_G=} za&JEOzN2c=<}fc@uRk(@$?l8`9rJ;}$7c(>r!`;+P;ZcBw;Ez17iECYVow*P1**6| zOs)UaSoJ!d3uX$=ZgY=-iMPzb4Opm|m$3M{z{SUtxIq!4H&tYtf3Vhp<&h#7eOF%b z0LM@$;8mk=yC`L`hpZXolgx&WUulc?AoP=Mxr??#$Zqf%WWynQjw&Vr&RAnPNPw+@ zZ!I_F^MW1@+9p=E$LaeW^^zakV}O@#Ac6+A&9T!-X7piL;ltqa*S}FlZ23U7B2xlC z@2S*XEPKl+Jaan%T&Cf28s<|xa||kHk)Lk=uU-QT6z^~)RbLA{wmRxO`Rc{lJcZOz z7Zzr|=}?>9M)ST*4a)Daj!hrq$0s+eDS~W5_PGt4or&!FXdu0o8QkqXxYT-q_eaZi z+l+nPPVDU4PkrWy3>dkZPX*2e=A!kCJj@opy)zW^e9*d{C3X8n;q=CrL_ZWz{L9Uo zD(=T^s~paR1JnO^w@0qz>ZW1govVH9%HJ7-C=tqr+>H{_!*|cahDrW%!RP9n+l(Ou zpFl_>POtW#-{3Wfw=V2@7xytXf>R7?yYMYezQet@g?+0EWHHJoLhjbe8h$2Dez zfW`*C;fXDN#90%p51Y12op5aBe#{Q1#?c;?n&kg@%332CH1k+Cr#)62Yb4(n#0V?` z`~5gkFPz3zWo7w7h>haAiPH!vYzhPa2EYgy-`^VR;a}LXOs!KqD4VlnmU!2{RZWi)}VJ5 z4NASGy1M|^gYUP-Ei}G8~?H8kfKdHNwJ5V+2}`qpX;-&RNyCB*~#l{ zGF!aM4bEu`6N&$J>YXkF4A&3*0lx*qx@9 zf@-%csl)FxrEId;KIHefckH{@l{fxWs8vu-{!HZR#ph&71@8E-Kk=C%dy z-AIKI>NyXaK!Ft<7tZdGewij(SM-~*5n~=N3GFyga634JAP;4Ewnkk(j9xovNwMG@ zV(bBE(QI@s_%G#Ypj}!B7p5K3Gj`Epx&|J!2Ja&bLvTxF1P>d{2T7~B8i_dEjw-qi zW$QLI8HP^u!QBpYvJptBzp(oZ!jI<>l886?Dz=Rjw@YxAA18@GIa-Z$kb z$DYrB)q6ulRvv3>aRAZ(0?yl9InR+se7I$%<~t9X0CoYp4Tche?mJqoYHNKkpU&?K zly!QhR{r!Gv6NER!bkN1=R0!7R`{1IyAPRhbO5N;S<(-xHl&&S zqsVhTj(-{9_>#pMK|-M!*#ik=#rE=O^%fc#OA-5^uE8{3fKtlm`@$HUK3K3$t^Baw zpoO7sm)!YmGCK6IYqPt<*Ijdn6gG%na@A~iLt&@}Po43&bj_6`AA@WDfJD>+sLcr% zX6JfF!p9kCWFJ3Uwy2j{u{dt&k6^Pu$YSV!Jf`L5durWDtuhc$9gwSOyn|+N9#08- zD9XcNF{gW#=qO-81@Z76xT|54#T{in8Jgi0m0RRELyg|&_GG=<6+4|m4Xl3o?gTJb zy-dlfBc&qfoCT`4|EGebII~cfR9fBo@O{KfQI?`1xb{gUeUBP*D0b zZzyZ5u+=Eu%Mx~+iECj-i>rBOMSrVB&j+LwZwO$C7njRHm#3cLNsPFg7i#<^S#e`4 zqvY*asuIHUO5vhk=kE%i2sD1WeJNf3y25BRSLaUaXv&uy-|RuA_NhbU^6dEK=V&(4ziqjDCpwZhuO#0~HI+WLEF5_=p7QY@t^`r8?SX zgHDqcvpvbs9r(N&yu*R(^+ zwyyoAj!2$4DKaAA9y12`X+rHPya3QbH5k%-hhc9V6UMV!SP$wdQTH&R0-C~K#Tburt%#_;V7PN&&1(Y+sMdMxgn^WxxO zuGhOMg3h?_Ks5|5w1AkA>k06z;%@{rUL=TR5lL9dQx-5oWM%Werxf@@8G$CFNlixc zWeU(_04%fo8CWvr`f8`D)$IhFM6aiwlS^8P+8y)F=Po~1Rh_PKe?Aqy4y1;jI-)$KQe;4NN7KN1%#< z6IA`|7hqT0w*gml&Zly7pY&{VER*DuH|BWw@fpjiCTP&$XKXd9`w`w-Juj#PHvzuX z6u@p#>+Lp2F5EDuYn|sgG${9%gcVSt3XL z^}7Pmm7TQyV9qya=512ETabRLv1b}SN8{onXh8Lr*`zd{onXd`%v$qSdR=hwJ%&K2 zW1ewAdiw*YGGo@~CG&Io_lS2KKyh@x{-5Of5QdFa(%w>;OX`7je0jbdQO`CHNtBNj zHg|`fcJ#Rg4ua3J)2QV%0j zvx@awDgk-}7LKTxSP`gz*Uc4Wowcwx+O$fX`u3R&t#MAJOqt$Mkm4^z3tZ;Zr`o&= ze1p7Wb z@?gnatgdc%A;33W9*?f%dO_#!W#!YpIND{vd)5mTj70ogiLjMu=u5FShpU))Wo}k3 zWP>E#`k(JeI6vfeLBi_acs(6DrJ`MEjZBEZTl^hKKih_6HT9nPH7d!@!$W9Xsh{sy z-v*qTt|3s8Ylaa31G}a?vd5NLY;;xM=PmnjuzHl z;g}np7MflExf?I?lG)lMns(pO5_;f!4-7PT696=+-}w@sI8Cp|o*LKt^K&0#APDl8 zqRwsaNFSj9@`)h_c5_(oGGD`ASbq-ttZQ1P4&U?oZFd&^byAgy*?0%-JXqfAw+mYq zFM&f_`gXr``Gfx(y@D4qIl3> zN;jXHJ;pdf#r^&0Gn>(>Q__BZ>c#39;vmYxLlVJ*-DQG%fwCT2c zYnyR6$!R*uM|VQYL&+k;`9inOvy!$euuF)q+~5Jf9W!mgW>KZcJ4k~})8)Y%>B|$6 z1ryN2ns!;0edF$K?ku%7O(iyQ!q~pev*<+%M_F2#2>qnR=@toP*#$+ikM4Y`j6di^ zcj7`ab7NKAR(;(3!4gts)Jph&5)Wkgq!#$@3lPN~XFXG*ZCgs_p_ zVte2X&BFWPun%j$w$1sB$^&@WW}5IkX~mSSa{_!&s|5Md!|(cr=bm(W4f!~#?8}4uy0JYf)9T_pz&eXTpz7*I6f8uV zNx+lNbgY5K$YEv6DD`W8yC|)D3gVGb=KofW8;!1U`nla7hb{j#wSl@fr+q0vR*1o~ z^oy8~&Ppe7S?yo?t5Mu_a*=bt0XW>@;`{pf8n9&9Xm;R?dqPu8aA2V8RVp{icJk3tZWOtaNsHg3#{Jnws#66!@iyNF1I##b zwaaTn^jkQR{95_u;bK30ZSs=yLlDeYiQnc`LXP zmD{fi1jN@N`g)ISnYKOU`ym;tEbZ-m$dwuobv(a|Gq|;c8OU)4+mm6@A$uCH)ADD~ z`mS%jUl%p2aWT>GE2FymA+oBz*L69nEsLD}8u^ct_dzk})YU~ECvS7lyqQljI@rTb zUO$qL+glo}m6`J0Ag?m&jKwOBHQQbvdLmRQxruRqOHj<)509)TxW;wBvO=$p_U7^d zf$wqEknafi~96E#Brz(<;Cw9}%ua zToC|X&qA3`m*G4SqboF4cvw&2JIwHcfgIjg+1G+Y<;-<}y}Tz;V_dwDEe@HZ(s9}P z9bm89h`T-E)V=iM-E2!vYCh)pdf5!Lfu?nwzazR2WAfwv_K+P}trJqNe*jW@jwf>=>`+K<_p~^;~xLw&k)fmo^ra5 zfLr$OGy+sE0$tza1!aEMYpbn3hm%v`(n2knks(R6cjpAj?=O6{)ftSyOp;76^V zKXMnvhFqjlVKU@g2j!ko?HObB(O2uU8kX^(kejhvg_!hXczVAB`iW;hb;iLlttSRE zK8241D>wE#Apjs0Y4VLkE`zqGmSvHe7NpHp9J?uZ{?yAmImBw^jC@U;SnDmKZ_>m+ zoU`*9*J8W=#}^}cg6fYOzb>v1*b-@+ZV)-=V>vg`g7ZG;If2NRJ}8c!-G{1|dl~i{ zLW5N7l$u>C5&>Z&pj+x`aAJ2Zg@W_ugpv3#=g9^x_U6x?RJZLFX(1)GeZXi_b^MI17QKO zX$O>6=bv53XWJQ~NPb4N`(FRo8QgWJMh(2}>h!>EO5mQRsU*8C!^DtH44QX9Z+94$ z5hW~Jygg)`QGXeX2a;L|aCH$4(`cvj#Lz$qK>Fwcz)N->EAs{D6R^JSYzLQfO;#ZM zhnMScEUgB`U~WaN6evF8wz%egqy`nx{kRG%vSIzgizVX4DSZ`!F4W{fiD`9tU&~jq zC#KbMgPi~d8d`~*^F^AvP0F3~`#wGAm@d`eG{FGk2dNR1qi?*t7Dc|fEx7Ew-^Ey8 zyx@$mWo?1I2oJozboaYdz~$S3p<^XG{U~)MXmaHx1^1mwPtfr`Rf)7E2f5Q~bC`q& zIRHKzPMuQRDxCHb1TlRoIm`N=By7okMGG$Y&`o2eNTmS$xBaedH2Ew=8n1t(y88_M z;uX_ut3S<6hIXDEKz7}%HCoU4Kbf$fipo7uz#yncc_B@zSHN_2`HpZ%!Gi zlm&DIeLzQ0SXcQmKW=pJY-VKde>z5K>TB4jscxM$m$XbU&(6SmpB?080$g{h@hRwf z1M53Y9q#j_ajy@^$H^!+Xz_kvEXQ%<@^H^X)qzuX&`2TxekS^F4CCk_p11-y3r z2?U)Mx&Vmo@L*oa-efhVO~OJhph>GmYI=h=Vb>Lo!@;7&Kd!QAZ* z{Y#KgG2Vqlx4Y7)lg~)aHvSaEzl;hRHmmF?GmF)-q_E#XA3kd2wjWrxGS0nzJgDHVUd zAsh-N!J@ZY(w_=AVaqQlAn*~mcinEgcwEiX<$EI_=J)IDjTAfA2_fxlb2y~KKc3xH zzzwPQ5euQ5XYc}8dmMNL?AOcymI0B;#WTE01n1jBZadre?^Q3quJd=YvJzkjoYn%J3vn_19Rmgu;-Z@J$bPHiqYcx9itP)F@_y{Uw4RBMn` z9XgkQ_LXH$s%AmU%lP19>!qH(F*nZmg8u^}%Ux)@B7rSu)YX-r?5l?>XZ7y=F?u#L zpf>C%RU&O|kuTdTnHcP&H33RqzP@CQPlCTKs!A()_!DEk43A}iHC>Kv8ikC0zp)bX zI`{}~1%aT2G3JNsPJuBVJt>USKF6=HvY+zulY-^lp-#64_XV=sgWH1h`E8ZTI)XU$ zPrBcDI(cPJ#W~`XEf&}+)gb)nKU9J=uPf-WbYd%{lLP}|7OplK-8TN>n5ASE?%fp|W}=X9%e|!#U6!(w=fTp_W71TBN96?mFFky3Z@X zz<2VvyStmuX)adsSBT<)>!f~(yX_}rhkfkv%_sz|{0S%`WvQU^hQJ@nDW#sQ<(>Gt zWz&^#$ks2oXs(Z*hg%7&UfCV=suH(gDdn>fn_Ko%WB^*S@=in}s5H#Ts)}L1S-O&H z-mh3hz(+1|2c`QNC(i%nVFRIUNXovfwuiuS2&ef{FTn<{^~0jU%ntV45k%fU?mbmw_510TIV7vSa#R~R)oekqH{Y%? z%kbn^@L)+K@Q9>EW-S?#Oeg!SRGe8}V^odYM5$1D1Y2#it4oJ1&V1WgRM?omQfM=1 zXX1D)x3&Lq+L8H-%4DlQSPhYY{M|NSeICw2JW}#JFNHXAjd5l%rt=D8+;&1Lfmw;o zUbho>-ut@q&?jkKXoDz*rg3?!sUDfqMpiH^VubrvKDOCEm^Zzf)%Bm z_iXQ*9YJOKS#K<QBq1!7 z(z^CMA3o683D&gr3BQhR4yZ(O^1K zm8HvPfxQ)Qb${#oR-Ef(ftqgHc0s$eQegKx1drd*o`Lmjt%Sgi$j6TcE`=Qh+C{1c z4G$s@8@a4>ecLYP<=+~PK!)d9YivjP_{z0Ns;~DZOXe*f4qwXASLfctFwNdrxZ-Wo zCqcgYdYH|BRVzUq!q3+@1A~+yytWjPdE}?=>}{uN4uf#NC!QJ#pyq>b^wO1| z7+|4ENwM{5uZc7(kGMIE+jRei2pNp}<32&gjoD}7?6w{*CXaFQ8VXJksT%&|MLHR* z#M)@eKbA$r7bgyTbY8&DD@-K#X^G_AKBlA~Uizk0^teM^M9bG&v{S$dz z`?rUBulfg?;~2M#^L`lwO7A9%FTT-H)F4R4YMg$cT4>A8HnUs!uyI=W)q+|Ee+lDO z{Z{Ni-XU-v!c5=#JrrP13n#^~D{s2??U#l9HXM7Iro>X4DY zyEy&i%~HS@k;h^IpF?Agq50b8S`FZvS9GJ=hsN+UY2Lv10@#- z;E_Ao{y5TE0`{hgT{Km`f28H#+*&DD9zK4U_qKcsG5-6jjR7{LfLv1PS`tz{4gQN1s@m;0Ue0`ZP>T6TBBhMpk0tTV!s^?!eb?xX}&NRA{N#L_W3CX2|FKG~~ zx2a;U+e2LY@Rlnk-QTZKE=X#q_VJ7noz`AQs4RKBf95wEw{rfR^Q#!&Lq!|0pChkI zs#(rjXry!%89wlixvUME?nt;0AnB5J8eVhlUjB3ua<}Hh&2f`wkl3@=*9!Y|)cWcA z67MP3vM~ihRTmVTgRr3%_NGPtX~uhRBj$@D*2B}lU-reg^xW@FW`{d(YuN}8Kn z^LsVyh9bMf`~tgrE3Oj@6Eo?6wN+8BMa~D1R(-hsXd^O45=oXe6Y_;BUljqbV(Bx#cP`lms(xrniKad0Il1*@JeRd)JP^1)uI0}SMvoT()2kT8^f{!&zs(b2| zkE53BV)IG@j={^?E(eC|ldp9Orjkc?ZwE@jbXY}`XCw@wqEuw!%1ae+KC!m;-tYci z6yKlJFOAm}sbMKr3(#tmD-&QE<>aXRsq2?-=|sK_qeQn9VBZUux^AHt5-MqWg`fDS zkI)v&^4$Vz-ix|bJ@AR3gk#c;(mJH-&$ixFzk2@~3H(hqQZ`FPuuQC+>)D9EJ~gz4 zo2?Pug3?cIFvd7Gv)>}US#97mT`St7w?FjYu8G&Rs7@~9uo%6(+eX};V|VhGqG`p$ z7O8FI4-shHJ7 zUo=;=6>=-vhc|vGL$I7|;>hI4gp_)hNt^z>cF7v)<>x1cI^B)Itt?~s<0}UVIGFKe z5QAz$x?-KoOfHdO-EUg6dfm%zV^E>&Ae!xLC&h@*_R7pK`Y+9tYB1+& zt>C$Qn6#EPG6;W^0Dt$odWQT@oj~|$RS5gQCH?98;~jm`dp(!1aSz%Y?)8_UUc>UA z`wSH+Ml1S_{p=Cx0Zl~TDdE~@^-~dNWd$p-Z7sxPcq-jfQZa0O(9#9O9P?r_l3_6C zDh8BtX8NN26zsF8yl6{32SQ`K9Ip#a6KkWm8X1u)L7*wpjCY$^q0l>M%6jbe=HX^m znc(7jnb5bl-FcCzLKUTJQycejT>Sc2dksy3#*bS{K9HqoxXcARHj#ZJMHj?_eClA@ zRG}E9?jl`K@y&g0WHb{;QZ?W%|8#ZP&rnpHXbgBiS8dg24%E@QTDMfBNY>^N;>ofjmNJw? zy)U1fuF)-qOvd8TVJXUInBulxS%*%;r79i%2q`_e)IYIQST%kAR0)3(B=1VOPf>7l zIX-zxMOTAauBE#z#+f!x8($WycN4!Q#>g?>iI{^jz7nT8X7)F)<;C7+d)nV{V`sje zn%r^~U}Z%zuIGY^_UwEi0c`nBIeVdX6Q%**;xQH#ml+Ry0QL`lF;K{;adMiIx6Hp& zfj-~Ub{l6;bu(vI^as~12TZ%$*&BF`=mh$lC&moayR-;PhO7!fB5vl+NBRhSW@f>y>C)BA9aOzgFh?j5KY9VPY27SQmUlXZ%Zl-o6&H#UP?8%2m{1b zu1?%=iP|-m=Iu91+lh0+G3Gca!%)ukp|og#&#)GaYqY!M=P(hA0weI2GA2xHT3zh- zD&Bl*+YCt?gQiT``2}Uqi9Y>}6q`M>mj;}F!Lg;s8T<~RbMVP!)Hv@(=^v{WG3|0~ zoM<{x>_+Lfnt)SjSf$1Qp~*mXde_R%eJ@{H8Mr_tn@3Td-yvHT=-AlomeAkVlU+HG zQJ>E#e+sl-3vGjzArnr#}wN{zV*f z&XsAMVA?DZ8_5LWjy6`Cb+lMj3@p4^OIVZe_rsg<8~avrwWT{J!e8svzN`o%}3DDD8*GtOT$g|1G z!5ZGd#h`ZZR$#y;%1XTU%1ULg?(Hqs^%c7jpGMLGQ36Y>I#Tb=#pTIXeh!$I1(|Ey z{srYUUqOJoyAVt-;pw*Z&iz{JI*yiGbs^ABhx50~w)u;!WRt`6T{YycX;O-lrubxc zt$Ckp3C2TCj9AvYR;g!ZpMGOjR=j6e<@mjPPAVE;ECf^>^^HJ-0%i`7j|EnYHzJfoK+kY&b$ns zr_@_w^5D@~3o_jpf9GIDUex7m5q9B-8eq#NoAAgAsPIN9rmVdOE_smX_HrC-%Y<@|RUa@SbW1HMDN#TB{2Bi}$R~95>$CFW}0GhDkb@^jini6%;sQ%uYdv0e46 zI3Dzq3%Os+$jB&zfYk8X8`@VWOYrb~OU!cFK1oP$^J1hi3Lpto_7HHKYq6+JxRPLD zp*nPNDg1-*WYs;3jz(X2lasZyGHcj71=IUj#u9GYanY)Ys<^G#pSazHH@bHa67D5O zfiF~)-biU%G6#o*)X#}1&ad=+iivq{f$+wov!rKY(kr&1UU8a7*V9WY{58^PYHEsV zsTsE4mSATm0d9K9s;Yj540EZe#d}@pCP^^2Xc~&eAr*b})643<9Pt`w51bOU%};F3 zb{J{iMn+;RypdoM)ioZ%`c$sV67j)lXF@Pe**A4OfDWvo*846E57? zo~q{J$LSOv;ig$@YyOQlF;?N;T)$LMWmZ9S`D^a6(b23)xGR=4ydwYYqqxEn-wiFP(DWbUcV$NWwmF^O)eRlDliABz4Bg<8 za;%yFDHgVjQ90MO9ghPszQ@l6waq5C=1DJ)(i~jg572*|GYnIR=rbM9JWDpuAa$4O z4@>)WXcSsG(2|1bYKwIKx}aaVOl?=20M|K@l>W^#+a!clj_|0N(iw5U%ON6)r*1)u z5Wx9?NrJvRVD&u=9v;v{)NLz)#2M)_LE1D)-1~N@vIs53f;e z3swE&XI9VKwKU{|{j?v)WA5qU{@207zXU2-uamSl%a3xVxQU;a-Eh)U8@%9HmyjO! zZ@XPqp9I{s5j)ugsBGa5f9p~%--#2s{1<__tq!Oxx2$KSC&-Fj^HSa~-s|XO^3MuaHPzY{8 zg4<1d&Uxp)bMN~DUVceFnVsy}v(~Ixv%YI)DxG)j4VqoaoUv0CN}U%Cb^wI|A?2)> zOhRa$*StxQzMch-8869;jmA2MuN{_l%ds&>(oBjl6zVtO*=kaUobBTqRNGk{oGb6l zEpgvBla9=GcF;F5H`pQEe$$y-RS6RQ{X~UeFUkl|VCM(pmu>%iqxSin0Z|P*8qSv| zRR3CnlbyITsIl ze%&ZLDrjudX%K_BSu93Lm>WBdxQu7r)nuH9IwYQCTQ|gFRPkx#ULn$`$&qVotjHc0 zvA?j_09tJ`d*-6sX*GG=Vn>#xFt~}f2cIWZS6&6_p9hsNw3hHj4Aoj{sDI6cIasc* z1>+n@hB&7ha~i+6XtWg+mG*#loZF<7(jx2YZ`QRO-u{blc-iFd}5NgLtyhJm#pLiNM)`)r%RA-7(#1wXJ}jGx_?PL|(W-!Ij3Vn|Up# zpwdKIi7H^~W6b^&?wIVs%)_0i7uMJtw=ipnUzOs1RrXZrNQGvLA#!G_(g|0gluG;sfp96@_XAJ-iU$vx$1W^&JWWRTs&cs9$#;U0!_y&!89q8 zgYAjtujDbi_Z~A9XMn}v7+3fH$M6swKwu$acn`D|TDcF8IXygVyGB3z_Jq9^fw%`8 zOdI!*4PdBong5lIIr+q~(NgyP9{l8fR}VOBe}7i2bU-+2IG$^1kN#WEQ{>@lZ%!LD zB!o$nUA^<&)C(6E7pdCxTxrH4q?Or5d@K68)O->|)rmnsF)<)UK|!6I!@k{)BpF$m zL2p7y#6mrF$PSOM*?nV-O-fHl`1tLcQfdHVpmB}>UoYz<=7gd`Go8P-k5XE$XcTzn zcS;shvV2s{8KAArR8cA1q6Z{MPmV3x;!z%SrSeKc)c3qP?n4tue($~g-Fz}prg_`; zfcS01>&}rSq+b11qpdg>WcK3pupWv=zk2c=Y@CPM+lxvm7!YEV9`m$KUB@h~*pO&` z#Q27*Px)BVZ2GI{?8Q1!(6piQ=4^s2=VsbK(6ltdp`*UCB zIs+W0t(V$9+J<$VN}pMF7{f?H5yPUO@q5d4%n!b;n=a*(b)`=jRmv(vb+jCeQs6qPorpSb;y! zwKs!jg7TTX2kau|O&3}(O42P&C%F_dd%v7sMDd}PcJd!SCpvk>4^n0|jemSd#_j6a zCCx{IbAJGv)ILUj|LX;zt*2Ai3?@@O!rwhuA(0(*Ogi7vT24y%ncPDMn%wvc&xFn` zno@Bbfed~3yahu4T@ zrq4V?)W82Zh|P%53WYzyGfk6a1k*YB5+X85H9qqwXqZ_&;3KZPSIDmR*2 zzYXQgq1A4`>+Jh9N|7m&^+~Z_hGG{_ zALJ7|{Sec$b@mS0+StA0l3<-a=cP}y$n6izLd&e>Ovg~d4`gZGC<27X?#b%>=lyO^ z6$dh2pg>|G8F;Z+`Yrql{hUk+8qnl2vJstNnwo8mfPE5q(Kb^0#EjcgoG|T2wGwoz z4C_Zts4j6j$?f3$+J>%fNYUYIa2b{b@7UIHQg{o!n_0~#^s_Q2c5~=ofv`2!&6~|U zx&bN_eVutNFM621v}H$?gi!WE_Ac+qY~S zK=apOLN0-4bhOos3N6F#L*I}B&-Mh!C5ho9dpeKrV&w8BlohvXcr-C{VDeh0rC$y_ zZ%y!Yz!YW;lp=kUo{@ImxGZc=q?Dhe*OoH7nH7{bnHzBc>rfm3sePMT*Bj=svz~Sh1qPX(kLDIsuU)(p7h@`qcMRtz z*!Z1nl<@(9a@v9dkL(|ALxk_}HbjklbQ;VQ#)%GB-9t7q>X&`e7S4l;*37B{aWKLZ zXa0vUE3$%()4{TtLuq3w8d3l=9aA zp%WsZN_Vu}AaO7bz+KJTy`jk?WFI5ANBU6~+~xJrVX9-mAaEXg@VA!@T}6d^)i(O{|M8dR)!Kd+JJdpPa@i5c znPTiAzZJ)4yJ9aJM3S05PycDl-^t#jnYN#W9gFLuJMzEx{!m{j4x2(X6}S8^m248Y zJuQnkqgAf7R#^YtOJ+~Ext1K8K}%}T42m`jvTb@1*7Qw#w)yscg}dAF#C1t4JBJ5| zf}Db-CF6Je=e;UhFTZ#1&#tgmINeBElYbnzlT~~9ZQ3olA03)~J_-I*_a!VwFELr> zbTFHFDn!F5(#bEH^{I@`qC0;@2&M~(|5bYlMQ>930bEl1_~-ct@_Z=EiO%>t+^2M& zSEr+;zen3|&Jsb1>O1Y7X|yeb{R5S`QAgqjHzYFr3yDc5g)7mVV`s5Sq;1sC7MC>? ze2G#rCo{(V2GIEQ}pFlvZHXUj^}joyTnDj#OWj#1haF7 zp^NMfK~M4<0|i(m$tJN7nqa2DlaySKE2{Sfp z`3yJdHiS$N1(r&7#?j9zvgzpiZEkzH>}?<+Vp^BiP96NRb62!{2uUPj+7t>{_(Zir z5jY7n9mV<#!w#MZL+BW+##=0@wU>8h9dss5s@3V}3h0mnOlUuLvs;(FZm-eFsk$05 zjg+B*@h4(0GpZ(1BtPV2xkN?(EUG-PYvfbH7e-Pco|!U!Tnc6JOuJQC-5snfwOsy0 z^~``avgJ)%)Vg5H%k2@+tG?DP!BVJ=28a zLiCOGnth<{i4Yq(UNC40m5Y}Wm-uM^c#Sr}FlW-%WPG__mb_ID*#qbqNQ5A2+b}A${1;fdC_UKw;d6IWR9S zd)uCMp^MN>ky1vIftC2+cUMlsb1@QlI5CCUq*Y9(zxV>}Xx!9c7&s%CtJmDmljLg8 z#_H;TiudrVjIvQWWXUz!JL71-SS{U0j3zk*!Tc`2L4rz_*P3D|=?oH_ywEO)BrSO` zH{|T>0a|&=JRpR{PmX7r2!DK4u>G8XPL$F3gif)m|9R8EI8FSE{POf~>^RakeG~Dw z#aq2MFK|l(7~a?Qxj!fJs2DWg{u0*G*PQDlm3R-nBgwhY*J$c5vK&iv84%vR7$93= zcW3g%WM*SkH;$3tvpI1uFZ~U_)H;w$v$F9hH5fz#+K?)|5ZFfe?4Vxx8&brAn!7S~ zjtaS~42a`8sa;D01<;$BlbMG({ZX^~0>x zp38s&@K=CZi~hQq?&gBpfQp3z#nbOX!;fP-Z}f4irq`E2%JIjFY`>@E$Bk(twb{7x z;Njz`gtX{{#f2fz&WV=%J^hl!La_kR>u^5xLFt;~87ajT3E`G#?d%lmA($)AVi|Um zDtWOmY2Z_GJbIXimeZ&MT`up`ho3{PO(7FivMyub@EGjyXcG4BXS+|NM>R$Ug>?Fmbec@vo2eKnu>GU zJ05z=Q9-}ZwakyGZ4moB{6W zDDP`0&cBXBe|s>E>ErjD!{sIbDaSIGx!!7=s$0=+TJ`u;mT*Ec)wroHw^SNnET78T z4MWbE?qoF%kcxdrk^yf4RSWZ(hr#h}00*h^8+p7OiNYXH#EZ<1>F<`IELE;nRII$) zjm_edT7x#JjXvg~!>pF=>jKUp*=3jA`y)#Py7_`vL@hRsdh~d}gJu)be8e>C*i`q> z_<_+JEAJFqqG{O;WD_MEb|NwpHGpCr+XG6qwIUgO?*>Hhu^t;yR3<*j)aC#`E-IYL zzb5h6lEoFKa2YF^zS6F)!nb)#YEQ0~9j(HA(`r5UazH+hzJ}*swn?G18of26kI`|B zv-~^X59qiH(*O;f7N=i`MUBbOf>S6q6<9#wbO|;Q{QC^%F<+XlZ3#vSlP17n<(=7{ zvOTWg=nSByl96UisG6WS&gFoVtojxF9r7?pk@;OcN*W?ekFBVC{QEFxgJ7QhR==r} zYMs``r_N*9!j(qI4IlLE89l1+bQDD)H2@}-B+o(SmkT|gl{H?DF61KQL!GTJ=g=2@ znJN5;mOD9?OcEjp;^Ntfw*SHdP{)BUyrBH`;7J_&TM=9IB`mBzR*9AIy^x z7j*RN0o)k*Pip$|%N2ifJf4h#R6mi+>lA~j#D5Gs$7@Q=f$GI@v+NR>uSn>u;I$6R zutxF{W_FO44@kPS-a0>}Fs&_Arjg8D#|6}T2&DJPJ}5DyDQUw9EeuXKz8TtSF&sX z@(7u)OW5_w%h}49P?+hsLd3zaLxwzUuY#Ah-Xt*4i*zB@sXBwNHM?{s*#P@=%ZLjT%|HTj5|@Kk|M9LK%`k z0XDeZI$!+DAXW<#;SNp9p}^-q7QOTu9KYtc;8dM692h~}n&{hYM+uqhS$)&At%K-e zzXrRMKHWTWLcVA7H_udYb(G+iROO$#eT^&PKbo(cNV@!x6O+Rm=jcvTMH`86ORa{t z==b*z71d_$H6>K@)YfYw7jJbGB3K*)EW*vOT%~13G3mbD6Sc_UeOLf=jaHG@p|`eD zNLq)ZM23SxWhdn}ONk;8t4Iec3WZDlobK7UBsXPVH{h*t9234SM7I6$F1fvlaPydO zt4C8Jh$zuOn`wl8*!O9)&4q`{GiWLRqlH!54fkS?KL|Gk*_RMh6lwUSX(KHJMFA1d zyN7%EBB@nb{nHThdBvl=5h|u&^M4O$9Ai^IUE>_ubMEsNaTtjSk9%!vj6Z*j4>*>c zOf=P1aAFUh85>c6!6bueR2!zeL5~PUe#7;xk+!J}FXUB3U)1xs5*i;{B`S(A+-A{8 zl!!WHN<0whxIR(+t?in;CnZ7IV7+hB0TF%y_^S35^bJPnKpX$YS;nn)inmpAjd|hC z=9I|AH|6}gPKTxTX}Ks4XZ=*-_G$P!4qz=wA%-5iJ;Uj$jE6GiUqmh9uU;%ao5j0mPBX5ac5`3O&pF*(ysO_l*~?9t=r#(r&2ipT{CZv` zQ~&hv-1BsJi~pVfm5)c<{vw(#s2bAIA~1WLWMN;EcoK4(J87_+W_N-?hIr2wdQGu4 z+UHh{U6&3$pXB9kd;S;qN#ii)vD#N3w^wS@V4Lprbl669G2KTP zBiF459nlNB*CV?^Bi3`wAN`MstBH2L&WfwzXYTT7flJ3mGwsW6tAI#JhM@g8x_R$w zeLylJXRE?N6+4qMz9g%Z>gU|lsBwjY1TslSD5q^LKI{Blj)J05>wC}5L40>|wXHfW zY8k0)s6^_odWXgM?yPOlP7Vm(r00v(Zk*b>RWI}`Zjgv^pDuu9cimcp```!5e6fR% z>~Fud9r-zr>WhmZI+fe-rIxE4R16hhsT8UwUS|B#h>h?oL1^+_f13njOY8-l&WWZ@ z0q?6e#>Qcs$rcbIHYq~X@?@l+KeSiGy0u`}pza<2grgTCnYU!n)0o(z^XAJGWdFy_ zUYz>D(0eC8qSW?4B!igS%u$_`ugW!>M%1*TDvnl~+i8c7)*|IP+oRctp@IEIhHI66 z5y;*yvnbx?lnV<*$wJ8kBP%zWLwr27VnuG^5}q**w<&Ws*DonaU`5P zl%zeoS(zSQV&N#VN;sFys11X;mo1BP!T zk2PD5&FJW4sNev9&XY)H$9DDHTIxg*@KbuyA*cJ@p9<9 z^j|vE%NXRecSI8ktCrVN)m`q*`o=i>z#h^XT)^E$qW8$qq3h>#?f86N(pOF4qhUb- z=Y)wq>!=Ntd4|l62R%}u**0_J!PyZzNl7l!M?WLI!Uhl4<6Z;3PJXIS!bb9b5CrBADT2SN29TcJ;5j4m1MOQ+DIN! z%x>&zxdR1E*L-rsG!B^^sl>$h^EM5iob0NkcT@pQyj&&OR7-*Dw{!5IpgQ%j%eEFR zAxd=0z$pw?7I_1o0*FT47PUU~+U?aHP~xbUmnocm;yy}DOFX1(-8w;XxI z?{$X6!YC=x)mI{~@TL7wP|&5 zye4oz-vbE$G@6Q!ywn;e-M5~C1G0&wYu12L1gez5?UZ}XpS81LKASbA`A2nM4h-It zy~PE@w$wGr0?A?M7ygSdm;|Nr>;Q)Zt9gjF@XwfCM>ZU1)efuMVfTv^6<#yfQPTP+ zdzkoNiw*vLtVwyb8OTd`!wkBv=50&_l7x3i>=LqRpMeQNRbzrsuKJlB{@*7G50KDvo4vX^=l&oC7E=;=@{%1J|8ZLHpz2F=j^O=9CAd}dcm?j?Lqz3y0mMPiW!j^ ze8A$3PYQx35g;}cHc#|Y^YalzusYL*Q8%ijA|Qt&TRWv>;oh0qPijDk@w#S&iF5h+ zjP$M#qF=3ObmE{8jS}33Uji5tYieSdC6jk&D5CP@3() zdFY$9N57z!F52O6=nnAZ(GKNpaYIkKv7b(AH-8W4*K>{zDUIh)B3T)O78?B~$ zzDudDJa~%-xJT|-SLahp%@E;qscG?Rh0T|ca562aDb7&uZ``p=HJ=)*c=q?ZuPtue zQhb-pfa|+>@m&|07~$CxsJZzd#K-ec`|2YpULZsnx(I96P?1tGyb_T32<^*|CKs(R{l14E&SepX zvpvg&%{M3i3|6mYDfB0h%M(t9*iowBk>6-Z2EWRq7xlF63vMCTB7Z^$TizI>b%#`a zM)Hie%+x*<*x6USqUcrJU58vuK$`UVx=k54U2F3bmqS>+9i^rN1z;|vY@0fgA_)_O z1i-=Cv?#)7rb6cj?}*uG_?7ZIOxjzA<&l!S)i&&MG2&>8Zw&O$c1#|1It3)%c(vFx zUGw)24s`K`ffgp#_f2xm-+piL8qMf^Aj#`58`1zgP)vf$KRX(IFY+3yEiBiXYs$iE zRX(~)9`e$_;K|fX9PiYhyr+^+htTBme*Z*yy)uhc5$}sLR`Fy1n279DhoLm=H;?V% z2Uh7K2TDA-Y2l;yK97zqLJAgNg1_bgVfB0U#qGH7B?uZ*aHHf)x|HuLHmP z-V^ej*H(h*tQ!sH3Z}zhG({JReC8Q>`11tQ>xWV&#Zsa7>YiYSb9!@R$(VSUo^FzV z?!yM2iZS(6ZPKl*USf#~EG2smlv?b9AIdk@&2hz(6b(foJdP^|7qKpX}y)E?3RPP%sn2`i$vvwl%2l5LN#B z@^(am*aqWZdDTNk96}k}*4RH`s#?U~TS4%`NThs+Lx=7MA2SF~WLu8!LN*81RtY%O?6X zdm~%4KOdoUCR*5Pg(tH2v}r(6Cmr#Yc zC8+6(C&-YH>I~Z%6c%LNbOluSn57vTp>IWX9+TDckED2 zvtMDH>cd&R&v(hXQ9Qfkf0T=kW9;dmap7c!CxZYr{u`&z8W#Z!&B`d-?@X7kd=Na7 z+8bK#ZXwM(=3f9!Hl*Fe`zE&J4AW1%*ap1y;C!|-cNWx^GaW)Aec9e$;my}hFYQn} z?|*x}bS8P+;t8j#1w+;VugpoIG~ri;0i^^ZAXjNxWCqo@Le`oYmz-rF+{F9_pY8Ka z2bWB2CHTtmj;UzM_xD64Z}UWZRU@vCC48*Q#uCVFQ2c1_i`PZ{;&6>`d4ud~->B2X z;GWhDo2l0H>_@%*8nw11=egQ!&WdPu?Aj$G!*`Ob>QJNcEPr!ovYs5&h%H&iPv@}J z_MTcYJ*5P{`D$b`ubA5a<&U$57gI}KWUP67$`~KN{ItvP4_%H3oZUJ~@jrUwIF1EN z@A}<&#ElpKPNkn|Qa{Bfc}Rs>VZrq;8H1ybT>|BP8+peMR$-VP%~D+moYrZ`bSRCQH%K>N z&CAb_^q(B%A8S=B{-(DiJ|MMUi`&N(Z~hCj{4M@NHt)xiVh980QvdGB2z6To=GYnx z#m;}IQ4(f!FB~FkJE{>^uUJwLV0Y=5*izNrAQ= ze9L`&Tl|Jsw-LH+g)L+Y=&#a68T;!%kDu{u5Rfd3c7l``?jMH$D-a`*XB>U~DqcPG zHf-%iUsLHqi&kR)nYW>S1|O63j=iltdq*NB@vk5JxoKb!CZ`nhtbaaY-o&W>zbYjE ba7!#Cd_{KVLH_X$=Ji5ZQ>jG3;^Th--v!I8 diff --git a/doc/reference-architectures/ran/openness_xran_images/xran_img18.png b/doc/reference-architectures/ran/openness_xran_images/xran_img18.png deleted file mode 100644 index ab6146b816587ba1ff3586a5c66d4bbb2eb242f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10720 zcmb_?c{rP0w|C5A(W2(5C@rn3n&+9Sp`+H=mKtiRnS_|Cs-~i<6fstx7BR(~&?=$E z(u#Q|Q8Y*-i13B>{m%QI=lQO4{`hiTN%o!Wd+)t|Ypvf}Yu`KG%EI^rGe0u`061Z4 zVsHZhpaxRf<&5-{Pbs#cYRVUt{|#e3Kt;dc3gv>0H{h~*?&Msxn_D|a?c+C zI2Ca8rkZvU2>}4k1)3V@-U@M8&(%#6FHc623}&dp61ASnS@Hbk(9btLKM|^E{N~M+ z?d@J!*WEgw72TK4(HvJR6?~~94EGBsbka;r^!oiWA~eM~7-^}abVT);nKgg6Uh2}t z3LpQ*(Ul*q$A0uL2cxrQ(Hiz zQ;@@XT#f@~H(FeZN7~@m^eD(IiNS z&Z!1O!JtZDr;)+1y2O3QVO>Sf%ihg9|}G?ZoW(o@9ZFtp69YacZW>v~5X zKssr@w63x&^oyGhid1JB;S@&9fZ>v{y1yL!d{edL_d*ZU-L7KmT{BrbEb+Aau&h!b zDR#DQ*{%FzlH<9y)9S_^iH1lDkNWkhUT+g%# zrRTT95c`=Jq+NQmFFO|GJ3>>37{tZeRY(IH2W?T<2^r=}Lr91qL{7MQ1#DGNzxVY1 zVYZf+r(Y7P;666p!;frqMnw4(ck(CAT2&Mx(P110V5Mf(1f2ddpp`mEmCj{QHp;Q5 zTugJx%N7f1X3#Fa%62C~DS3MrG{~PuVxk+#vwy9WT0A<|4*g+jm;WP81|I?nrCP=> zH+gz^+hR&r-L2p;8fEcfGR4y{+YzYyd`7vBH2;pQtLO z0(8n4UhL4CssV>!E@O4Ci@D_RKjJJJ_DEQjzpL%k$xgHl7c!1M)x(`@lnNrIR zF?yDx9wl;{n(m%M%cy)VU^D7c^#VMvdU{$;*%y_G$!H!KIH7~hAEeQFaKRJ&nnpat zk9&^YyUI}o5L>rx^;J`-M>rb9Fx;=AjU8Cnm1};w#9{GEic9>%w0g_UGA4!~p)5V0 z-1-Ut4#d;G;TQO6wY4PO^`8*%iCsOPLw+Ma#|l>qY!d8=LeneCw6BR& zgEADm62)*VGTaZq^f0grNsQ4vuc&8u7EtcP!Y(+y>?jxakihYZy*vr-YwLSoGFbXW zTrou5m4~iskaM|+R1G&}dH#k>V|)I&g#A_K%16EZHlJ71sf#gMV%1X@((F6nEO$x% z2$$K|hkhat%qhaBk+xL1;TL+7C4oy7NqYbc&yh*3Qhkw7YpIVB<@!td?jzMMR7~!d z{uOpv@T@087Uz0pf8VEby!Agt67OMo%z$mb#$r>mP~#oMSUMZ;u)60TW$+K@=uEtG zPHGb$Hi!AP5x<*-K%+^r28cz;Z#SD<-!<59pdV?~jAuBLleWC3zYh?h@m+f%h{5!c z3#WgiHtZ5B=#BrUGs?6!(K6}TkzDnoPxkD0fxBu z2m{wZ@1yj5ls4tdnV8|jykp5VyImT4{h2f-)|d%xh4lh@X870_WbIjLyoHmqdjGOG z4x{eKCTd^cbJ$xO$Im1CTsXM-;u&K7DseFlXm8NsrMOZyNJ1*?Iia-=$u02<6*^|> z2k7*Jvt*+APxY8OEk9E7;f+z;ZtFnvrC%E3D_e|oL?8nZ$#|{eu79?sl#C( zFJeOm;#Im*=wyk!@fIIs3FtkfW*nL<^IVwNJlx0iSb0;xt6#_ZF(<#cVunQmi00Jn}25yHm|PeJH< zulaX(l@JK7M4v8SV3L&9JH?gv zgPeIbV^6pK3bp`UsV#!FzmLt+!G#~@Ba#Bi*Vyt$mDH4oPSF8gf*)gefOz^AuT_>OTsYW<6LjWoAiEW&C>?|wdR*8cQtK!LccILMdxu`ktJj=1I7m`yLL@9(knzJ z9Y6Z_JUnm?Hw?Go(h-?#r?VXd?<*`Aa~Wt4U_l*dTy<=oJ1Bop-IijuM{r0cESpw8 zdluvg)&aK}dwv>jV%!M3e0E$*(k+{&Z074w#TzMm?S|GOZeU?+zZC|SG^~N;GT2uL z6#I%^-7vrw%@a-1lbPZ8de7Zek8gv?MLfVH$m5dQA(Y_hHDrhvcnzkzRV6q$nZh&# z%RuZacV&uvQ|^0!UhRnxoLW{!YA@EXphB{Z1+6$Ve|fW;y9Wm!j&X+>Vf~N9uV9An z)R-A%gX>COpAISxPQ8{rT3nLCsAj`gQ)!NSJVBkg=%jjoheF&l%N@D`;o_QcJ*J7v zmX8#t<(_}gg4Dmj+tzr6p7(Y*OH@Cv%c6J5j^cgRI z3q}a)H0jM8WVy2|T4DOmQVdkLAedi#!dFQo%Xntj53s@k z_e4+RSeUbLIJ$@GUtB>^r6)xePA*`n{1K0&hT?PO7+zKk)!08P*2Mph6YpLt za6P=pPv);5B(jY|Tvb-{?ipEV)JXma#Y<*+M3^4YiWKI{Kw_HqVU6-K-v51}s2au+ zQv32e{Opkjhvg6YN3dYIjOCcBT_Qj}Uz~sP-BXSa#e1dGRL~wtf_BS&>i_e(UW&@L z;Nx2u#fzst;_f!KC;+=lI6D1wRd@`f$49IXU?k5-Z&P8ZNyZq zH2FN96`iXujdwYk@`@bZfWa|(VKW~J@}uNoDNC!6oWWImwhl%p?ULnIAGPc0?33bW zZw_=dnf4aRb=#55jsRD^BekAmlh9y2AUa>`{~j^eJmW)9LlSc9v}fLF?!Dlw?w0ev zsGWFXeqsFUFFZLEf@qrjeJ<>)k3%)-dE=l->r`UgskWdU313S$4TIA@mgajG z@Ooi~_PlXYK&eZ|NPxg>4gAN3D;{`WqqG=NsPMeOtpJ&a$+$6&x{m6Ftd4P%{ezzTNzBFjfv(Oc%%OY{_VsIz90(KrHD*rLFRGJF9W6|&C z5(fTK?myBkCRcBOJ8+-p(tdhFgDUyD=N6x48YHfYlZ;GE+55@degrI<#3Ms7B5_4(Hdyx*^xswOv$%wx^3|XhjAX@kVv5?9Uay^;(eNbosf3-u|@j4 z6?`Ij9I=g81Ljo&f2szA=^Av{_Mun$Un=1F4JppC6{R@?RukcCrkwA(FsG6%(dC_J5%x~}pzrMCzhrW$#q zUxi`e$N7VA%_;Myox>mJC_3zJXHEkL&=E(qRlc~9X6yCLMN0KTxw=Np4ByrHkET}p z018J~g`$ZmgTWHzzi9fSurmw9?Al*5QtMs=S~L+1>WM&b(Z%is|96z+#OBhC=!@S< zG7#b-VRw{y+5}o5?Cxv06tY^OBT?Izq{h(PUx!}aHh?!=8=mw$0>pCJYJD) zed0jP5hC(kr!HeWWxc>G(!S8kDC&0g zFZGAM8S0Be!H5KLi3Oq5qH+08u=()k8#<3xSz?qL2~f28(4$53;z3P>r%;5)6IbqI<4oSdU6LNO@s;6yJP&L!o>w^>N8)|t28Ck9! z1QJZ(#eP@nkGFk%t6fe8cm2JS7xSK8DHZ$flw03*k7`n!2asgV3}6=aZNwYE`*QGsabZ2G&}DHHBVesiL+S_Y8^Gm&3Wr?nyY^Tz7!& zjcKLJnnz@7*a1L8fxH-iBYQv)_D2xHCrkV>+BqQEQ>ZQ$=Zb$PWj0hG+~18xLqkt~ zoI`b>?~*PPS)of#C9C0YC7tSFDULTE2>f+n!ZE+z$Lt9Lvws0Cl2{n3Dc8&XL3HBk zI&yA*5?y?Uv{UV%b+%YbB(srM;?&`thgsu~=L^mUZSBAZX=5E&icj=;`@La}xqm*Z z9pN!kQG>0mT`i`T7IgHpWZG8ClUAA(+x>9xwFSFRU+PQ|Aw`o+8x-iTlsc_Ctp4-K zG)AZ{*U8LpRsH%%p4FGYA-4&pgHYm3xAvxrm>-0L&OZc1hd#w3{iI>fxgB?lf z#K(kr@x1X+%@SP9`L5Dpf|IDW3uwws#PJB`5-ix-&&-c(0fxrMSv$qeVWE@?<+O>w zdGBftlOVfK1xphlkXQKdCoX6^>Uu(+@V1&RlH2gm6XJ7o`NBPaCg{)n`4_K9Q){Mg zJa@9!J?_X}^wJu%-q)zpzV_MdliRP7(?Bt>P`1bz>c#XGZ|EDQ!vPW|(3`E#bw|*{ zaXD`e7FHGj_ep==33vY&#y8L57k-9n!hET(s%-BQ4!B|UV@TBY*H%-984VZz1hGx5 zP`JnZ+|p?LW~d`2l`(-mt%X&Vwxh$MobCE4eaIj}MWeFKhsJZ;fHM9^_ zD9+sUBxvNkR<3-FSBo7pJI;&oU6b&}hUKE{tc2}y~YYWJsK2j=2*FA9-HEXl#8FXz@ zSeR`!YMrFV&|fD1O%hYXRi>ETUX5SE*W(&QUy$ZW&v7oyn)3Jg3e7VSWo+u77tw6{hND0z{vpucDgtS=VQ5B4FMa)(vsM#ew%|<)3L9lr0T5j4Zx_ z*^>K3lnB+6P)efBK-n~+>;s&ULzi!9lw`kHtl=!+A!3;3z>DX-Z#*bzG}{cocfYSn$axj# z>9k&CGDND@Jv;zUgQxO7D<|bxegs)hx&o0J{+3#E9uPeCHLvasuP+c%b}`m5D#HE; z$|XK3nNKk&HGOMGu+a4AcC&OHujuZSaQ*m<$}uIa8l3CXRPti zAuf<}LYK$QyMGRcPVmp=8=mDD@3^?@qwW}D3++0Td6++f zPUt+;XkA&`@(9J1ZQSqk%qF7%jQh2O&}Q__Uv~L;Qs! z=wM_sZiTST2?v*s`hy;@`BMe#7R1@XSUI-zqz!bGfh`(+dI3}rVTd@3zP6>P35nHe z*ij8fpUvxv3Z)mStG$>lyXt z*RO72Z)jxH{rA_w^{tGSn8?hCoiKe7DUX zq+NIm;t2_WvOFvnm|5rh#X09uKHvb|fd#-_gQqLKq<#@bD!sEl@! z+N^d6%FXicBt0=dvGI7VyrJR6^iGSrS#=UD<&3FMs%}ZFq1VMOGPPhrm0`(aB&Y5f zX5{mQsnHN{T=w%FyD?bt;N%U`(#wFW;{-z7fryGa#EB@JK@x%aYTvD>StM%iT|frz zf8N?Xk#geeM&5XKG4&1ph}(%T`yYy^u>Io9j*vVk+EE;cI{*)945`f2ts>Puy875H zV%OwgA{Gnq@OyGzxn?uuV8f#o#*WJG?`=$eXdfsr9rBRlIGZ5$DC_da=tjikCwq19 z1FQn@TgaTSa5h7%L)lIID^J&m*Jsub-j2!VST`Znkkk8(2jzW-qgQ~1Z<xui)w+~Mv|dQSOX!y%*Q<@h>0*PUE95j9wu8gJg>*lu zeN?MB0vL#E^f(lNCf_BbVufMnuu8!_fS$~WSkBTp}6TQMRD z-b(V9`NqG0*L?;iGG(;T&Csi&gfJ4RTK~Yi(iseTMl#q@+vLeBstq$bblEp=F1_R; z_p4TM6tQHJ%>eo4pxUuQj!^7QyhM>uRD;?kE#rn;A6d*RH zZ1U@ME;+zo8uV~tG{v=DXY8#b4)z{W{y=xK-Ls%x@X4o;RrZoSiG|Bv)*Xy1;)JM$ zS*??Z)BBR$SuK5Ot<$iKWSkesR|@*+K>FHqM=lUrA0!GBF<#?5?SRi|n*bUfSh{T% zdDQfjRL`-Gb&eaS z7W2?+KJ#AN2`VtgZcNK?eTuylEeOzoB=R?RnTGyR*d>g7TXMcxVp}lP-)^QKJsA*x z^8ZHwVu=x^Sz~Pa!WhOAsr5Uuy!0vy=Q0I87<7sh(#_!hEkB8*Pl&jgM-}Q0K z@#D%jv|K=3)PFQ19d`X4X?6~bF|GVOdrnJ$-mkxNor4@oO&|=&T-a=RtI}c+<;tRx zX##dX220DL8TZ!jR&xk+MCPlldZSFSQp#<#X1DiO zJGmPGfU*C^j=Rr8)S_K0MJ*U@@kyDv`!S5 z?gzI!=v}T~ByH922a;o!5_R!kCw;;9y=)U@5Z<4caoe2_ZzN_dT zuB1IO9+i?=0nJH2%F7rjHdJ9`diiDL!qdeXb;w4=5JJIW{LAJVQnZ^FpyOeM`PMYA zTqU5JSESrLG^~7GPEz~euUZ<2qa8G$^(eK(oRsG?iIUsL%r5Dr3@lW3*mVPol>j<7 zrCmx0?e4!9!Mv9y74Z2@xqWwvV@A*{&Wt!5z_H=+?HKYR2|g3--daOZ9)|8!qGcxl zU^9HY{3Rea*a*8W1!RE*N%xmDmZqIMo-mKK*!fKDm;vENL1t(iiP+w2c=&E%*XLOy z2c(#e*uM0y;L^J2>y{X>_8T|l%OVM*vcNgkUei9kEaKJJRDK?OL!bag|wPM3w(Tj2e$GJHY zvYssgzvSk+c6R0~)J>JM`40NkPt>D1on67>zGq!_?tWRiRGVP0W<9>E2XjcZ#O?%| zl&4rDpSskeJbwm$mslxRlHQR8CA*M%T19sQu2L7Ng|t23)n&uH%zl&FdFEo=?EdJ9 z)~_FPqA1dj701yV_`y<^YPi#OD?n$lp3gf0!Gbrm(9-vM;Vj zlY@6O!w{8DGX*?g_Me%Dz7+y*Ny6F@kSBk9$`~ktqw~lNkRO%vbD%htj(Xxta);KF z6P~PeReGUk;y+FjUAJ;7@nRR_A_*pswQ~|%a||0D`de#UZ|rDR%O-m}va2e6UPWmQ zX>yu@!AyPLa^v4;Y}1QT4x-oS`=4poNlMu;D|J(aO>C9m3Y;bu_em#HaHw&VZUjC0 zJK_@Svg0&g2Q>TvpWR#9TMj&-8pAxbpBVkxGP)O;PAgnzn}wF_=-IL9){J_svHWq! zo3+OdxtZFi1$y^mydWfe=}#<5UDT!vZUG$6XCU{JB|#4C^_Rk!Z?rhJAIW|unyskB zTyOwy(HZGNLAc>^md44>L@w>R3x_T;Uix+flRwkMg7Y|X%ma+BTFw~2Un!WYMJQfr zhP&PT6WG%B8Sdr14jn0VNu$|O>i+h5bAP-{fhncH@gjalgAL^Ns?7K?jn^eTkR&0> zLv$(rk_+MC2Z`mYosm7?WP=1qdQ}eNP0@%&rrb*|9@hP}(5vcP6>=*#DLyT+0^?y! zkLrB-_M&Q}kNRSK-bQjqvii?>2c7O6XI8goCl@1=H>yr8Q=J2Q+OBiL;qtSOuOv)$ zBCIMhLHAFBUv+bG2m4SS7QTnYC>IQP>=r?AE4tW;S2KlCn=U(aqX;SrA9v3$g)f7d5^r?>E`Ix9McSk z9!_jmYr2v!%`$8|P)vz+SHWBuVpubgpd<-D&J8}YGP8AX`v{~JRfHd;R+(>X20rk! z$dN){^E{ZqHuDi}3XB`{#qM$@#gFhiEJSyt1QIRKv?nOYi4vmBM3>_w*v5?IN5wKa zOBsB}6lyJxI7REh9Ni$(t<^^hVs@po^`42^K1HL90h|L@6kNT-5|3R2`UglVz}dEc za&N%3#FLAF|CX1;>QcSo74M?@Z^iej+)-2o08qw9G4_KIKw~4d>eIpB(j8_(WD4aW z{Wh?^ZPKGOT9jc?PTwaJ6{P;;d%^rME(e3y zx!NX6eU55a^ zKkmVB)VsE)5AVgczTapA#e_|(7U^50tbX@iQTCRdF|~i*YVq4el>`+9UJ2Mfs z!*_jBbcG~#Z({rx+FUs+g6C0Bq#MBNuK$j( zAygy8(aP%^vkdF+@uZaa2EAz-}Bc^LnB;TXhE}q)?m^xhmFi0XFfb&>0~y zVYmMSvFv3N@rLs;dfN*ic&%n~aukw4soA;ll9rgK^0v*Oh11Jt2FM?W*qT>A%4{*V zo;E)Y7h{(~^l|g%KA{f0WHXT+0FGz(SyAW4mfF4(W3M^dnX3Z?9k;{cU6 zE{%;<+L^0Me)>DUtd_SX;ba4!f)TdHO(krLi{)=x#D>H*j1{}-XPR^74J~Oy^ihl% zb(QX6Y^!#1-m|y)28`RbyS|jC6fL;v~q*GAzk@w~Pk@I3Qp0*;(AYC(%3xTLMqEu&+Ei+7q*VG-y$28Z1x$K-nHq1`dkM!J z)3$w_)lu3yNVh_w9_3`>(NV=FZZ6=TgN!l%<3UEsqqXBBjkK5F=MTml9d4wh=DTHu r(fvIb>v?JXpJD0$YgqlSxZOh+v%}YG#it-gOEERHFsRVGAN_v-hQDM3 diff --git a/doc/reference-architectures/ran/openness_xran_images/xran_img19.png b/doc/reference-architectures/ran/openness_xran_images/xran_img19.png deleted file mode 100644 index c02a8bd555fc7dc9c856eb84f7929b0f578023a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 119841 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 Qs0S(YboFyt=akR{0H#Si+yDRo diff --git a/doc/reference-architectures/ran/openness_xran_images/xran_img2.png b/doc/reference-architectures/ran/openness_xran_images/xran_img2.png deleted file mode 100644 index b0934fdf776e945631b9989bf829c7eafaa574cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129422 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�o}i(&g%WYY%L8u!8(b3 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 C#n6uc diff --git a/doc/reference-architectures/ran/openness_xran_images/xran_img20.png b/doc/reference-architectures/ran/openness_xran_images/xran_img20.png deleted file mode 100644 index c3a1f82a66a56ba245c002465da02d8f0254fdf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44060 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 diff --git a/doc/reference-architectures/ran/openness_xran_images/xran_img21.png b/doc/reference-architectures/ran/openness_xran_images/xran_img21.png deleted file mode 100644 index a5b05a2e42a21faa1a0d85077ccfff133b0c2b74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59000 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ຌGy! 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

X6a4x@$Bu~RXswrm@fPvO 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ªrZx^>Deq%)~%)ylsx`RG++eQUR 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ðuf$0E@vRbA=W(;#49sGApq*q)d)(;F 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 diff --git a/doc/reference-architectures/ran/openness_xran_images/xran_img22.png b/doc/reference-architectures/ran/openness_xran_images/xran_img22.png deleted file mode 100644 index c2bd0f9bccc11adbcb5367d524a38d41b8b0c65f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77144 zcmd?RcT`i~_AiQ9DT>k&1?izfXwsVm2sQMMKmsBH(mNCzSH zz4vlAe$P3-bMK$`jrYeJZvZ1?XYIM?nr+QB=Vv8IRay2S?o(VWEUbs}a<9~|ux>-K zu&|jP+yky;b>z+fFSi`jWTmi*`k$==Z|+z~DoJ8tl}6xQnA`>4&6eis;WFy9V z0cs3>tu2Jpcs%O?`WQKjckHp;*VG3G*H6Tj$oHRKUioe$RhRRWmml|fZ8wppgMu^u z`3(+&1pVt@P&ds}hJRlN1-?Q3XV9|@*uTdF+kgIlctgYyv;F=aJu|aBArTP{jo)Lb z2e~_N3yYp6uXB-{crr;&lE^nGkygHFB$Bo#mOc6|9w{&e7^wDpqTC{an3!13geFX_ zBm=hhU>v_p9*>Lz1$@v`k>CKI=lwfUiiNZ^SeGS5MlmTeQUXn!kyin0buv{Q58pT> zXNb=fLz8uSe2e=R+4Pl@bJGN{S$GF%Gxow)idnVACf#2CYg;qQXAtC8Ldj6G69Hk1 zm31$Ealktuwn6=;@lW?~!yJ-Oi`5;trHWIb1_ zP-ef!AY3fbQD1xNucnh@`ueV^Nq05C61b>N!jM_e?G#xO2nqVjjmEnT2(xzwM^|Tm zbiuSI$u{X5+&3s}!Z2h92$3JcWFino_>atf{tO$c+N`H%XH@}<=rWLFF0e_iSsve4 zZ_?xoL*DP9-yHtK&okOy&PoF#{qb*>LIIY-=a}UwYLSUCoVvAl6B|4cvBYwu@ip-* z%ugAfGW;Xzpa&zMRpjp!;A$?5HA=OO##nGw1c3tE65ZW9Uu&RSwSRl_FpPe=0;b@ zP+;H))X+Ofu0(qa3+Z=Hucr)ifXTyX|7ttt!Bb2pVD=W489O%@IN<4{yKH5tvIvHtyrm*(>v13xSp#ttjY1#kL@`BKSrk2?th!ZbX_Mx zFNZmz%m%Jf4fZ#xhsrGA+erjYNvr}*llo7MowG;84^0KPrmYqemz$!s#5o{>Xb>I7SNm9_9_2AFPapE$2pokSrUrk727VsUND|qh5BBZd()NjKOD5Ls z+e(?%*CaKohH*4$J`!1YKVw|EHi|JXtW&H1y=pZ4 zm*B_$X7AMyXy&M&D|dXs*VG{@T<{VM%w5@DzQ-lTQs~3Y6MR4X?@y>(>ne6+%+;%W zYkxAx)H&fI!f@;@rl)tHlV*$tv>o~De{@OzhSm~QooN~>IdF|P1fBU52v8jvYq@`NvC7oYn9{zs` z9AJ!#XVmJM4$J+KmvV^)muVs+)C(P}V&s z#fut;CNod!zuf2rkK>z7v*3jIuQ`l>aVsTy3C~Q8A95Z>O0WA3#Ra|{UGTj>xt{KR zBPSoK5Rg}hH?QWqr$nu;Z>e0z5OFq7ReHS`5kAGP z-D;;ATC?ca1cDZ@;{C^oUx&l?sm*(C8)n^U{}deP4KjL8&`zG{BhUlfDDo4*QZ5g; z{r}kGP0aqkj(GpyzqzX&)UK3DN6m^pc#}%Au7dmRlKtsHH3n>RgnM}1 zKJ>m`m=!!MyU22!c2{G8-c>LL|p(=GDm$aLa|Lmp_r!#c@Sn& zb>=huj=J?cN*~4LOA2PAIDC5N7*q%hm{YIHB}r|RovdXaw8bP>vz51 zQCVhVPW3~G%Od=VhAC57wJI=FkQYjm1AWTiAo*)vVvSq-V+f;RDHFSFHj^F9TD}*_ z?okH+VrsU^-H=e%Zq(&2mOkipqj;X!Ugfp+gyJPY+@B}^OP zZnN{2qM8kMnO0xT^zoC&T62htRkWYk`D!yIqGd^Ayvpy@?UUJ#!bw)nhx&AdqkQLQ z#q02`0OIi~dI^otU>zrPu%Q5R6{C4iRpUe%D}!u%buAJV#gtI%pLpTxCG?16;fHW@ z-Xuic@ELh3PB|)_UmFsG?W!G0ReJuCXPxRcK zW3-&Lo$)n3W#bSWiGurZWLwKpI0*P3SY*i$CN`Z<$QSD%lYNFpjuj%82r?7^@IV% zacdxKL}T=a7ydL0tYvpR2*oOcqGLDgtW~g=o7+7WYH9KtJ4jlV@B3K)=$I}Pr8y@O z@eDUCt^Ub}H+$*TNR_f(^>CNKRNbQ>_#NTAPRSI{28SSzN|`+#?yXp_nsdkJ2 z^!;#+4!CTex2xNFTWKJ=twKazu5Xn58=T`M;mc?(hOY8YT5d|neiml23x`i^F!5hD zQ;(%ssCPZe7gJ^G57o^)Ui%%235CtD<-5RZY-FML6YBc^RIT7AU;Z?u`k9L7vTn9r z^_=D$4=y1T(axvu*qCVLywG6SU`}_3>g;xWW@e~?ye5QMn92B)+gZ+)fvS!idO?;K zN`*#Qh9c`eBVVJ4>qQ}!vSoF@M1F14bM5${*H74o>Rh7a!LL^ymOa79GGk8&d zu_`_`P0uv&$cWu6mT`^Rx!O9&_IfCfsmoeE=jqEv2XfpG}kO#D(VzqvHl>Qbx(L1?bJ==fg?1i7kqsQb<_7vu3_eUoq zDJ0)7jNNC(@ud}swC`b@kYpsF5Umz_z^p;V4)mh7*USLS-=vY(!cj8rN7Ll9VK4(1e@JU8-NLl6Cj@uiFF^ zsxe(jbYt?Y#CAKka77xf*7YuLZ;joj$()Za@=nVxl6QU%Fhmi>39%mfCNq6T!yrkL zKdW9v#v1 z91&IUQ>!>RbKXF8MgHjzrc*Lt8)v{JF`&Dr(fUoQ;^|@oAD1fC`<5pzYUO*2$EP?$ z_f#T813JkfjtyzPnQv5M^*Bl7sYLLflAaEPj*V0ignsj2P<@7ng-T$EGmdRy|t`f|r06#=t_dtepT zYKxj9nFqNwzd9&GQetD3z&g5^zA{$6@k(*EJ1G^{B8d7&pqX$C(Vc8`?ABmQp1zMC zif>n5(7lkedVM%7E}$^RUw_EpoR&fIT`;+3M_x+JXgtUarCQTsi2_~c?LoRa4YH$YaKO8b0kB!qg&X&O1)X(Uqhdt-JdR0k&bNT|c# zwR4a*3iduVy8PN*sA5{`=@HPt@0q;L?Ra|`Yn^3NuFGySBC_nx$BPwA(4H$6VAEz^ z+G~NgblpN9N_}rD70Oynlu!Q*>7oO+h98((wy$ejMjxM|FN>`X8yKs_aA-&f;LCB} zvwQF`#82P*p7I-qPxgM8C3x`cTxE{N`ur{+khH{~b0Nn+{E+q*`f64DYnZ-lhoP%+ zr?d1A`l<9-Z&0nk9+rgrH{NF^$O*S|{qNJ;qa|lbQ#3jJaxjf{vLyXJe2?D~ zP*h{S$({i)51e{4i4UDX&8|l`;f& zF3k(oXsZyQQ{f~g+aRL54V^Z%2ji2;z)19a=6Mc=UsrFtzxZWT#=|f^Oo>2Y@K;I% z>#y+ZpHGUxdZR7P+Y0oh@tr|zx^m2>M%>ll0kJ$5M95V5x zvw%?ZsI~ERTZ3Q8)?ISDz2(-KUKZH7%neyod6?TZ9?o%-<cpB+erqw!{Ynqq0P?+>XR>z> zK=_hD{n#?JD|a4uXj2OGU4{QMvK7?%iVLS339c0bN(q-tKugUiI@N4A_prEVQh2*jk%l*Q>Xuvy?|vwwNpG#vKe!*v z1%Gsm#YPo!{&jy%?870-Nb4ATnxK~u`@xuRdA3WH>2*?Y{e8LVjV-r;*Ok>o5;-uweh{_bVR zj_~wt{v4055GR7KUazCi`u}(|LuZ&Ci~KhFz^CT@g}69ytOfq@`C8Klk59)}X%eqB zVtAlj;0Gdyb`{SRK7>Zz@_+yM^;()b#b|Ak8pEuEL7|!c-bohRP7Fli_WL|BuZaC3 z_Ro39{pTlP9k!xH!UjGyDxTtlb!1;3Tmo@7oaX(&*UQ_*f3C-KJnjYTnjCa@Kc_&p z9FpeR69XZqYKP8flBjESU9CYyXxEX5L7F)@&s{2#=k@nTUYuWt=RdA(7uZu!wBS>q z{Y;?xsHlvbHzcI-*Oq(EUXAnVUAFr~o??$%n&_A<3{vNx=ZDhp z*GQ@nYaaU5;^|nhU$_sRP%s4tYnk-DBK94E$j{(i>2=nA);Iua zZ!Bc#o+p3SAfG8|zxO)S+?UZ*LNKHK1Z5dtwtBt-!tev>#86o4#UsF-6a5hq-tje~ z9-JpGyHs7-u#5~vAac~c+4`=reaEI32Azj12InEWyV*yg8=T&cxL^)a%90_>Qmq#R zzzU;r-ys3SqUSHDsFOoA&RW)kj$?p|jo(fG7n!Ri4N>Ad0&UeO*yOj$$DlkY?mkgq zA2S%*nAJ86l97vNvke{k!v*yKJZXgl66?w195N0HGcJvT1O*ELpfoLdJiNcldt-OfMG2R7OWpbe;1ev z>aRrDClfga9_pfPKih^HWGjr_h!quW45C{ip(Eo#IidP4v1+DsHw$-lw92+MSgquB;LBZyy;`uK|@2VDdR7b2LvGf zIXo(0Pr~_99wQZ*(st@@S0Uj<4VMu_*~vyN&@{n6Yf%)fo9_N^>bR z#gD2(hpf6myYftcmQ9jT;$%x;ipfqs$!8lN(a4(R~6C9muNYp>&hl6xHmf(S~CFN$;{Byc|o!Jfg76d zJOqLbGCgI;GpG=wQJB4&0YicKo8ROAmzj;h988cA+RsVjrrfCU#A9aPj|yVR3^;N- zR28y%S7rAJIYY1E(jrtQ=|*2q@}?V)1Nkh8qQkf?qXABsdS#!M_nM)IjYB7aItPu3 z;ZvSA3J6XQc;|=OV4h)a?OuTe%^B0Z0;E!q0l#0c*xyO@t=&6mNgZ>?0T~OssOK${ z1ZU(SBY%_Edlom5eHggHz=BbL`8~EEXMk_Hy~%wu+K+nX_BIWHO3{E=t{ZW@Qjtmh zYe2D$6MIn>CW36AUs_2A|0R_8y%+?Brd~*+iJ4nKPA7$(Aol52`yP#hxB7&kLo8m6 zVukqX4QD>V|A?4&`tg&;6lh+r=QrM@sic#j(F;l^q#|iT#=zV=c*uw$LF+@RgDeIy z1RuAS5p!x_8S=jXr!V{jT?+9pD-Rti&>!d`cP+9RFwU#ZOMQ!;t!_ zD{lU{vRu$@_a)y}P~Q{^3Yb6Uy=Ku|@**FU92xQQV@8J3-ymZFE%M}kTi!$?mLIA% zok#x;-YlXjzj@urtdA8}~7$_LeT zSRx4rwu6VkWk;@Q(0`MPHGE+fyBQ-k?A)2AD}4A63Ftm|RG0@dckukoduKdD^qD&u z4PuEj=TEIZ_4pN!b9cauu7PY&F!XobtKEQGYeMaZXH&j2$h=T7nHyvJf2TwEfA%0* zut+I+aUvb2mv>K3 zkr_q`UER^oND5Sm7xm9aj`^7cjEBlbT<*;=%jBJH!54_-iq5WfD2cz|+7B%>p3M7hWmo; z+wwK{hRgRyopjEQh%3c!!f=LHnZ>yB>a=a5$e1-$wPI6DTI|dzR%FH@ufoY~MnHXW zm8J)7?-{=Ny;h~FU=~Dun8YzaphtiGu6s!-CSy9&H?E+UO}ElJ@B(a7>-o~PN+iGO z)26#}T-^QMn1O2}W;)U>6bX(l@`+=lfm2Le3P}7Qm65<(R9=j{TGM&K!{~wDIlTar z>{!7ZhxB*$=;QnSNDJ?_(*&Ag{4bow5qfk!oKtkW6sOoK6`V{8S&I5B1Nr>L__{2A zst_TZ#%0AN5@W@aFSZX;7&pCBSeuJ_BA+FdvUK)Et*VptIEap1>dsiCt~X1Z4b0Jb z>|;0M{^+=H%g_AePH-?-bnHpdK(7mSrO^~zgqwFaqnDxeR6seYX0wcSYNq{9og!2@ z+O4NrZVslfAnMd7KIM=ol3wLeb^OlFc0p}b+#!kWvq~JjQ_G%OMut3KBFrp6oC)-t zk-Y>t2c9y|mu}B5d@N?_^fFdLEg3R(nT3y2Z;KhuQt}Ujp-1B=3inK_g6Zp+O6#6& z>tf5SZuL*G-ED;vLaHSipnTFI)N)hOi@v%(lsD^;buo-iiN^F1L}N7LbOxH+1sRqZX4xvog@Pu; z$uZk!O6nc9$Odue{C5O{AcO_HGc&hmq1`4LwVDVba14%?9T6?*JC4qDV{)?Du{E@S zrefrg;YkK2O$EA5%0`zoT8YjnY}=tTjP;)6NgD^m6jxJ@UdA>vwh6t8oy^Xuz5Q}= z#@@-aN~4YA(>~OjjjG?ZCX7>`~=?@qxjK4w4EM4)0) z7(WFlX^juwaXTAOD&s>h$f!ofv09DWL~REQAjj6O(8aa`eAn@HOqD;b`6cJFsV*&x z4&qCt`7?D1a6l|iZ!9~nVfvYFwOd55ezpG6pNLkSgsbu;8I`fsDUPK1Tw%>)yNKSD;dpT%r?akGu{ReN|Rr zYn=X0uM}b=HJ6;#InLuOZ)#&FeHYE^cmlV6PjzXRC=&dlvPWZ;S5y*tn@h-_WhGg_ zs2Z+J-@^;J0W~-y-$J=pcPW^jb&)!(To47c^1|^dyP?S@1rT zK3_!Lktf(Gs^S#aUg|euv>s8~P2XPb27Jo%5d$;OIhQ$Aw}Iq^o>&xBs4=d7EE--Y z$I*w&n1-8Ob&7TM^hNuLGJ_Gb?i5YDx?nULz+eK+b$ALoRYY9uUGlr`;BXBY`cO4z z^TZ3VX=4A1$dFHNn>D)_@1y#57&Z^X$%HCW6jd|x&f4jU2 z9wUOD6u;P~rKt1_@f?kV+EHzt_&sQc|_-JdnNw&mot=p_S zt3F3?aD4J(w2YTIqIrMB`#;kW(uho8`F54aPLRK?5kkG(xx+_6*miM2*gen_y;+Y$ z%qAKVR?{1O=bYt;)?!?tDaA>sQVf(nWqGOB@HSAyLa-6d}Nh>Z-_K2+Fh9hOYgk-WQJ zVy{t^;rtkb0@Nm*16AVPW0O!Y%V{IyTQHq$xS>N#y3mu-rlDKWKgr}-^>eWvzLf=^ zh>g|0u&h>!;)d2|ni2GX8ZWlZNp$XclS#j*H939ic2%!~2*~av8x9T_TeQgP+G$>r zQ$S=)9_h2$2~RISn+O|HSi97IH^Y#8mUDeAq&z$Fz3=#H!2;98+02R_vqUx=&N1pX z@<<8|gETEqd7zfUe-@)tqm+VUmLWwki(RLfN0^?Te&p_-C8)!wF%P2XUUA>!>Zlg~ z)6+6K8r`L$+1zEYvO$&lQqFmIRmBCCDNZo1GO!MH0vTq`n;&8ml+Ds&+n;cbSU?n2 zdRpcIC!0UDK^`vKG0pR_Js!8syNSeIaq)AoF4Aq8dej@2J1wq@qJk)g+qj=gTBc@h zP0*x*=zbI|d!D*jBiRgVb?dIhR8rQtb*Z#2MSe0XPab?>PQ9pBUfN)@d0pn*)^pyN zo%3}{o&M`>utK7(>Eh}W%HRRrN$nR&WDKf$utdH6Ir`R`h4j4y*1_^r+k6VM=hn3swY2g`0|RsV zfLR14TW+pJi`zfY=L=JFfnt=SaeuFjt|c=V?pLVuZOg!En=P_%oxev|{CgMBj_%C1 z6ZYyCU@=EsP0=PH!3g^e5w{2T&a>OWy2(VxGZRcWl>G96DQoU4{0e8BN--6v8D6NS zK~va}m~Q=hjL3fD8HY;(qoMgmEK0&g-v6}BdsN6Rz5Hx8-=qCp-C4Ma`h3JAs|S^k zzkvS8vuJ0CCF3Y@cI4c6 zCUo~so0z=3s`+x@OUtuM$J3qhyL);nh{!tSSSFuD23!0u=pHoz*>s%B)Z(j3Nv&*B zQAEFjO3ZG#fLv;6&qAY^x+B;1`v}1y#0JZ%s9ohjkRcsi9D{t_r8!LJMbcPN^l}W2 z)tEz(=l=RL%VWbYB12wv4dB<|4bvW34cFVG6X{i5ipt2}*L`tJO<|*&)p{iTsjn8^#7?RZY4<@xR zIPEXS3UydHy@X*@DdjWpZ^dfVZb7wAo4ErU1SmztueYd4BG68kteci%$ZxKDo3oW zg%a*BPGj)hE*_m0EWfH%nXyQ@b_k*WsRq64CJ46ew|9ej1tvKq(*o%x{alzX^USqA zt?h9#M}%_{^o*eCFE+8$TAo-e!p#eZA3{BZ?D=C{{PO39#j!spb7ogNWdU z%K`U<=c(yanHE4o2CeJ;QVp5Cv@Gi%6B)87Rs5N#$yQH@gZ48+#U!%P$@axnr7#du zX)JFnrYj&$GVbWc#j_`HK-!DmRbKv@vslS^xOuM_Riinz&@Kk>}AXH1VtNMgBS$qWIw1hd_|s-j$zqnHYmM zc(jp*RlpdDR6`6kJOtZY1~0f*rRB&0XgXY7UMO+pbtR{`ta-mdUb9MHQ!zszM{qO^=*yhvlxl*?9IcX7oa9MD2twnAzr|2(J1VBJn^&QXW=#Hwkw3HlyOo z?PKT;KKuR=I<$}9Y0kBN>Xo4*wzSpIvm%Zh(?`zeOy5fW%h=A9KHc_E+9i1g+c_HJ z!_OQcdxwJ69*E_}qCvNuYV#3DjrzDM!_;7@ecj~dG(z;91#%0H=- zSFWYNc-^f9`)t{}<>7S;45%&fm7g4{M>2&h7bBNZUGGM%K88-%APRu2!x&;|Y?Fw8 z=~X2Xx(%Q6C#+}PFKBc9H#G-RPvnJ5!6APBZ^EX+tW zJjZ3A5i=6IdIDk6GJ0Nah-{EH+n~U7?cHT5uGOgRmV+WwML+()yKaxu>0s7Ck5mlv zo_e>;61GGONtAhZJ#|ZGEz?ogOwzF9Y^qcliazcpxMZW-ZTsw0*7WnoS2+p>h11&F zGD`*D3#xj9*|UkK$j={$);k-{0fSGCq-&a`W#ZGl=L&ZCsa=qCFnVCv9-5pq9ZD$X zqIThYno$f!CNp*=U0btjxr?we$lPt@$xINME558&a(12l1PR)+MyVk>ZPO_*jtG?d zQ#7w@Sb-fJRhPTH>}A~Etw5*UQ;v`=~7r0C%|=>#PW`amLX0&J?@_15QnuMDwP(LSX2Je722xywh`li;@0_l@Re zi=1CRz9Q2uwQO>1c~oSU=*&vn)P<#m?yBb=h=Y;Ep(ZBMr8d(RF194NSCGkjs!i5N zKAoDQKphfZWz-m8$(gQB)Q1fl3R@8Q=ijICPd!FNLC8MQ8Z5s8r{oEY1hww$!USeK#qPNcG23jL8|$|74W76`aPg97gN|PAO@DeO@o! zs?nWNt1OBN$XPn`?oWW^%Rg!N1V5WI?)*~0OL0_>aHOJafQ*?Zz82#`qw=e$uR0tX zz3Rp3tWXdeXKv_30@$V%$O1x)u4;6$vQ9YE4I-21)ERpR%`tAp3}6SBs8bLTdSMjU zg7m~xTJiT-copWk_BACjd>bP%jvOm0XiMI6vmGVHG+xhuD6w^-yW(K2mrld>R+3X$ zhFM+J<<9HvV*3td@cEP4NeOXo&%y#Z4qR8Dr99XEtPHUcf9fvxrkqNr=mpQ$xpk?D zT0SGOH5(EKSEqv`LK2X}=%vYCXw05X^Xgs>Sg}v2Lw=n~i=nS3EEl=3jwcPH0eT&O zV;jjs7L@h6K##EKV}rJ?5ITWQMsY}o5*O4<1hSeSnGa8(&W=e=WRZp_k3zBw!C=Zp z2qP~Vr85SRzkB|NssET9BLf!fIv(D<`0^}>Qb6AVm3VB#=x~g(gLI`!IoTS3eQHGp zEq!@4m-nJ6g2Dmh5h}Vup=pChlM?gj+B%k9Foo=*vl^y$iJ^xcOAb520+%5LQHZWn zWP??p=k73lZS%0ksdImdsU&L{A+RjVe`HIn)kxV8f^BUJ8G6T~i~jtRTD_fk>!wG+ zM$B|-ZiKXc1dlo*A@1x?4g#Bh*IVT^EfOi*5+v|6(=6C%b}i04sYR%2008|ADWHWd zBNJFgcr16E&hlB?JWaFsbgwu#@zbgIMo$$fo0pFDT-CN|LgEVRkgE9`m5hrY)aGw8 z8g{n%C;kY@GTTFPJ3rTg9-~pIbi-NfV-7V`S0+^#RhrK!sgIMs^g2?cE4}~=SqBtG zjaJEkd%l589_d_=IvLA+$PFFxh;~s(6h~)Qsy)SVbQt8T}3kNABJJcDUi{?FWB-^)_gWs5L7F=Wbr zI|I>wype^Cn%63l@;SsEJ&Gn>H+^(dQ@ZLIhLS&eV+_=E^c#(gPD$H|vgF3yq-iAOq;M~Vsm5!6 z0J8_9K6GnNptp@syPOKY3#=o+MyPhRYslvW-!gpT-El4WolNk_KGgrzt<3#Y$a1bP zF?Gbqa5$%d;&VyUPq2o~1&0>Z2DhxYZgR`Xhv4{sXJmu42sP);NDlXvkvncX^%Q$E z2hYnmn6P8lQi2 zOc7-szqjg3mOW#O$rawz4R}DoaIRWw6apWz8Q2jhD9=2~{+W%_24co+O)@9nSB6P8 zf{icZI$w@*%*4OKc=`Jyzo6LYu9I2Wn-f5N8n2J15_wBKKD`Gv6_v%TBcdDmgX{3g zCEkhX1ml90djUiY8`JEUvb{f+cYdefA>MiJR({zCu7Rm_cl82UQQ2&>B@>Bb-k;Hi z^LG@Pq2=XiRDcx?fLa;~jLP(k)Q)cxKXWtvszy=CA#(&;wryre&vbFts$w%Pg^8_N zdCBS@>AkqNW)l?WRH>Y*5>OZ#5k>!8{JcFT(gWh#&TXn+FAr{3hMD|3Wg-!k;y2w4 ze&{|plC@Uv@2@#`X6=ukO2(DwKAw+E2{HZ=>m}XjrForC+6u+<&)un-|(y)0fa_kfQmKIP_QaB`GwOLLX7K z<}wCU66#+^J5mbDQf>NrXLWWERdtaD20a)Dk>q(9zVu2L8Dh}VyMC!46mG=o!#-UU zv90)QPH-JF{3Bs+M?mK#`7ux+>Ct~$o7vq8qNy<~e^)6o+|HsI&U8NT$dEb2P?`R( zoF%zt|1fftEwSWopVNsh%Pr%qBSw(V!Df9n3587_b|KZBUk5`L+P9)dD*dcDl#Nc! zlG#-HIgcnK?mwiAEkKUn=R~DuSx4or6Cz|hg9~P3=^bLNV{PxL#08>ieYWCa$~sj> zm4k7$ZjuJ*Bv6Q||HK1zi0v|Kd5ZD>4!S7^19@9_u5W{ZZsXf>N3B~ftO!>w&%#xK z(xJU`=DnW;>I+X0;asbyAC>L8+1Mh}d(<=EBp|(zbuPvD)Rht`7yM(BT9qEJtf!XF z<%bLso*W#?4NMGKFDaA2g#+7w;zh-WP^7-w`-A8Thd58+H;KH`=F*$CJ==^5td-k! z1|>5huAxJCROo{w0`#55oHU#H5yT$yQKv|U%;D5hVAmd3c#L~$U{flGap)XdK5`#A zZTuS5v~5d)A&}|FOPCPj^wI8#wH9&lVoq&C4VMBkN87!p?DC>NNTj-Iy0-NA!DBo zv+YqLTi>V){@nR}Sg!I+#LkS>?^6!mb+B&AikNQVZ;z92j;HVu_k>b*Y4CnwFK1bk zzIJhRTwSh5{MoF?B(T5z=@Q#8WDy{;>-B|KopE)yDP*B~G`AhxLQGP06JlbT9I`#n zd)VCSjzv}*x#Y`4uZ{9>_u-3sPD8)5E%%1f5a2#7-R|n6t}(u(h2dMni>Dv)7K_6a z3)N9ck+pKuNwhpJ8M#Yj)&OV|GvU+iPQr2Gx6P$}D2dZ;U@~ z{H)Uy+Z0twS*?G?`0iL#UF9bK(?^zX>rn-s%)1g3fh9`rv6GAdzSvV%nplRJByZco z*`_ITbvsn%tyaq4<{+-nh1aK@nSR(*R{qhEHIIXW?ucD#9g}MlI>CDj$E{YY+48Ni zCr;MG^R#WElw+66+5F?)AJ%)&-VXbiH35O*1&bclRQ5S-L6Jf)WU`s{Ctv(qvsDI& z{xC1hW$CTRV@Azy{}e1$iLrNcTs+pY&T~X31|HknAa^S`J|+%qy4fy-95c+v&&t z(*01&NqoJvpb%R(cW3V~JLmOHc?9U863fW=N5W>S*d-x~I*i)~NgRb9z0u<1*$P-_ z1!k6cK!E==cQc@;wd7^h+U7+{DC^a$sOH^1zT;<)HzC`Z%M9Q93A(g&Dx$)rC&wZQs3t z-I~QRxErOn!i-wPD5^b+D>kdu_BZ_s-D#8o!hJfaw49F&(c8Cfkkv`DTlvT0}Q- z&&zr?oJroGU6@7dCF;Tf6wRM*&}HTO>VH^MGDuk9gBpj;D&AlhUaxR(kRD?hWaH!l zWE^iGS^_3&+-e&&+`gqfzX9 zPHE3k_wa3Y^g-WG_A=qHyM{R{e<#N>U9FP+GYs~$kry^14kOlVMdJfp%bKTD1oxJKUy%ZGE4Zu6cF1ZQHA zp5uvxOzvMYB2QQhf6G1-=x8S08Wi6EKpyPrB|QYCu`u_7Z72nI1caHe^^&-UgB*RZ z+I%Av+;7&fUBcrJ03>=?;hw4n?_Vjk5P1ohuiopE(LZTGIh$5YzhYiAF=4Xqv|~zadU^Mh5Igc{mW9mM7SB)6eYC z3vZ`yutoRjMd#-mA(lU%{Uf8ZI^tp=5px1Y^RAH{Cd<;0P2YA`4vsr`W|aLewY7jQ zb8J3;2R%$pdLd}Qmy(h9Mb!}tfL7jrJVKDH1RPyz0reSdb3@mDdY|0v-jkn#0a#_~ zXOFKc>Q(zfn2ej`24H5@!b!UA%bn?GPo9~m2>?h7g$FCU#1zN3;9~dk(}Hk~Ulx@M zWV(k9o%`7Q!2D!pndE)_UD*x54xK5^^y_>G*1K^SMsiHku#2m0_$Tu%;-Xzin5Ih3 zhY72)4iNLbJdax>P45ks-vQ8(8sa^d;zF;e-g@!u-KJ*_sNzZvVG#{fw29T42j+E+$_jt$D{8IDmt~=DSJRx3bBm^ zKx%c94~_QkR$&07ZRb^^i?mlEV&xqIC8BUQP2;_}&BrD(;%|1GIcu$@<)5VI;r@M~ zMgRi#R;%gErNfRd=i!GlRvDRBHTO2>bcL7dq@OTdT>W|4{sj@r+rp=VKT4LCb9sXm zr)^bwui~EaPN6%tFG#lxK;&s{_o7II!3XiDz<~vzTdA=sU>#T;{|z`cas!2h_m;gn zb?Kr4y7e}P*Y%6zwKzhbTYo$&ao5gjI#nYkxs)=01K@~t{kNNOC*#^JItiT!bSn4^ zNpsGzNM9wFb8FUx&#gUoKOUT;L`?5B64ry|84G^qUx%N!<}j?ymbgY-G`@+r$i8Y4 zW-so(cldxyV548HgIj4%W!d(7sp4>l{ZW8MLM4rid4bAcjEoXri^aXdu?}wM7@;E8 z<8If1(&zQ>ibJ(pn8P`*+8XQfsI*z^Teo?O20y0E*<6HQ3vo(%1Bgz7;&YYD{s_aA zoMjfYqi7MVApc~4Wb-WXyBGE`zCpygrg#!jxu#+iov^xnW$ip4bQ3_dz@9u&Tdffk z6M%?I2BR4efH)>^ZIDJ? zab8_kZ{1oF!`ivzKgNbjyr-5(k7N39R^KvB2^@C=&h8rw)N6P`$r=npr+d$5* z@0%XaaUYa@=TImZx=X#o<<&F$&TwyPliVNMSF^w(I;IB;6&xA~qvGal5iZ~-Y~XSX zGm@h?CJp|3KHv!v%fxF@;`8YF_Y#&Rg{kTVINBO|Q{25ogF2{ZUd*_diLAsJw_FNrkyTU9+T!UOkz5KjQruJoKsAR%O#Z+%GkXGPiz zc`;PN2X-;b%N7XEV9Dbu#%jk_tX+HUX0;&HuVnuufaa?7y-N_T%SYd}Ob~N_*RF;x z&NykempIw{CqnW9EUFck^-9E775Z?A7~&qO9U_+?NX&X!Ha6}*CEE(fn*+!B%JK<1S0UoZqL((CiLZ06jI8wBl> zy?;s7vKmv!v5h?65GB3KpH-x^G)py45_Br%$WV%Sk_!kWhDW-jeIC%2ri!8bo zUFU=RmwhRm_kl$1j2X!PW28TKz<7Tx8e^ya3^S?M31Ns{KR*Ewx(05XpK)Ee@^xwi z{2iim>4N}q|(j9`r&?5{D4&B|2G=d`CA>G~Z9rWJ&d+&R{zu}zOXUE!Wt>;f)tdFFqVI8w@a-G&5x#GrRMmf9LpK0~;;ju~)mk#CG!6?4B$-6Aw4lX?=_1#iP3$ z#%E5Z(HN9`yFjd6!ASc^qHVBdT4K8%l2^LBD|Kd-qC zx=!62rA5t0dka4E&PTa75iqyt(WQ3kRugtoL=$NygKs z%{??!w-}k92PjrILSyGknPy6)M=D|w16(4^vphm@hWqm+M* z&alB*EwT5_4PU1^n^j)ZjXAFzD2FP)an$>KfyPy8_)h=Tqq1jdcn304PhWNKePcM8 z3PTC@hEd$UljAhS`kBb!eAQ8Vp{hgZeaX2A{r~cZ4cT18c`Ij`O7vTIYjj^mea#J4 zOE(-#)H|=UZK8sCrY!BP>CSRIVP*->k91(bOCB=v!s9<4y1v(V0g@Q(h*bA-+O>#l z;?&gYLS?`E<14hrgQpiODG4HWjj8i&4~`YoHJ@5KnZ&r1!mTv8M%4(OyWB4-Q%p7r zmXf-5M{OEY@^UGb8#>46D@}OpL_XUV5lP`tS`jIRk*AK!kaiYauB&O6Fb4YXD&{UtbW-ypzOIP zKrOMWt83JkFKltFZ;iqCY!wkzPxBGJFNB`UYSdcZ{s6mx#EZc1V_Z8|m5S^|Q*6|6 z+rV$k39A5ftQnd{+3RFRo*e49!Y#aU1J*2)E>(NlCI4Bi?$%Iu-N}fqs1$=+Q6xa7 z=Uqx|e5LK|qvx@Y*zTJCjLIMra`5d#R&^aY$|?-Qw*A`qY$iOkt6e^CY_L9F=6Q3U zJd-EFmB3Z^*$2Pbo7a@M-0FKilN+q1o63q&t*xF6WdTxaNDRu*D7oqnXt_mJ6XnlL z2a*erY!0UVf7O#%&*KEz$lLm30s^q~&d5rv4Gq%*?*Iil#IB)HwW)CRcqvzS{?1K| z)#_yOt)fIgL^dED5N^DE$SE2&odG8cZeXeufPU7_Xa*)Ll2-v6`=cATnT@`$)mXK< z0W72=G(sZfT9r(y7V+QDuZ%i(T|PrO($#scJnHWGK1%sCQhRWmjV99vc!&Bk6oO|% zh=MxfTR2Z_1Ea3OUooGTWgERZ2z46GKJd~HFgD=+g%1g!y0xg(_4R#?^9U@a-TqrJ zsic@T!+O$L5$cpIlxNKM99f2yVw|cN4Ah949Vt8$$mhck~g^VhWw* zG>@z4;a++!7=<2;@vR}56+JWxs2=2;Uw}Y4g^JYP4`Cy65>F<82=I>_MfzJqAw`|a zt%xC@41GZM6+S8x$SVM9MO?~&#!(!B94#9O*Lj^|n-eKig0PN)@KdJ-HQshIhZs#w6Iw+`cqX?}k*Q zq`&38c3YeA6nWOOug`U4@$hl$)F+Bf>R8i_d-Vayr3NVe@Qyg38MOz|)Of6TC!JoM zj1GiCd<`A^JF#~S7ZX;xS*V7-tPj6sWoL(~@?mo3!VUi-s3R^oriEq(&s?`Rgk1 zsS*kL7PT+VYuxlztK4b3bw&juVhcr~`d72O`)l7jd*^~wqOf_AGfps9x(gUFkAHdC z2n8p}IZm+%a1(dtE?Rf?GUL7)g|4X`ncbLjE$kwDG7;-m#xFf2xpzt3qhuce$_C{}cU0Gn6>`fr_wFa(#MozROV} z+19;WX}Ti4!U^4pT{W#jix1T^L7hB>97)^nz|kp^dV)=k`Z+CiQZN{_N_<=OJbdW1 zHl#%^knw}ZUs1nLo~lGXq(>OOUn7y5ovE+%)lKVXGNPX+RYzEJEHBmd#i zd}wDk&e64v_0O9VXQ3!d)!e1`;@oy#_TMXj413-rZO=Cj)mY`+Cc8pQS%vWh8^n8a zgdYVk<V z=rp(F60y~6=C3Wo*vVDK_po`9 z0dI1shCUq*@;huJ$t^s&i_^v^Fl5%c;-XAFE6!oAHj zAR=C~-7-->7k{V2N9?TZh;wj^f0K9=zweCQ1ioqgs?jMdadb}YN*g^`GGA+Dc7~nQ zRMI_D(#D0+BbipUaOvPpTtVN2=K7n~3z2Yt`uZ?SQfl7BjY_J~Xx^UYMZ=FeO#u;C z&jA|^q_X_pAt(S-^HO)Y!7fISi2XH`>10sz2-A&BN)8)AMdzMPj8$UY&}Oj;M@&M> zRh$!<9EnAmFC=~a=B^eNNrvOX)G(}(;r!u++FuQjLChpcbRSY4yoAgg=1;Jl%Q3+h zt6x(SRsoqKump;bju5-Ds3>e2k;P(!h$vWf(UFr#=`@C+DN%=Em(nT^6tbKoY3ta$ z?5OUZBBFX6c$q_1u;)xhMiZ>WykTT_=D{Y#Z4=3Y$Hap|!*FO_? zil)&N-QLMjB1t~+pD=_vzzxXRn@B*XC$$we-IU+G{DU7z}(A^HIIk)pd31ej9voMkuJo5bx(82u z$wN#gZ+U-JO#?M5)S072A{{z8#EJGFls{WL*IK#@Relgw)vqmWyyhNbz~;Pm`3>kU z0o&q{I<(t5EE#=Nys+jxd4p_7B0W%YxyAT7KC{VR4ZZYK;7(ugN82W%9Ex{k!c*c+ zqnAtEZ1aO9x^ZECY@R8vEBU-5JxH3bUK)&>sBfjfR7!qYC5@pd{=IXB7fQfR5Pev3 zh5yuTWI??}G7t@i|FYj4q2@^>Prj*52T}p4dS6hRqp(n)IIby)xCYrv4sqb%i75WSa*}XXA}n>&k9_FbvTwdUP&fMz<#5jYd5r zy^KvJ+k^W@c=8#LC0A(2ZQ=EkLF@>k(<%KD8)ek7>bf^Ewh{tUpinf5jVZw!0izQd z%I={@FXcKY5a|suM>I3a9DE5S{x#{h!c$a)xjDQQ>6o)PP4ZHsjgG!ba>|Y-gW!vL zYa-*zk+xmwOIkkBaD5j9!|Inm*+Yq9tO`NtLn;=XK#F8|XQ*~7d zgHzBPk%JB7rNxj@mIcelGmexQjq+6vznK`W=7XbvSrsr8AG+vgM8au`Q0yH7spVc& zv*f!zd@Yu}a6ozCB`*P-N+*+(cHZxF= zqCm@L+@n(Qow}`LBy%vs8XRDOuv2dEZY!C&YOM*#`Cz$$b&$ePmz~^5T=Gz9>##j2%WBv)K63CM@p*S-Y;uY zG|D6-Erxh60TObKtKriJv;fv8e@4Nq~gjS58(}Xo(-Jvu9HHb zDqr}~YpI@s0&*m2-!s0+v}U|z?wSg0N`S%<`3B@tM!$T??7uz|L#lE8kIR9itM>Be zIfdTcek^;C{^(XRba4F=RqrdYeC^@%e9g2I*!8mPI7|5?M}(@fuh8YL1;K60BQwN` zYN!tam2KCO?q@$s+XOvGTbz0iLi(5pU#GIgPs7Oq4-9oEl%=(;qS0kci8E@aOBDe) z#Krc|B={wo$1)MR@i_+DOH=^1_oSX%xpULuZcReCgSBO6qPP1piMEUZwWwMod~kA9 z;74bx7488@!4w#}w|%P%u8AtlTYdD!QK}huDhFGUA53Q?$>B?6Mj((9sFSO#vb11btcNFBG}-V z+9%M?HWIV65^SeFQK5{-DfL(M6B`ip{6dnSg4qtHlS8$Lh?t3@{iTrM<)-+4{4Zs`~#b=zliq7?tL*8 z)Js)rOsonsS7ANu3h<*FBd&V1*C;Y2}!7j?QzQz^lSPag8G(9x4Z#f7vHPwU9%aIPExks z>4`u^2mrI$)xI8ISZ*4Ss zM9cN$ZE{LC`~2mi=%?S1XR->X|JYHCUC>k)f9>L7pPKtyMUt6M0@EJ@GNO-xjC$Cw z@S%`z_dgM`iurlA{t!Zn9QyV+xM=KDKE$}0f0*DB%7k&VyfVTmV5tshKjR_PU7ESO zLK;)*E?3_=r~!(x#gY`I-li!q?m$V8Qp-s-PD4blW^{szh^&|S&nE-sm`xQHU#V2K zZvDveK0@!It-Q|F`^>(G=D_aSmREk)Zc@;8mB+x!1*zHpbXQ_9|GLryRNv# zPAq`*hga?NQoj}0%647sJ2jLZa|hvxy9_D~Y*%x1KLV=4Lq!Cxm9&|l z_)H3da-Bfhp5>jONmuV6cv!R3^%EbrjkR1m;HT8vg{kB^6eqqM#pooF>*-Sy`$Zfl zfoOWPHHJ|i<|&jhU9x4_gT&>V<)Q(6M1(N$GIEZl*{p?BX*1e9=pfAS6APk-koAQk z9;d-S4h;d84QM^UheU=Rj>Yw1JcvNTTi&ywKXmfg25_%>m`_~io?IO^RGlA0Cxk~Q zsOD&TxXh#p3|-J|jc$S<tqtoNYYWn5`>5`jZ`oO6+Tz?v**nm=A|WCe z0=K;T8byuaSuS^+x;9?XK>Y;}@U7wc^whL<^OqqPxDz5neuKs0OtH3h6rf~z?ix}3fM9UTt9^|wl;6;an?CMViih)Q_>Sg(0Ja zomdwKw=pb*369#AqVh9&oR^jS&Ot7fb) z8~0p>1?uhtIlRx@|M4e#+MFndTE&qXb9ldXk_@!8GTd(hjT*=|4Y_Pyv=kR%YbFVY zMiuSPb?r0d`TJpIZn1STzFHS2M%INu;QeJpfyaiD3UVg3m%aiBI5QT+9CUx>n1M+R zg#{y(tXp!?17lc6vdI*~b8R7tpf~T}dcuHNxO@Kh6*R4r?AowmL?ye#uB2@Av~_56Rj!VZArw1rpK%yzUt_YAu&E z2#%AZI6q!RVbgiH`tf$@n_UI2QV&G~iEAqyfq$n;WD9sA^p7<{ zU#2tMj^vy}^WPuT>~!HL?;<;_u6oC-1!AXg!eebF=>Ri>J4L0l-af$!GhOEF#Ca0hIf2 zmxiQynl`B!8*0?e-LW}EiNnc8wp-N%4#O?;#zh>B9XK`dwqVy({Yl;VX~kIQfG0*` z><6(LpzFo$FI?p32S^YKO9B7!ynq0MjF7t2%;eE4_AcsoUo~`JPzuNAlLdw`CzNC$ zd;~!#EXWQH_MN_qRPHlXW!kz|QvS>kYBa2FB%}Wol(Jsh$6Q9lf*gjb7YtUaCOW$V zc+AG4Kq%+L%Mx@Hkla|V{|$&dcmk8+2GACR9O0KH^L}ahp=5#6o~XjR{G0uWJA)&- zrT+UH;crU}2L${FcOVhI{oxqzLTao{S2+u%2qO=_7~bX%-~ZKr{u6zk!oo;;%o*qK z`ADQr(a!X-;VMRcKCZ7rqC+Tkg-ecQ+zNveN+4L42vVe%+kt)i@{?)%iOACaJ!8hL z#=5%5N8CP6c;&OTmA(_P&6rl@o(J(bqQXKKL33jTxdwo%40}lbVxI=~UMi3Z+5?_{ zUD=TR4qXq4O_=uWZFwY;{KW_qKaK^YYXmox^!tv}Lg8h(t zLeeEzQ-Rw;!-jRjpCZvF2K1wt{0N)2>56b|T`0^X>Unl^-No5{ekY*mWmEPm({qtL zFXaZw$TB^^t%as;$v<@sy{i~y^e(O2E5H(Ar_@m{p-eMQ$jzrEtlEOLEjCjl-67!> z|Dmo*y=30h1ZYQa*qkr+F(0IuH%YZhgk|gx%`>voEx0dt$6@_}*eX^gZQ$%RDO%vj zmMG-bZx{J18U8nMM5=oq0&TVpv^Ja}_IvK#mfRs>AJ0b~)pN?=BUL?8Oz!H*^dd8D&JaiCICjaaLHR&!@j=+nEl@0&M7h@?>#6 zs!qt{1pX)(ovtWW?f$e;2im=lo4H zsE28L{DaVw(6lQNon3xF>ma`^;J|epKWGix=St6ZZ@og@TJ=jFE#tO8QI|%ey)tG~ z$TZMo;(vb@jB7&g%|P8MSKxz+hSO|~?>K}%>nh*R<2~Zp?=yc-yG|LbE^8tJG~;VXJ`usiTgiJp(MC4+Fx-sMvvR#R>>Rw z-|shxMiIxvEg2)!mPo%W!Pgp(zrAt0t5;R&>vJWp6Gvs_0*g_Rs?B7G2|6mF9>Vg4FILGZS=qROb}qrt>3 z#8&za3NUX+dZRn|?O=4QQe=X0W!cDxh>98WNV!zj>o5G=a4`Vhkd2S_-^A{bMZHOO zUzoke47~vm@*Iz9VU08Wzp{-qksed)N3Fp-uQ}JfcV)m zYu|4RYx-z4)~iJiSTSn6vEz$6+O@vy8o}=?trLpQ zDfa0z&OY~Pvxdd0U*991)OEWw+#f(?tq*J+GvNID3hZH7|x^FIL28);;+rzv5x|x%64`9(a&evtW|; z6pLY2%FlKcrl}I@$T^CF6o27RZZe2xg*h8U$P;vc=MOG{6p(~2>12WzX*0{J(0K%3f(; z5ReDg!2gG{q@;$I*6!-)XyiNt(mP zy2B?prJ^nFTlP!dm9w(L3S1OMnf=zYwC}tQm{6~CezUF%A-cTLi`*&BuW6=v^BP38)EiV~b-!0%84B1q$0#(}A)_g>k=3BKe*J54Ylyq%`~Cdv{H7k{^0HP4oe!(XHatd^VB* ztdF;6Hl-VvMo11HTz5=hW#dNpFVoI8~LXiwh#!Bk!?@pN}%UY7hmomV( z(P~{!4Sm{qZj>YOU*ua!-1dWclKd8GJ`EjDNY3l-e}I_sc<@a6@3bVTYp`=_)odK* zi|ch6eusvu$1B`!h{#l0LJjYboeK5%+-;x-1<*6=6;P_aFFP$o>Q|S+3F0>?NiUi zfCbZ7o0^fU6A;KY;-gp|0`a7Z`QRqz7I=R;T`^(#_vWwI_!D4gznWYY&tmYjTV5v9+f; z-vMRlnnb-nc%p^zOsO|Y0H`~Q7u4zKQ2BB#=N&!c@1<#K9&q{6FA`W0jMUg#Ge1V$ zFa!gpcWk6lX3saEuHkk9ghMqv-d9>_0Xvryg(zC#ic{BQf0P;g1eN{+`Yet$A{RcW z56qyrXC*u&feSM*3?bM~oMg{$r`ZJh8LpuiwyBnG z$^vvcdKnL3k}>LBL(O2eOq1R>CWuVn10`*O3F!ni&WX?4jbgaZ!O=rz5P*!~J%=9M zju+Arqb+N?Hc%4H<^+@-17?d7s3a7m&OlgM#{lZ?Y}1wqwX^;=&p$(Rs)4sd6kW5~ zikj&%SWOTk))VZ%O#7lfM`w0L7&i6zw6vu+g`&#^k^?jBbL}rdc&7PFl{&jI*t=6X z>KP!f3v?{Yx4Y*s_9dPL{|;e;96En~7FINH#2(SGVRLmFwLF{?P^7K0Kv58&4ns^3 zo2K0lK}-Qp{0!1}n$rfeZeVNtu;N2n3i{cqYYVA!LeSR}f(s$oE>Gc>!ZUzczmm4Y zgbg1&?RI+v{_{0NDyVXPwx3&lUbh8 z89UU}=pp)9rUTWeQ#vc=umm|FNc<%=J4p{|crxT!rcw$JKLYC%FbytvU8f$4gKIvH z9ToWkEaIB&25eG*$$G~f$|+Z4X^p6~ijD&|Rx+Qw7xi@>;VY^Ac919nj6=+jZ}0w4 zt@tXHSx(o0f6nnh-v&|XDU3V`8*+b=D`mx)KZq_#Gc5t3*>qWylZ1-Dm5 zz_RBfl>zq^F7XFzo#b+xU(m4p7f*La4J$0VLwK4tCv2KiWd@Jxc7C^oOO1Tko)B2* z%>K&z?h`g44+Lu7_rwGNuX2DD1}YBwwCm`3qVO-oXnI)msM9`&3_ zZFu#1F?@g1VW7M1p^hR!y8};s>J5+-;HmYxC=lQK9lfs>a&NFy^MUJ48;OYzKhvug z_pJV;4CTqn+9aMg6*dJIZWW&HYo|-GgGJsq3s(VX@HY3IrXoz^dR$4fx~!BK8wt17 ztM`)~jCiTDn?GdUNbY~ClA>#~nXbbfHc0Wh`W;#|6LoJLnO5XH~#iG{zBZP4|0!;YlLZmNI%&Jq-8 zMz)mdPZCr6l%9=4$o#(0v`3ksi0^hd?d;92f1<;7jp%Ek9shyx<&sY0R6Yrt$=#vq_2(0og`SHZt*0J8OHh)@5EGlN%~Xkg=JSpc(T&ZrwsVh24Cq>f9Ley- z$Bnz}qvJS%N6IE|E$LiRPfq9Jt!~aY*d|`F;XH`Of+4ue9>0W8S?g{Z$BFto{Iv)) zKqtg$h@uE~RNV8wMl6FS!@wMo*z6-d_4VWEs!s<;GC0Nax`vRG4FoN|d=*5jaf39f zpG^Ld9VsZ-FI}rT+xUJ-Q;U-Sfv=Brg^WMWzQV@H{;vTksttZMeV2Lc9K9@+60f_} zENwqGvQl)b_B!2n8nia~X~Tr~6_UQlL~KJ9}Rib~(3fW;nV_rtXp;yp#Kpr1RpHw0TXFT9j6P=dfzl87Wj>=cSU^r)`i~FH|2G) zwO_`^ZnH%s;dU62SJXIBr}sTxV96JkA>#V#BKF-R6?CoVL4$S6Gp^l^3z~k>4Q`R6 zp%+W1i{Yc5nsPqt=I-fy%;8ek)t0l@tD{9JQ!b04=lp3>2OQ_(>)EK^4=D-jtXIOF zXMrvfqeVN@LSm7DyCA zZ{)4(KJ6%~v%KkC%txf0AXuT~pEVmUb(a1_j6)A{NDS>hINN2I_h?ku!wZ~g0q0z` znz^Y^vsF2b-GuPeJP8xq78X&_i>@B=KAp!MtLO_y%56FV;DrgOcXF6yhuo|TMO_> z*sM-J}fKpzWc$nHk=ph@zrlPh`~)kMR*>oD5oU_?_BEU(qZ)4bFZDspsSlB zCI3SBcZA&G>~~2$fh!3HjHZ5CX8=zh~ z?(TuvQecpXy4Y!I0t6UV`U?t@f^86X;$D|~Pdz2Pj>paRf2m5bZPX2T+oa#D2{iMNKobyNd%MJdLk$gKf5&u8ws?4*K{Tpg7Bz=vh2QOQr}? zpYuEYhL80XlnW;&HvL93~<~jMDf<|UcMbmz%M6}y0nv+ z`flz;x+!@&=RZ-MO5aDK^lBhkBBY{>JYOBd^Zf89HDj3+UL{Y{<@>eix++U|4v6ch zzI%bQ4oJ#4f4lxbrHDEI?(-{bJ-Q!oE+H8`2e z_1Q|u)jEArw)v(p9{ zra;!Jp%F*^KU-=_ccP_m2tlbu93U567U7+zboK$s1|Nnswaodk76S$-vjKqct(1ZH zm7{WJ82$4G{Rd*VC!o|DV2|E9DKr_oGIk--&Bk6^}Sk%)fxEiD?qug_>f0XgvOe**D$n zqNeNGCyb2%HsRq#N9CS*Cle!u>IP^b^vM(zAWIK}23|W+L5z#eVYhDdTV^-p=AC$xYxUM=)=*c$L*S9}^0zERdVEva_*u zs3oEXxGHZwhpua1D5p4ZAp$lKS9LG4Jx8yuQs_rOx694di6iN3qo;e0PF0~0ntVoW zf09_;u?YvjTo{FL_b02@u6_+U+!d)hcKU&H5$K5}G-c;6WEn7kcVKq@aZTOb^%Q|}Fd-f{Ii~u!b;WNiNz=v(W zF`}h&M^avXz7e`=d#7*TPMPs4u5DL|VxXAnzWuSKP!UoK_rNF+u$+p>pdibxL-!ue zEUcI5D84_VfyoMapcNiIbmz zBC>NK-z~_M1J7f6VzQ;OYU+K+XmKj*sZiLFZ}BWh(c~C66QixvV=J8A0E%BU@3}dQ zcK6iC29bcyWr+&NpW`18M@dcAER^n__hEa3dfcvrT?TZ%Zt{h+!El<{}g9S zSr9*t*xg--bnY#$PT7DBnGYZU zcH2KV?oAzaeixd}AMM*enmJXPkHHm6xhpRX@%S~W%Xm?%g|?**{x(kBNw(6`XCOB# zyaKMCvm)4~wj+L2^E>LT1M2@f;7|8|$fsIk$YWwCBeP+C&@A=VU*5(9YOkhztk5vD zv3g8PCH}DfJecI^&;l{z(P-rA)hfQ5YwX_O^@Ps1T%@+96gi?cPx%$mK9WLWd#<(B zW$8MbXH>OmGo)L*7EaIk(jxg3k(0-pWdrArpP`LXEJx3~z-SS+PfdRo&~r`28Nof< zc#q9K*!M>YlvC{k#tG;?Gkn-7{c?SEMa7GF^;UbCk#Bvz7~oIyeW_n6)MZnI zoq^J5X+a{kK>+MGG=Qlk#z_dN?Y2{-;-DSB;PBs%b;fSk!H~5Gvd3ui^{K^1|ureTUSJP>JNU8=-3_+RJPDD7>pxiW%gMuI_RxJ&vy6fq zicjjT*Y`I9m7>gpu3B0%GL-=b#kgE;i{wIs#^#E;XA)dtIoj_|4->m=DkB>CRyv^C z8u4AaR1;`M{Neu$%CtqY3CnV}d5lS+<7QE{j}1S)8Uwg0uyVn(@O%nCRjeAk{1Oo7 z@*V0IIC3BNe>EyvP4a5~D5kIMyfzX$+zCmRaKA^J8+4x#w7xVTj`bFSCdofy$*0X$ z-?d;b+Mja*M#kK`G60^Rn!DQ4<^XL;7s=CP{7AcPe0+uZ-%gS|4w4FM zik;tIswA5$cgpam8oBU&xrJBY7NRWmea$1{IBw&&q%hjD0A^!6o96@?B}tz8q%)Yl zk1#$M%sG~!aaFdYKzzV)0G@G+-ba+k#`KhbMEAMtf0nBLo`V#iI>c^5@!ROk5j_n5 z+SI2^cD88ke z{i@#hzwVSfDU4pHGLPyu`HIqHAm_iMRoyUku})rB|3VUg(6Evl;eO1w7&B{sBNKNY zHPzN)Io0F@sxQ^fphj$@n)&0UCIVlWt1weIuV?BJ-7C?>5>FH}_9Hi!)39xj`O> zMn>7G_+S$t>G?6Yda%8SB%Vwgs?v$GJM=A`VQ=$kralPM_t=wfz)@vt-b4;qW7r}E zR@{AIfMZ2{+|Dq@vg);xgNR%Ji%;DAX zr0vDlBtFItxr(q1?(}j4grm1092khtTB)~}@q$`>-B(itK1 zoK`&4pZi)0VC&lb%Y~7}g)aAt?HtAvVI96c>9qC}_ftn=gE+~bj1=nW#5O|Jwya2G zc@^;#)t|J2_^{eXbsdyH*MLE-fg(z#2BZ;f#^aL+oMRG8aNLP3n&(c#NiEJXz>f1! zK?+4R@#E0dM*G ze=Xi>^KYhNK^f*izB6~(aB0ernu#(+u!fJkg=Yl`z%oFPR`GBLGf{=0CMJcc!1BkK zJ7%^oXz`k z8UICqQ+C(su$IA>cfc(+lZE=^;;;^w2OedpNCAB554u6qZ%LypD&}X!U3om?ni=HW#8#)KwvVK zgnseKib4|i9B}WI+05+da@8^31s$7$5?bg^03y_;R3F2!0BJs#1!Wl z*V@A~RJderh#AZfcHwx-lkiL{=w^?N!s@ZSlW` z&FpGVop+qIxmM7MZ}P)&noBx89=Jyal?p1NQOgsWJ=Wap6C7jQd~p0-*I|`B1zk>v zR?sT@CiMUMm@S5ZFPUGcRoUp#ufFxG*TJ_jNF_nu1KpwELetW<|ERAvJVTtBY5ptI zt?}+eDz_7p_5+`J-EfIxWTB$jF}X?KT~?!a+6`_;hfOF|3MIP@7B#gi;_bT4n;7y8YyNQ_TB0#;Jsr%Dqz0&u0Vu%bjf!}%{_*T z@N(Xu1!~xW4a1JHgNPs;)i|)k?}DJg&&R?lr-?$d9uCr-_#f}X6zwicRFP6EBmF+5 za}XC{sxgw4Mold!{sqp9(0tmSY1F2~F+s)_uXA^Sfd@&1`V%o-5)cMWSY!d=zs!ms zu1OxR2az@z2*aQqbm?n_$@gLvvspoypBsYKML6HE`-D+D9_FXg$KP_vP?m!C_9q9N z2xtJzPpM?uNp$!*%^kw$!qYcxZ`v85*?hg|XsiYs+bqKMJMfIqbI5~$xFHy;1fFk` zGGWd3Mz6|DVtkK}uRVPGK!LXL zi+%&YNBW7w=x1;{sFw-bK#^+!Yw{%|y0oUVyBvk;znaQ|zoKu!E`RX!lk*wdY~_;u z??9GKwub?P2hu`XAPtP)!Cu1BrzT>lT)dI5jgiF$XdOklX1@3F|Mx9)3(5S;(Y(bb z=>Pp@JWjEHc`^Xd0#qaYugDWX9X5fYi+?&7Ku&x7U*{h9d+EQThTF_N?mq|CIt;d+ z$@H$zQchq85;h5fx5%QO*{NNKVH4pf;nk8BwWvqB(x(JKHU@YW@2@X27OL^)RWfUa zNpCGt!cq81zIGYwqem)ljg0V_fi802KHpp9P#S{2fG3f1L}z^mcv}Gxd;q+B8#fPC zFxRZhqOVPWO}ZzJXph3H+PMK>H4S1J<28qsIe<)y6Ewci+Y`_!Uq zhc{DbaS+#1rT@xW-DX;VtQBlk&&I0}N}B-(#3cn)9#XEXOk0hRsSWU5$XMK+`f8q7Tn!G<+ zZ!tWUeo-~z)IL-q5h%(|r>G2l`1SxvZt@EmZM=wN?~zVoD5Ai-NT*4 zY5yl5n)x@|m3r+L>S*>iN2Kf5vkL@a=bqy8IQ z`{p_W2z*qY0?^~^Te($|daJ0SL*~`}&m|ns*T1m{aFSbCMgbcg>&c)?$P<&8=IyVg>Dc%WRRENV7=<8r zPc`o3Ec>02$^JC*xdIzAM`dRIMMfs!MRn$(XIAFrp1kt-L6N(TEC%){WifoPB}#Np zZCq>~kO7lTysX!Kb6Ks%uq~JfkegZVjA6?- z0!}xc4Ik`_<2RW&u74-A{e#g_JMZnHr9$PKO{G|rkXd>w&l#R zYQufWa;}x6BF8vjvqiAaLy|sydjh{Zj|G08o(rUJM+*Gzi?-<6)E~L1uHZ<2Z0AYy zo}B?aPCo32Q}#G5tS@QmX{J(NM$680$`yyR*J<6<)mqcwWzcxx*5%L3Ad&as z6Zbr)F4|w4k2~0Z7Q}m*;3=lJeSXSQv)DGPTeE?ZT51e4${2U%cZAL4jt-Jt1<2;5 z#Ps;0G+z>5Lr@+?^6djv%G7g*A z6s_~2o;qqzWz}w8*VW!poSLkQ6f3E*3~QRh_#BP($O0su9#5L z+F9zLt6+S9^DfLn zZ#)f~_MAPZ{5E;cq%3vlqA4-+o*!eKIQjZHlaBId^@7y1i%88#lM|UMBQ5(GgGyv#XfoI zwRB#G`0u~*a`bd-P4kd^NZy>72{qNr>Rl6(;Hn5S&%ela9&~+wKznuc%fr1cGl~6K zv}OFWg7eT1VnP<2#Uze2Nt_(I9wEAe`+6oA*FUw<-3?kwbZxx7)9D;KmS#>0HJeJV z6HgvQFEobQMyS`EefQPa`F#*_th06SId=A;GiTev<WfE%o({u~tZb1i!5MUqy1_%U~5Fii;4#6Fg;O=e-E`vLRySo!KxVr?m;BMdM zzMu1)^S$T%g=PaPra!>2%LG8hdFqO?B zE>s~nK)tY(^AjmSM6m{-y?;^Hau&jkhsMy+5i}F`o9YIVVU8oyr6T9af=cO_?Q{o& zD!f{M^&Tj@fBj|_GwAb{W{2i$$OF^w`z`LR2an29xEk;|A{#4uQJ|l-eBVvEK}YeWe-ot;~OVaDZ<1;4IQ=+CIyI+7zy3R~;Y=9BV^ zMnH3*vbVSI-AGTL4_EQwJ_QxsglBnptmd6a!WnEn!cY3ICJlwWpv2!6W(iwH=)t?S z5zx)SPtZ5m@L`NoPhWnSfpVlqWol}%4g2X$%rx(ZCx`FdeH%xeckbB->WhpLI%cJ< zy?gv;w_@y-<#ldN4*~45$OEGtlbb!$k)gA6Mjh2c92OE&q|dqZ?WL-vMwqqWD+Wo4f@?Cx@ z5bqtKQfU$61du6wT}{*mAZ0HWEI$r zgVoJ7;!b{y$7f`MQ%j!XxKdwxhRorM_NZ^)(mNJFhD!a%1Gq$|0GdF=7aM>ZP)2c0 z@Qlb^`NeeRR_b(@Bsm>Zl)kHBpqqtl^h>W&7J&By??$%qAFnO-5UirDq6|ZdehP_F zqpFq(cMuDY;xGFVh26EdK#q6(vRwGW*^J*>qYLzNe{b1wqZbGXOT^wNIl2pmpbXSc zs+zzDu8YW7TeLeK3E?NHCoQu`41d>}BoU&16i{v%$z#4|V_9{I&K;y3%-9`SDEpIb zXlOJz1MF8OOxW9^pxd!JQhIlZJNC<7DQts{mT7k8>o;>p_vtFutzIXXDKqJQ zWkHyri`eCzLB60|q^eD(>zIdAyfn`rHa?c8la26~)mG_FD2ZHmpJk?PQ3)5>--kD= z<7f9ETBRx|I0!3B^U0FN(6Q^aunVUS7mkoJImf~4N9wL62-|Ofz+X>FKS5n7jXm5v zzRhlpUkYsWyc;LZ&8?X`mk3zQzU~1nqqa@i-io1#U@k%L0zl`98^dxkpR6W6LVmn8{zK0 z?mVKzA6?&jKE`jC=*^S}dVd32VO^{rp!>hjYI*t^YSd`H4zQBa87FJcT)X=Ueb_6< z5z|Z}9+@SUzw0A!_1R_!@~9%;`>i?Nj-dV8|;e;>i!5bEN-LgvLA9` zuiTfrvhY}YD?KY&l@38Ju?&t{@@lX$%L8~Wmz$-p4UMF9_d)SJdmZ$gJ}5@ZpM^7b zINQ#>jmwwj$-Y9F86H+x2c-X`ICyopEIs;46#R%2W{G{BzVpQ#1lppYO>itB&J8-i zj%f@VxgD`S-1(zv?}Kd0j}>6{_+T#Bo86J9_VrA^miKlt1c-jt zrOnqvh=p0BCoI2iQaT1bes1}ze@mwpm;36F9WmywL=oDMS@6ugwQklzzR_CVCFT z_tc8_3bV-R6C$j1%Q^VAw!DU=rpw9eGQXiY1~rq=UF;Lqv|ZkV)cLcGG$)oVp?ZqT z$|h*JU30`;@Gp$y4)E#JQepG1GH8Q+OU%b|k98Z|t+U)55`XW~YXlK4w`SBuTiN~l zvhQya?`oebzo0TDa^j1hgR|wh((mjy^`RQf6LI85J%iX}IfX#}t{Xv|R6equKVA~~ z5$wEbVj{1Ag-lUMZJl9h#v%X6f$c*^?>CIXwC?aV6=m51BD~czb9?>P@UwhN$t8N; zz6E>skuU1P{(G#T$F-fO?9Qf_wlB%DZCf4ty9jOpMUxY4Rt2(HRh2hUWYKAU) zsw+5V=VHX^n3K`%vf5d4V@E_Kvoe1Vq2+_1wgy%J*>9{JGynOmA7UjI?ftz>oX0RX zH%8|Xrj_2lv6>PKvjR`gyI)DK9nPbs+h`~JM}7>(Xi@{*&he@3p1$7$JhQS}l<~cN zak@)&fL4}z`;YZ&)EFi#B#`A`9YPeh>8zSo`r2iPXSr9$aLns4_ZlmpJqw0WS|$Nm zPH^v#71lAKBN(IbMf1XM4?6kgld1F&tWXZDgf81{NiX94-%>#4y4`t77~3wRxLEOm z40Rxv-3i=XmZy2?S}FeT#I>J>9{LpI3?02J1mADo~_|r z8Dfm@T1bLb(0d9;g77zF9C`6Ij~|D7gcfh>`L4?LXkp-OD)TrDlYK`A3RbJLpDA`% zRgG;`N6yl$9vg@c4Oq9!K<(ryEd7Dp8*XF*nJdGaOhiVaw zaPdj5ZtyqX6r)Vq?%6<X)jz@#W`Jng%G}(Pz1Rt}e1EZaed_%T}QIF8m;T;O)b;Mrd`@Yl**Yd=g38rbM`) z6NS)MND%umDIX4rpI*IvvsMNh6TMTsjoo{7yIj+5?yypI3f%)(n_=jT9>NT6SX5XW zp$7wqZE#`#JjFqax}IAitwl|HX25+xxX!ZZRsGV z0*rGyH8Cx(TxUS`D3V?uXN}|9ra$!V7XU)rp+=TKX))8jvos-GFudL+a}XNsjsGqz zV-rU==|s`>?QokkqfB1r3qT%VMn|}_JMtXnzoACy=3T@VWv+x=w%e3j$b+ z8+JxrhxB*91F)t8hL%Ttnl#<`(RTE8ivQqEWoL3oqFs(LB24Y2WxeQA)DKG)@mt21 z*zJQ|q@tPXgEX> zmD6V>>pW8ctWh8;>mdn@u_O6_D10bjV6_Ca+O+bOTN;AA(gLE}=BfyGNU^pb^F*NF zG`c!Yg15M9RUr&*BF(9{GBm2g7|@Tj2D)%>IixTeap(oU*jeZEyRrG3OintGAF6Qf;sez=W!)!WBm9C|{!bnCmjn^B5uG%AmTgo`}tXmSN=*vFWP zxIL)%bZFa4Sai~d2lB_(`l7fO2QVsC#;b+Zk% zSCGJ35p(luZ9nn(wtKA{s%0H~@!;Ff-X(Iv7!0FO>K$;A;viFA#uM?? zthRUi7ngW-7v>r9;66+P7! zWZ}sR15&jjHt)S4NX3;SMUgCi?YGmm-0on1P?cG2L2mfTm@F$)lMid!WUzrP_DEW{FhMvgYQ_^qL5b)r3sFD0g9=1 zK~Vml#gt9^wpcB}kwsv6qmnFny+}~9Dj`sdjkzT%YAk#MXdj5Qd_;EI!i>5N9ky&O6`eWw7?&>1mwhqj=n6TAwY>*&zxHiMN%p zAH4Sdf~2s@v(hHO+Ag)RQSVXU&oT$CKiHY4%%O%oX)4wbOZ;%iIzjt~As3$~~ zjBx$ni|{ubeLXU~$N=%)z1nvG*(SK9kPlY)*|0Cn z-?2}s^rH9VRUe^*V_xpBk(cP_>|nNguW_zd8RBF%P@RxrWUZ#mhB(rEa*Vk(AAUGS z9lqE&>S|II3y|oiB;>9?{mHheMJ2>7$9*MQS|c$gWx4hp zC`en(l_3T2eyj!^T1`JY1zzjU)nXVzOWpdKB7y+j@sVxVr|PcG_6uu^eD1#X_E%}v zV=R1{zT;;+sC{p_8aKF&ZCOX}^lv|qAJ7GgaJOzanvoj^%F6@GrEFq>M#x z<#{WU^V`Dj>_;!U?ReonWf)Ys? zC{HVQi1pi4QTL&>_chei`0=uVs7w$R7FeqS6%uD&fL{{mRpK}&wW5hOl;8r=W8*}o z>ZHg>OJ8Cz;Q1aYJA{3mpo~uY&loliA_z68^hXwzY`Bu}WZDA~PlPFVtq!M_t3)W4 zYaUn$xLlx>vJZ~A>lm@>z0q%8cr72jjI|BOFnp;3gtb!OkKhS>-{9AFI0TquZ>46w ze>v@TyUuAQ40$`AK$vp1z*-~Yd**Bgv)3N;)T36&d~t^xnb^T62964M$g^hQ2}#g% zo}XjXSXi&84GGxC&P7hgoRa{R@rOWOSdIELJD~5>K{jOIi#=OY`YHAVWfZ%gB}7JD$`A^ACRXX+8g9H zp9NGSwMCCj5Z(!#2<;BsZ4eSclJ!5Ly<|^e8hww}0RZ1Ki_-3;ld%Ea34^6G_5NaS z0<5L?k>M72_Af>1MifMe5llLa@bL)KZ9ZuV2K`!&Ah!f0m|iyr9;l-m@H3c!a?7`ucpmP0g-1`WS*?!MCnx72W{4(e5(o?JT8rnd!h+|x z+n8cP`m6`NnCZwCi=lP^eSZdHP`K1hi#$*3E^_g7TJOlg=YWRlpxqrErQ)65GIAdx8gJhs@E9+%6TiF28K+q zjk^tb3zA5Xf`&=fBEdTu%BedXk6x(KM9g6IJ^aKS;-XB1e|I>(}-8H0!NGgvKD07;O^~UIe6i37jeTgjPMG8 zha39r6EmRq5Nu9YU{ir<*3n}&-k=z~ldhkx5Ns6#^#r~L@svWmd1k&;liJ1UZ46fU ze(StvY&JQX@xFT8sd%{_7(ZI@1F$$ur7PTQBjOcW^m%j+{ z5a%aU?4V%0b3t)V7ioQM{Jf^{5?(6#=k4-%!TG?PECV>uFOpK&o|FCGsb^y>^Avoe zM2|zRm<YS`>2`^y*6*ZMYcbN{AEv+A=ho>Op_Iz^{9@TxRS%1X?|q~&{;@b6 z>nkM@*JGqn&7{_Q-kub+Z%(+y%{xLGIFZ@hq)tKVm9}zjtma1^tiX{Wf*P3oo$hEB zwV5O^JqZ9RE?cAbf7M=~dla1UuNW||g+W5jlef1SPj z%@zjW{_C`cz_iv9bLMB+R5V{XLDi-~?EIxbK4P0bJK2D1%t#Q)rL&Uat9o)$B(M zL>-#QuZ%3d+(-2n*p7+*qw|!IJ3_$d~crwr~0QxXHQH4eA{wJ zEc=;Bta4=NfX9_SPIw8md}0{B&=cvqx+qjWS>~~6?}u_P&p|c58!y=@m$aREszf@Y zFTorls9&p$M~KM)DGF3d*X$I#nJUjuONQh|ZG+r35yC2eul0<6I`)~nZg(<4{Be3G z=7y~wJ_$DG?AvJTT>Od`3bIfI;EDf6>femFY9N9z$4Rk*+AK_YDh7!cWM zEC9KoEPW^Q_>6FgpjFxWCVUB>n0grQ0XBmnS*PHZsPmEJXOOES)Cq~c3dIjcB);w* zmGV;W(?8PeemTh9*VmxpE2hF{C^3qovLmgzLqbFzCG~cjq6cXvrzI>|q0?H4&g`-%7em3dORyd;$F7v)Q61ig$7L7t=uC?DcTAY@Ka%}+7nqs%d>0`I zrC!ENpPCDoDEMPHlJ_K)8kpxM>m%_%X~%=WGG_jqz9Cgk@e@5!Jc9`0_9u`eU=1#{ z$2cl4i}m!BSn-3VRgN|=n~&iAHiqXXm8HS2u&Dl79SXHdvW|InoW+w;%bR^Sxx zy&uDlj#Rh$wJDAsm{u#G(jaE9VMmBuf~nEG_TnE42kdLs`;3U7k_Yjj6|l{aGVy=y z7%G7t2ru`@zTLG5=iQHj%z-q#3J}PBX+=P}0pGvpAa9{4tNKNCU7|4vyDTob(_Bk% zcVlt-R*16uj&GeqO`vdrT>8#2=&mooFy=JD1qA?1Dj(Ud|@vyrp4;KKQF{C>6ofzssYPLXj(U2GZ(b5mSUKn_}~D*spSQ=NPKj>0I}1^ zlIoEtJ4CTpHYG{x$W=d%LeHE#usTBfs)t94ydnJA@&DR#$E_*^^VM3_ie{ z{LqZjE{kaKj`TAKfbibwd#cDLqZck*ziC*1_@f>)01y~LQa6g#T64 zSB5C1%RNDlpqo1P2Au2d;oHFri<%Nw^(>Dr%!@Xr(d_EdHNz`Q>CW+utrp^Dr6e6Vk|qWZ{nzArP$ zawZTU(r}wwvMV4~r;7<~>1xpzD9U%7hmfm*l~Mi_FL%aK;9AwUWXhosE=PE7Wchd6Wfco&MTp3An%xasedTBt-&v&UBn~bgIMS;b#y7Ig?tWO1`fwlBKDW zM}aYo?p+&i#$zS@!8i@`&PQ zm||T6EhvZS*>rQd61$xyWkp|lv=Ai$t$~IQ_i%@)_?jS@va0#h6ptxpTRy1tT}S+ENuF^<{Ki`DfP?9f3~+L+Qurl>m^b>h$q!8zP>%d>KYk`Tn16$0KAh>S`XguBD>tfIjuYvxjs5{eS=EJ zq3V{BM7Ny5gzc?&J*aDNLB47laAAiEAK)e0&7J14OU`3Fp*oky(-j>r3jzJL51kxB ze^DTMF#pv>`}6A_s5SZK5g69}d4v7S{AgoxXfCw`ZWZ5J~=EJ12`u~;#=77%-XopM48*%mx!|&>oPiQ9*hm&_C zC)ilJEnhc*E)Mw7fq%_QIiFe}NHkM3oG*~{+avlk*s*IB=lMAp>wR=Txqq03yfR0G z)b*{nrveK`#ClPphHH)oDWlKbD8D^LqCXYD&4*KlH+>^uhD=>KEqMSGbasAAxhY=Byy)Ni;z)L2XC zo8xLqlY-^`ZMTK2w>LoAe?~N?ss%m=Mh<{u-Z^6v5yptr2pgp=E;E8){v*CFjF)R_ zU@D*QUTD$!Umypg&A?C%q4@PceVFg{_e(^x=qU^L+7!<-m~Dq&+3s4&7ta0z#9@Nc zcygWH%_Nt?H~*cnL_jUK&_TX~E;O<=F<|@|ESoEczsn zYj+vlRxbo9#zv%xZEeTGNLCYU?6zqoXx=XA;}C`(Z(3V$!6BABb_a<5+{bWw<2vgy z?_K4VC++MJAV%Q}OxYkWR_Hgxb+|6S3?Y!b9<2IwbqwI_<@~}^nYdEf{?&)e*5oCm ztJg7ilDb$1)S!aVF?eY5-_9WWiV%Jj(JR|#Dacr8_1-$!)-98TYU(;7a7n`@=6r&( zzo!>i(n-WujuIQ)ou<8PZ$vl zvCx}OPr~0y#|psgU6SR_xw7tnlDiXmSOc(zK2T=1((wq#*373qlNSH=%mz?AXqc$p zQ6eHdfsY6lGSTq{spy8;P>8QClEarP6g!W_TTX!I0f(@LJO4$UcA_;Fy`N`#vE5}kL0eOWD<5$!x|_2HETjMTMXei5OCxS=v1Lso-}$HH zQf63&DAceOUkCL|2nsUZy|Ej>C4?BGeU?+|Xkdppr|&K;A_@$$cQnc{fF)5drrOh* zIU#uF-1$Yzzt0jso9o3&IAQMjaY^fibCC5pCXVyot;(lc~1 z%8x5PcmTZylPrC@JpU+Y(jnZVwhkR&Z3g$smR-ea^uE2+A^7r!K%Dr%Y^@!-%GB^~ z0haIfhu0Mw-cEEwF7@ji0jIlBI=z4GAF3Fkl3uxjE98&xGssY0p0=sLLe|t<`ts_ye2%gxP^N6uv(%?Fc*s;58Ef0KLX{Kgjp=y zZnyjU##ok$I?MoI_5Ge~oeiQiprnT?*8#Jbr?7Wf34mDuT(Aw^WSaAhw(B+SFlnVU zh$B#BVUE~rj)uUnloC265x|S&I$RqFaBk`km)5#D1cRn6XzE%xi@&I%d$kpKP!mOJ z*cIX(0Kc*1dY#r%HeSD5Bhp){ z`3u(ihyPS9Jx%%JTNEyQ}RX2NuYB@?Ms3LbIK3)$B`c+x}s1b_jkEGEP-`&SD zwoI`Q1#(@nR}A*7g~tI`d}UIh#nx|1e>#Fa%(1Apl=ZRc>hx7w+f6?J`lzvO`y&xi zsjMcifl?V3>9qW9I>z@QYj&heCmjW4Pr;XqXpfpf$JfN0_CAUU>>$VmE_!aHVEQAfCcNwipAgaA-OD|EFGLj6kuc;L> zw=qIE@1df0Er94qb2aplMH&ZE>B;>iR6DDQ(Q8dl}`) zBs9briI4cVFEYXMUpI;Q+}tYQKMR9>R~sXgof_tzO6kI{ko)h+MUOMnfJ+U1yfRuA1OdRfxQq2TcUN#QWmbzbr>%POgv5 z^!A}WBh$T-Qyv@8K^(-~Eke*$s=zuj+|u)TE_aQYM5%fg`fE;}*qWJvKf#b{AIa!Q zQZ?*bAt^SKYH@4Uwb+5cLgeuT!*B`w93k@wjP*-VH`qj2Fs>Q!u=ZV$^xv*We*gs1 zBy^)0uHci6{>V;oP$?-Kt=e+0oT${X%QW+LqJzFxbaeJQdO;U=MPhLEuA9?q(&(2fod*YW0f}+zL4PW!_ z*D{{-HUfpFM(Y8=^oa2@gr%)@mH&N9?gKj8Za*FF%mk-dBO(n$xSS~;!Vj}8|Mn7I+^yE+#N#_5(l@;zOhOjcC(~8f z8snX01K?MBdjRd2m50*?2JtPBmybYLK&1_<+tCa(^FV;~RR4ES>ph4ZE2#Tr?_)Sy zIB8`E4=%X<&$Q#<3^VA`JsmDwnAn!P4B*mz(oz~i=wdzsgAuNJ=aV=x% z5sR`FPT^^Pf^49$ypWcP(F>+MZrLmm?IzBw0SJx_q2pr0gHcsSU-PP@OoXkMR`~lPvLXVc=QK_v`j$dU9rdKcf!-&-^A_)zu#rZu z1uh3%`XId9IspIyl*-FP=RSe-xs!s-=X@*KODh|(-Hbw-N(aj`cRg>7B`v~VbRuor z%==n$`z9W_;fDrB2JtV?lmQZ0M)g%#VF@W~uo z!0PcU>dg+^Q^Iga`^StzUEsaMsE3aGuN05arYk&g5zHrux5)x=#ZDmy*kT>U|oFS#6-n3zP+||QFHGA$lc4;+{5DxvzgI8GarEG5LL>*xG^Pu&x zqf($vQ8}2>vy~&{nrgjD*QK_G4a8s;{-QMM#opbH2~fEy2UjwgBOG7FL{v@7iU~U> zAWRSr*N_1xn<{cs%+rjr@Q_604;Nn3#ru4m(xv%$5oF&h_sgEc}5B4W*J)mR?s?gjwg)Sg zQ#Emx!yE%vq&DCj)v9;9+&X5pFE-RlEtb5|MUh49JfjZluYd|FdN1YX;>EUt1$*5= zN9lxgbrmAa-_9f)emb6c2rM{j9L%lEK%i82qF#G?A>O{q1=O;vR(jJMVyVWr%!7db zD3bhk52yfLdU@yyrE4GZG&qMc^DdmS^26<;lQX5@;NJnpR_N<_PgVeqB!6Z140=rA zPydHTV45BZ-zDY)R2hJU?nphX5taF0$Q>EI0Fk9@jY=4Hio1E}x$~5uw=JR%ewr#B zO*etXxlhJTJZ>&R0a`CV?0h@vuPs-v$-6c% zjmXD@htK{9{e3_%TCr4FVJDQZ*+-qRpxLej=tGsE@V;A|Ru%xdR%`MATX4GU>+liH_3E6FiPkn}c)x%GrN);!M z^Sl(dE4#*V>QJIfn6vPs&(B|E{PES!l5M!RqH(Ck155Kkh+8h1%8kpqDeGHSx7zhH z=tBIJK0K|na)a7cBomN!E!~TancIY2yUdZYCmFQiCzZoV?mEHJhQ}PLoHXHP&qK_m z$-6HL_eTX*S}S?RY=c&JqT~eCEnA7DrMPfZiVVL~PziNK93hbnqWM35M4tjXGhvvI zZwM>=E@1D@Xu!|V8NAh=*(`Y5yAM(gGN%tEtxU{kaOry8va!QJ;(Qb}`{=a?n!76n z?g#(DHY$WE?t#s~*wQRsxBf&4$eO%Z-3aojrRz$n!U)%wxuKrk

%|g{I1{0fJV| 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

j#=T1I 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 diff --git a/doc/reference-architectures/ran/openness_xran_images/xran_img25.png b/doc/reference-architectures/ran/openness_xran_images/xran_img25.png deleted file mode 100644 index 702d2a29700b4de25ec9aa587c8a4ee7d5d9a327..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61089 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 t7*idUlRPEBTa?z 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%0D8enGX2 zs~^4FZ!+R?GS|Eu6JKT*41GDpv{8wmZ?)s!i7HYUb z7vT43C`I_ZYyx=&U(H}4^u*E**)Q4i)NLcinpE+5znkgwNc?`kWZ!;en_~b$)8GDi zQXl_kY*7yOq?VJc^buq-=eB_zif9&ZD{&)p9N1smPn~UR`NV!6f-Py$(q!`I>@GTW zT0qkk@2!{n!@GXZ({o)HQ@M#L1M`#dtJjon(TA0bq8)$725k6`AN4LD4q|e_N{_}3SL ztjFV*ljwW^=Wx$RV=?8heQU*>#Wxs|NW;tP7?`*_4DWD?hZ{q(Hx*BjMI05Jy~)zKGRWHs>J_$yeQ}5!ebjsyk(sh0{d9TNDo6Aca=Ge z`{1bPc;B#UAuRZ$lnC~h+!_%lFY7=~&sM+sOR?m6H{YAe!;|(wh&yIQBaH(P2mTOZ z&4}ig5=Oq|Ei4ermiHdhlmrSwB&3Le#imJeYsvo`_8apucz-Bn1&!A`MrhgXO^`wl zD()uzU&3zq@gH(;NP}N_e~9(Jp%;*CdA!Wc#7PN%j(;pbM*zdezLPn$lEOy5DtmeR zA$-|4^p|``r(K8*6!#_lyc2eK^n~l;{*JD%FD!0x(34lN8)j*LfckCT#3W0nzyDKC z0~_1Np17oxK;jw}zXAIng(bo>dRw-2M}rd}W9R$e$rZ?kOM1y#%kV~R!QqZogW!Z` z;`HCE?{dG2g^6022h6~-!%YVCudth{IX5n2Yv01MfzJ2cSzY|UAjKboJQX3KWbgk+ z+z@IMU|^Awdic@c1;L7XM4h;=`|_7%!u}u8CP;5G-(mlYQt&?~o%&MHLl)NvI-_*8 z5p$G?Tn1qOyS47)e;UO>#*fi?-z>S@&;8MW#rN-C$6Nmo0_nd{bbjugo!wIzu$$^i z2B-ITujfJJ(OKlTt9&}yG=$0RA!T=LIF|cxzCo4 z><6~=LY1ekF?iUWmq-z!BbcRqhzT&`lQd%wPK%(JcK%4LKCv9(*gs6Rk|;v3a{cam zR9yg!TY+OSNy3~HIuj>N{kQd*1E4+oT5VQOlAOeXPn7SIKq<>~E__&MPqbo%-A`3Z zL+P~YjYo(5!jFi)iD~OklQL+sw52H#h0vDkUb1a_tZ`Xq(|m)_o;R)4R~DT|O;IWn zoy_A7)_*lnB@9oQ!^kbPboDOE{e>Q(UpAVyVhkxf3ld@R$SCu1@6-a6^weF+-ns9w zAu^}GZGWHjz4(=$#D=VY%Ov~nM||}FL5YrH@bUI*>x!>WLJ;oB3(ik@EuSZiSReiR zf14P#3oLRc><-PQUOxf1#;aQu&@q%V+!+gBp?pO8?o9wlP5F_Qgbf5z#KOpech^xA z`FC6)CX{mLuEE2wwR_uWNjt1f(pwM|+#aczc(W9zz;_;%0Z%^2EtN`luDSGneq zO6=Z{sSM&gdOrIl$wpIemh|^?3q_f2kE6SMzuI%I0kDR43jP3VIoI`IO_@Q^(^HUt z+J@0N28@pcyt%otUVq3AXE-Ush%-EAiQmGlU)$4Oym=r3b`ujcSFrC)bx&FV7}k3H zj*KZqs}OjhO@=~4F7v}v@9j==w83N3(+{@b147Mvu+8NEGLd?gphe!zEW_C@!Bm`j zErv)w=K#y?Uu+n#saPU+2y(gLEU6mHpX6TX2x=@O0u5q*q;0q%hv!H5FY1p_fKTWI zvI~b=@D&s=4ol70m9)%v8O(}*wfZpQfyhHj`h~i<`}p@469-=5EhsRL)tC*D?ps0v zrV05AD~XU}6|oS0G`4ohMk9U=^3_M2fqoW7xHpC(%eqq+NS;h$IM4UmH$g!JN+j8D z%Fj5G1qqH_w{!@f;UZ}s!*2@KDy4&3a%q5Tnz6skSHAwWQ1=`GK{4>G1_g z?>kZu)kkD=xk8moElCC#PSIV2Uqd8Oasx0mz&ejSOCuSU9I2vNTJfby1Q!-lZ8cFA zq(gf=qL1K6IEH}F^y0vT@V_{Cos2LuKW@`mwO~TJ^-EXoZ)fI*B6c7*iZsbC=zoVB zX8%GlM=U8)z#7cu`$CjTf%pl%xxY$ul#ChO`+v>FJ`u)glVPHwbox`F2P6cD`m+aA zi{!$D%JgyQV1pu=JROrNz%zeVa?b52%Uf{u+>IgwLE&(WF`F|+EdvkkvPyyuc(nw7 z122t)Kdhm^`#8{j_DcP+)$0mxPGRhSC!Xg|BL7Z$*fN0NyiiWz7?^Rg^rM3SY8CZ3>v_{t_T3|6z7l(^Qdg1iw zZ2Hd8l=k$o2Sc5W=aR9gxVgBvoScTsX#AGVhgEr*!BM|!AZO{_`hxLq#&1Hn7o?~) zqrZ~w?m&z|1cLOgSSuvOx#w;6P z0npe;$n$KQFq~?#@r)2wGwbpEu{eZlsGSeayg}1TC}zYe$TxjWKg(lY`X|V(tR!}s zndZ4}t$k=d^~^6@#~>cNb5=n)j+D*(3yqAL*>#3$T`mc8nvo5k)$BZ@z-`>+9j_vw zS&qaa&%&g|*F>4oq+;{latu=Bt%y+#B7;!2%KeG{8ws7ha zyUr4(bDpqV=Lrgv&TpXAO`T4G`)!&RW&B% zeaH5_0(A{6iEHZ1_s^J&K?>ZvHC&ZO9y=8esIAN8bvk=NW}$V!!E#f@$P)%Jm`+@U zx|z`Ga%(=o=+sYTSRNJG!zYv!$xvr5V*YNkfFfW_{NfihFm60qtQ$*)O<{!vzlHt} z4?A2YLfYsMHs73a8>{Kaw)qS(mfc9c4sRKQGr|h`vAbzugu>d0-dpRdCVeI|QhTBt z?pZlqU9kE7bwg}HIe&Ok4%x}gY-(TSpU95XmGtBC3hRuu$<6H>%93j9OL$gT!^gd= zbEP32f#;5bC4 zvWx0g{Rj#eAi7_;3x8!MhhhlDnLThP5C-3XM0-BXG z)b*=;b()q{_PlEx0w(a6cW?66yOF#6lw6W^^S0CeJ}>UK@rE1nxHBS%T-6v&tshk# zk`Ny(d*{|XPt5-`FfMQ?MBCb)W^s@r-?Fec$CmrgX+*fT6cJu<=)CwP71w>bnPX8+ zbD6VAx3m91Re`vg${1|Jp$v(X))F;_ylJ{d-yM;@Eb}X}E-cN=usJ!b`rPa;Hw)kL zd|Uqj=$8}$N9FikJrW+SvwuVb9E5h;D~H<}+O>_}IM7W9C21`ExFBTyEUcrj{CjQU zD8&oOvhdGdL?o}ghm18OKEyNxmI_B-`gO6JY>A4*feRBuS$p^Scx?Zwud`1Tt-Gqk zKEqN;dJplzyzHAqREm&?_qx2{7dnewtTYY}wFv}BC|UuJ-@{&5EL1hw;bP5d`Uoz; z68|QV)aj}Vc79&j+q;RGJM}W^lOlbnP3^bRf&JQ>iYBVMx!=_D=F|0y$r$JfIqgrs z4V>NOcR)or5u*9^)Nb?UiY=W7ANW1ohJ9#w&_OZ-rLwOR|E;LhVypEMA z5saZhs&18V?ik{i zI=1b~3!+Em(#Z`SwUyulXZ}?Z`MG}73B{>FS zUdo=hZK9gSl#kDNQnrR%+O#*$Wa7UTCTSFM*?QGGP)fg2m_XUYG)&pPjUG`kLDQ$*9IjU2Pgn9kszb_}dbi~BRR zkj>WQYLD76lF##0=On42YOY8^Lp8$kjj_zw^7k&Qb9o3shT;#4rRq|4A9pcG8@2|f zNxfwAJduUmOiH3si{TAlRXO8vaby=)LZX<`=8R{^LFR2fYmYo+EWk&U@ zCSJ>dvW&OIWZs?UbAOmK!&%_~<*lvxMCQTwUa5~1Wo_3JVFAOfrP)-#%rkX~qD7k$ ze%|TyVj3FCLasd-EfH=Y=Y1y!QZK_d@*)ck&;3TkHFisbq>VX-Sz8Z1$KZDxLBztm z!aC4Gy3*OWaVth=gczil>}5hrf~=G(31!lPhtIYP^PY*xAu%YlG>M=wYMv%aH7O3S z)G-o~)u{Ur)(aQ!@)pFHgrN0m$UN*`LfZq7093 z)c2$=;&~m~ELzhNLKUh6f=;_yg#04?PR(fp)MqjU)>o~DJ`?js6~>?JE@bp{IQ#(D zD$j5i92g3ANg)=1`A@c5)MZE!1l5m9YMJ*tf6^&)3rCL?&1|DiRN8g>r`!Hq zAt`QP#AzyDxs+6WU@?yv?y8Rocvkl{dqD|e+aT9qm^NFu51UYYF7BXoxZ;6rEW9ta zHauR}VF#0Dn%K46{*8{hh8D7&1;dIn;Sh(@+1ZqhcJ1=22I3YSxbam~C(m;0k%xMp zODr{WN^Y)HM{Xx97#Qe+6_^nX`K9s0l|i`T>qA>AcDHvZ-Iq;~;Y2cWwu^0BW5val z4n1_`eMEW`$AokWsAOlbXsQhBd~5vtCyAS&hpvAQf_cmXoob?yuKH{58VE z5`fP3VF~rGROQBg97UMNg!q)AI)3M%e`EXCGfg;1oq8~#G2Y}6gb}99TG9wemeZXN zMV*&t27<~M@?p^dysnd+p6>37y$B;Lf)Bv%28y#;YEP2j=JoVb9Z_fF1r2^_q1CGc zaMAY`PAUNb8{oH6fjb9t*Q>m{Rh?VA@NgI%J?Gb=%j?kMzTh7{k*OqbL(A?QT}Guz zF%g9wsel>~0ON`ZvUf+(;3CfBxyS{Mvh3x6gsKkA>>2#>)ivFWK10Q0wmaM7J}yTh zIm@LB+?qA?xRy0Gl{K3SAH)&e5D-2j{9aQEX=hMIv8}3NLcvH)mAW<_s_BVS*<4V= zbM*)S=GFFY|DEVtNJah*i=I#IeIc>X_#FUnb?PL@_<2bK5c@5?$}bO9v9&HRbkVn# zHCSk(8`JV!SHIx6u4d*GDHx=w>PgbrRMJhmoVmycLlG8tk1_2l^2H_ybmJTs^&Qgs z>GlGPPaa=~I)uaNewVXEdb!^04C*R_kF`igpLPGoae9N5MnTDREL?K)5@a5Q@(19^ z3i5=lizTg0Cc_9FU@BqV@%U7_4oslRc#YqgFrRSn_H*c*`rY-4528@FqjmM38kZVn zkCt%>t-mq|LYv4X^^d=)f_kdoAcwG`+WL&HihU2lgXkHt_?y z6(RX=MXL=Icq@{^_VJ3Sgbh3$@FgK5+N7=j@50-}o*<-}!oJS6_9fB>c}>?#Y1PAS z7juD;;^=+q#+0nwn$RCnHt#67srfgn2^vGn0#4S_FLz=m#p~&W$G_>N5S(JRm1^D5 zn7+M~+IOpScCHI!g#S=naqK9JZq5kjtn08iLCP;meJb%mzRE3}h)&6I6VByAZQ~dP zYv`+~frf;w{-#+~$>djmt~Q=*b4S zp{rn3_a6H@2eE?Ts%S>beBqC3K4NdO;4WrWTlp_8YQI=Fh)l)Rm{^9B<{^^kMcfDf zxM9-eMg+N3aj9te-)Az-k&3FWt0EH+Vk3h5EEQ&YN6CEo@sY2tq-l?I zczLQ<0WXePI%3Olbl#wbiFUh~|XS0mU^KIwHY{hFk)073>vmYz8wi}>~zZXDNS~=G%5YJ|Myw@sTQ?1B( zJc|}ks)pCs*R_9-MmkV@CRY4B)O|Jglblr}GauQi;98oqjwEL0<}tCm*K8xZk}75k zTaBYRWGOVd2>4YPz9qlwA}q;$Q(;cjM-)?LNCOpl`Lz3mr?M6pDO%*lekYF>qJ-(} zn(!q8m#Ny=lC9rtu^0Kl^yc>)19iYF;s3ZB5Vz8X+U$;`;ve_`n``V zq}xUS-ClNMMN=V(8=DC7pSG;XcThL5`KzRDL+U;eN2sEdo`|xth=RD$6tNSByKT@l$D7bM7)Uw%N7BH(sMyY$ymx{&>YM0D zK9-h+B>vGS-rH^wUE3Ijz-G3Eh!KCQ{=dg>+KHTTKBG|nsJ#g~;dE|<+yL~np zS__dX*z&yfrYIVcy^-eUnamd0W{YL_fsWn)qKWxr}7uGAYl2pHopg ztBh5kx25qzEQGqHbN|hYf+RQ%8l^0HtbNLFwjgpRqzUfhBYA&e`nN`DMuJfUdr@xr zymEQ;5sPzBe6g~Iy8e(*L^?Ygt=_64HEP`Jq^vhGF1?wXOUMJv_^I+wYj;=V0V0@# z-y+h{Iac5KPFGMMRKKs6qOCE=jbR`Z%|hcu21ung32G*3+deUdZfTeQ_M}Q#;;t7B zq?Uat_sZ*ja+^~|qsni+mE(zVBM4v7?^CPC8yhm#)%SNOq_%$83taI2N4{*s8dN|m*r=^$*U3-GBW4=Aie|`sHZTN2I0p#Sy5bFF;PL+;!ciEroWOP zshgIk$Icf$0-Hrsk#T3)H&V9p4+ci`eGA-DQA0pSL0j?&YfYo*J>4c4h4cVPO?1xn8$$O&3RNerK>!*+9%Sw*~haeyL12 zQo-YsvSrluN?U3l(xu-WD$xwL&DYz>!zb?89^iMtbE8EyMntaTlYnH9q&xVgg}N&uGRwpiH3{l z9uAmDWR@L!=8g=uvg@k&U8e0R{&}ZknMbg|H&i8XX)CM-$3rysc=tB0hK?s0rcUY% z4$D<@$9J@r{Xo-gG&H>rBEeUapJG<0VPQh>Ep3ym z*artVTv-p4W!)FpVpLc{#FWE|LI zKX#)!)oSJJEX#NkYkd;ROg^CJraAax`5yhJv3vdoW^KHxqw07K6UELBzeSZrR(IR1 zM0g^`K35?yPl6qT{^9#Fc!xlDeRDEw1@@GNuKw5)pLSQakeckz}< zr?W#Yv#S7?+{+CIB0>d=1sZ%wI*$p>T0vU|pjNwP0_movscby9q)lvXH;U_&z*S7qptL|Li+S5YG?Ti2KVew>Iv%O~k&6@t;$^4e$IdruM{B3+?US3E$_ zKd6v&cAMREjL?0SpN2|?yEjNnh`F%2f9Dg;)Z+{7WwG z(s$2vlFFY(OUBDPD7OUVn|L1{?Ap_df~vm4vPQ@%!fAZx1OU7zL=?fscXfxS8}OM! zkqAhHlOVzr-FdxqU%+Za7i`WZUOiUipW#|z_fn*qp5D-bhohlPthML?$iCZYY|_1 zns#Re^dfFwx$mUAadu#|C=SBvu!+y)*>Jsw!QWl>yC2y5E{$Bw4Se34s_W?K|IW)P zd??s^`BqT&hpRgco}<2ddt3Ba4t!76P)~i)klKKXRx|KIp_m9JS?bFdzcU9#F;s6&3qR(=DN~$jca4h7c$4k4HUWA zD=p8L$!L4>dqK+C z(YlBPO16HqC%2p25V=Rx66h1)6A>`aUUIsp$-XoxG>LFNY1Z`ZDGZsaOnAx*COSN3 zz51UT`+k@+qR{~M_b*kIOs+|kA;D(mUK=cDl*)cwen_K;7hXr7tUAdL_XgVt`VcAu z4qhL-xBLE`x0mqK7(YEN5NUXw=>cQ56WLsRGh~HzM1t0|(c6vlFXUDfPOZ)CDA(i4d2f>`(*^nemm4xrrYlUkYr_ofz7aeuN$&Zi7rJ3EXq_28*3FXFg6M@OIw>!=Ja%&qll>5FRlr)Ii>%kkHsnO*I7&v?VGlJ~S;aFJW(Icyv*|2uh)2AX6qU zhnVBcv?pLnI6D5G5RO+~WQPVU?wZ06PU@KZxCu-3waqh&YM8q}p|}Miv@tKi!0t8@ zgAMguN4t>dG*(IFaXhcb<2gL5pmfbXWJF5QSzJS1M_-}Jgra_*p4wB^_cLmC%c#oG zwx%XvXlH3KB)hS+G$Wu5u5)FDy0rPQG~Ag zeR`O5r!S)u_IUm--x${#3QWJ_5%Xk=f)qxJ@S+SbAKumK>3fhop~*Q|`&fl$)=;#z2a|^5 ziRHQWJ{HZap^S-j-CrjeB24HA(^2k;yAj~IV+m|dOw(0ym{rP6}PFH2#>uVHGm`-1(G7)4?o4wiX4 z@wK1f%1nP7FHQ`=PZcPnAPb+mxs0zBVU>Qc>>noCF zqEbA@euw>}oVP6UiF9O3jz_NA2I3xWQ-{Fon~Ae&CU(jE_&N}_O5V52xOw&85r1X| zAFcY;&t*C87Uxc)`447fLI-=tyt~8v)m{>Wnj(YT*j@K`X&kd-UUM7zCDj-1OI!QO zI^LX>;c~sp2SNgEj_uhYcjCiL@QOJbJ!5W_pa2U)e#hu|cLAF8wDxQSo8oM9ly-cR z$z`-KXn$I!u7ZB+(ax*)GfotDW-~-ukM|?^@@dH6r?>3*RYQ#68>Y8KNl4vMePYen zI&fI*sB#i;a?!Nlm{8QVxBv_7Y>lY;9n@UB0Nt{%wn&5KU7m}8SUNw0JGrg1PtVL* z{Bk(ADx;v)iipvJ-c!T|+{;U2Lyk{5G_znn;4*v}2aABwt^m9<^7_*Ws$R!#k6U?J zQ>MF~viip}PICdX`Q$8up&QZ6KmS_X2gMm8uQ*bPI_@rSL)%hzEl2>EuUE&_bW0l5 z@P^;f>HeM1`JdfP+7^>`=88WmSk**taP$xT8d}4J&VuZw6zWZ(W~=+p3=NJm?5Ewh zDbm95XiXhOmsiRU(i;2s4Jn|A3W`Q`34vQ}PWSqd)z&MHjZS-5Y|fq1fnu_g#09+! zm*+u?zHEPuTn{Fwlk zHJ7KM7?=+Odt%4(EQZ6+^`p2Tz0}KPX8x9dLYTo&t}94 z3qot_-*WJPXd9MM!kqbeOAU~~khJ4K-WZe&vRENa1cbjgg1%XZ*5GEWcFHc479Tk&;Dq1s<2uzunF#@T|-0nm~H2dZgeL z56SvUCeMOIdyEeQMPvuQxct1;4YChB%230^=>FX9e~GyS)>s`ADC< zBL55vd2$AJSTNF{>O>}0kFki(3 z9FiQ?upJ^ARWd+0t*o)T=@Gs1qQ<2!tv~qM-gdv_9b~}mS`CPe%e~VqoJDyD*?scL zdu35(5BD9PS<7R=gN1PW2>PI5tYyqs_nQFvxDgB!kMvnT9LjW|#Y+Lvp@0kF^^3oE zUj%t?CBj->XJjsn1+-`KG4We|;C=VWy;ms#v%fsz{SZDo3dJqYw1O2yo_kO!i@0-{ z`^f=;YZrZQ55Wl=@rb|8?n!H=jA|0;=z1HL;^%O@m`0p%UwD@Bw~M@IfmBpKc)ix- zzLN*4mNy$JA|WtM(Aydd4d2H8&mQa5qsiagk9A~r55G`+?S!-ipZ5s4YxH;|BtBDF zG@ZIiQrt+M#TM1r3y>VVYBFBF!z4k1yCwji@KVsElkG|h4m|t}yy>QdX@wgaVap93 z*){yTjSHYlF~u2f|94h3r{$JE&+B?6hh<~o#&wuZzn5apmjk;|)3D#+#eOSZW|`C1 zSUFxkanEr3AuJ3nn2y_Ee{F0Ln1Bb|sNw-Q)=#khZ4_Xfuna$UO^-9%7oDB{g8fgJ z^y@adv=zKqF_ZBQoPi%h|LBh)O6A_dxulVjnw*l9l#;Bu%)P5k^!6+UR6&qm#HK3R zlh1xPD`0*zrxj$nQ!gqqyUXrB3;V!obe`Eg=GcShE_kSG=Xo;Y$eU-sLVK7wJAW=v zbLxQ~T?aoU{AZ%HD1Ee#cBE411P*`lU+O8iwtG4axL?cV7QBB?IJ_46aep?7v<`7% zKXzo`BiDWU?U}pWd4my;Dg>IxCbL%kX|6LXCC~EP-1tiIWo!*+CBc_N(ww@Xh=SAF zzpB=Zae^eBcdv({QDltCzCgQotut2#F;m#2N4@z$ms15fRA;iUFL%ASwsb$0$-LQ( zM;2~nw2yCP4vhJ`E?&z3JlF?^qY?F2roBZBSzke%{Q*U+gd!I>7Qh^0FsFZMxL)$# z%Yw5hisa%$1u)-<(n?m?r|WtRV0)H|pbJ)dkxSP7V>BtMtyS0cK|M;IYe8DpJk8kJ*FJh;psj5p}tJ9>&kWl&m zS{{jjKLq^v7RRi{Ywfd}a&|W?Ll@9(9Ql8T@PA!X*s&%4FULR0HLS+8DA`j4Tq_1m z0n%)6>zb3I7R6d0k)DbYe&(=r_=5iUz;_r#g7A{-bUr)neNosQ&QfD@dVSM@Gz6}d zghL;xl()8P9303j;zu=j7i7vOhX|S~~l{O}-vE&n%Fw z_-O67Ng>vLI$*w2a5>I=70+Z^6!!c*(@CH4I$x8v{|hB;l+&^qcV3TmreB5dmY#DVjK?DfG$EA5QBafD;|2E24cl`*inmJbc{(7?NUw|`LGef0ywzG)2Hc(_f$7D z7OT?McR$3!>UVekFkHo7sl*gG^ft??%0c5pCs?=rpca+93%DkxOE9nThyN_Dd!Hgd ze)zCeV}AJbijx&pNE{u(5HB}=6 zlE^Z3;r?T0ux?SHr@Sow05lxB+y*Able8oVQ)`NtiILpLx~18D?b5seP)Bdc(h$=F+juyu(0`KHJ@9` z+$5U8e|T&7U!USfpLD*&(jsW%`gKr(4V^qcp&cs)9M1gI6-`>iY&=aQNGW48Rd#qz zYV%w+u!akNF#3&m=v(mF2H=Jto*Fh;E5*Y;1@k(Wjfnhr1Bn?|Z7aUX&oNNb+=d?e z{C!D^d!KMHP(u<{Zhq^vB$myT2ct7E|9Z*pSs1&qSv`z#alj!efaNp{%WB&r>&oKY z7p{$tWyAVxAcS)kwdHJ6l<^IYnnt$9JBte|I51nh?u znEyDi&w!gS(X-N*#z9HxAELvr0|jX-m(C|ck(a=;<_$(WGLh7TcK#Fkh#RN+2IuPt zhGV`Ct4wG5@EN6?-1KzK`B@H2(n)BU&zkzz=3bGIu%90W$3r-?9%##AJo#mh>`(a8nSGHe<*UFG}DeaJI9_E%<{y z>v|nAMQ7D7!VodHs;BzG#LdsZz|Y-N*^Z%@uf%to4F~(A6<8K!*cwB(FPFNms?F@{qJ>9T3 z<7A3TjtaA*=dZ}?>~1Q9Yyaw1FJm?S0oo3*0aDRbcy{zP-d?txE@Onic@+~fAhB~G z|IV~TqkPb{Qnlc|<1eZxO1W>fMC&QX{(0Ipn6uO#5!gutQTe*~-Ie`3VnZW2HBnbh zL*GynQ9mQ`xhlW9spQ@4$I-b>86(}uB=A+kmEv}Qo%z_Rnm#~-7;rUy7-{&UBgvPn z2;LV~^kh$0nHNxIG$N>fhdnq`C9+&odC@~bUX9(3d&r$v!~k9I42vnEZz+DhMfpGW zDzN*B1E|7Bzr%dC-aNU^0xS#?9Wn#(l#YkRW$dJ@EPb@q?iS!{a|n#j;(?MavSdYnlKq+E4d&1zL6B@0njy%Qo_?)z?hiZEa))qf2 z4_~)siA>_k;2t*+`C4^e%TV1-*j*b7y$DLzAADjdI?K)`K4TgjwclW(Z1cbd)dX{4 z(t%o;|1=jT1*ta1(H`-7lcc!M_|An8I(!X}s)%g$`&C`l-I(@=RYS#k<5oX)GnG@_ zxAR|hU)WaO+4Xk(cXvR#9$4e+QG;i7Kt$u8xVW?^s4!{@ymH8*a_VX00FTvkEYIUi zxh{+ld`=b%J*AK-xS-yxlqjRG#(oY5hszDk(voKD*y)_qv1L&+ADq0?dc?reHEmh2 zOo>$(nx$m_knSau&?hRo<8+LLW9OHnCQ=xeXm7`*l(3N5`FlBI6(XZzq9U_2rJFmH zEW-4o2wiq3*Dlxo)2o)`pUtVYG zSKtk1%c#yZrV0CTVk+?$xtin9^FK0nHDj%QCiDO5GF0-ltg!oet-HXKnm_O#vh}>2 zZ{(;wq#oeP ze^0{bm!UgWFm&8-$($xR+c@i z_w^e7_1on3>4d3IOtIZ;vVN$}USDQ%W{;DU#h>iJ)m=(e`6YT@m)@=f=DF~j<@tq% z@fAz`3M~soJS53>>6CA4ug$G9=8MME>0?->z4SDf+yeH$?G$cjA*WplH|1|Y0PgZl(5`3>3|RNhl`vt z8wk-<%g31~yQCfjf5?+<^^V**6@N-GS9qVEX3Q8|8m6^7oTS_N}BfFok^2r-U#A*)so+Sq=AXPJ;Z!t0nk&pon$z#u) zs}^BB+FG^lqNmA;r`Qla;+wX}ccA7XOHIgJxwfSKl}hJt_x7^OHp}-l7`P1=Jrq zfS8J6(Wa8cZpQJZwR%ijp7jW=$V93}Gy9Qr=?W99PpFOCcxDrRW8vCuG%U&+%EW1k zyOw}cV=8H;sGah!sb$?rZiPMwGFxHb?{>w`U43;j`&X2{hPm^5f4tfATuV?^AEx4> z@j+Hv*YnWPSvx8#pnvGoCcJx9y;9$wBVJH=)we#hub1%u9b|}rU#^tA_!@+>GK(l8 zwo-LnuH`)ei`giqPo9+K7hN}1_{$mz4!)7&fs+;mk(uG3Y>6XfpfMXPN_Nnur0@x$ zll=brAf%60eHcERijy~BJX+!rTEi8J{R7-dMjITFX>AiM@o%5lOMPAY#%SE*i;m58 zF(K7s0Qa5juKl3{aDbQ#viJS|0{A2iRzgg-SBSz26JjG`>58GNrj?J3MtJ?2uDmKy z^u1ePi!n$tR^PLtI!unr9lJ!l%ln3p=lks<2>HZ<0Lg(ujcCb_{-`=q(3+n5n_1gG zeK(qr83Na1cz~+m{eEyHPoU=T?5?Yvf`k>xYjpxW{JCr1ed9jW&ra`GW*&i43IFN( za6U@|U)K)Ms6Ggqj5S6#IYvz_7;A6WG5P=c`pT%bnzmhBixe;J?iPv{cXusbytoE; zcP&~d4yCwTkwTH8MT5H&Aoxk2_v!b3XRWi&TKSXg*?T6L$vrcd+{3}1f+uCC0wUIi z9?*S}l+UQJGIe2Xsc)lefB!J!IV~)9OoB(K2q=HvxlIzYgHkK$AFul;#OTuaUlDI3LTLU16NS#t4vZpX zixj}TA?9xL)kFGX+hoOB-@9cD|ruOFk9h0>u@@_x$=bH}~t;FAd#fymzPyZ=705r+XPI3eI|pX6eKX?U)9}V!tbl z9>q18cJ7RPPD;zU$$tlg7pbgFTX@J+p3~J;*It;_%2?mo*7%QJ>#Ot9K5(l=Cixej zM)}8NC#w~Lcd|svrJcpep2J&LKHAdqE}M1pWK_C~NzZnbS#4eInJKMw{BS|(L03g1 zh8pMD`p3$QT=OM45L3x$3%LTd+>ZQFKib8QOd~pkDVYi6ln+=bO9o)8)TWWd`v`QZ z&R)Qmc>eF)zu}G@$cd`lA4U~MERaJ(S%&^uoU!+)Mvcgk0Khp zLS3s2qG^3WC`GenP6>=JtJiW;kK*@X@&6QGpf3eJrPC?t<c60a4mC!tGQ))q}Ij%)Rv^Ce-#o9KunP zCOh@;r7QQh0r;>u@`~0?Sz7*G0J#%+fDdk&p-cMD&^XledcQqlw9it*QI(66*+N*>&y~RLAEjhXZzwwFCmOhZW#Hp( zZpfUY%B!xe=c+GDpOL_xWDA*B+5%RMQ+=kT$@*v-*eSU$Z;lPNWQ*_51ZRb^W_H1lxegtkAeyeX~)O=>Uvmd%kt~>#7;<1nA2D0^zw=E z-Cvd}@G*Tqh?Y#meSX{8u8W*!6*l#S#aRLvI@u|tZzv&U`$^TCtkH$tr%h8j%hYyr z>1%O*duxM5QFp!GBY#z@!iV@97YS-_Hh!Z>gM^qmUl;dUM#2?9;{&x9AY)GkQKZMy zE;2O#6$Osa);_}*54oC{ZXQY8@QiGnq&c}FPX?3aLU!gt>n0jlU#)@{FSsbH}r({W`aQn3XTNvL#Xw#3@B_( z8->kfh4Ov1$=1NPtjzGo;E4Du(l}gS+^@F#)nvjDOu5}lI@Uy23p7`ju zf5l%Jl41Pve-v!+l+LuIC@2lZN%0bTy&}5Z7Mf98)66J(tlT?DQ#(Jp@(C{06U1=> zxu_!GRQMMnm;{}W?CanE0$Ia<4L{9TQLJK}f~x2&S#LmhM!%r6_|nq+obnJLG9PMh zldVu)gb33M(QN)2y*P|%$1D@u=AFY65p6eL0$VNg;B6rVuvvpKC9-TnV-m zL{01$7e*qyI8`lMPEtD44|xq32-uy>P?3QUltIZ_RSIWaX`Z zDdvy6t?uMynA`E&gcU+3>&pq@!*4 z=JxvxHVdVw=SD+`pfBj0IxNjdxNg|Sy0iQ1JH;^FpYDT^$2nh$qa3%aijwj=hQ&l# zI8N`Fkd@V6zeTUR4X0g#m}daD46!%QL<7GZ-P2G^$Jn!66?jkdPTxrT&@D7cfAUDh zC(vrv_kGZ`Hc?2rCC*%o^%Rbti0kYM?ECcA9?K|}rM&WIqEN^0q)c7^+S{v`HLBwv zG338`L_?q?tvVFWL!3KVr4c+LUSB9mu`ix97@NAO`1tWNt>t#QZ8=dJxgv+N?K45M zO>J~qR%_#@&f?BEMxB+9H>XpbP%~fL=ZQ)blR0A!{mFt&vd-8D$$-bo1v6(IJ;uu- ze8K|A)XJ^l>?!!61N+=rz9# zI3K_556xHvmqe`res0AM$8D^y?@G(tDGNSRx7B#j4o%*Gl1LiXobw!6X{buYDK@Ft zn2OAWx3t~|0K&7b!G+-|*c>=jg0^#4lUyy$6KcI^h4s^;hdE0T_uL`E#q?JNrToo0 zVKohE5>$w^_}49~iX)2N?UvP_3SkT+bmTQ>gxACf4jUhP#G4pqp<#>oF*VH}Z*Vj-Rsc%rYWX*y3B7H0E7 zWzv_XqoYIAmv?#lR4SXF*5oxaOnCLVo|{-u&~7wl+MHU?XNFBz^5~-_bG^vj;>CfC z0#3^GRNap;g)zoA)dF|L)p_8&$Ismt_8hOSvTT?*sNVIkNZ%VP3trMTr7GF7-5e1BcJZLdWwf9Pk>t zPy^Q?;?+iOWcFUWKTzBVD0x%1Wwbd1BF`yy zWl~iBgH7AT=aj=M3poFq8vW)EMa$Fi`3$B~drdPGob`9hZXo!o3|1GAAJ>JUq@n)w zxP?$Ahe^9FXfbnRQ zaed#`Xx^UJ#EH9cBq*`kAd)`S;rU5--4wqe;_<;}74& ztx0OPdmd5HjF8Mt<8hMZed%i9e1>Yy9E9&@)snBSYYq@%jex?~) z(J|`5M`|+AblL2>LSA4qZJhG>5wSW<9&W{pyFVsN$B)mj`dLgUR=4`L`||jYtmhc2 zEQkRoDXt0WvU_?McbY$#f!5PfYKzLE5FTOwPN1)EF~TKk?E1Unn65hW4*hw}n->_M zv>jWXqzsgP2ogg>TLH8ukh?S$GQfx-{|hNSS34Kle2$c=upR1&VOsX!@#%|}D|aBe z?;LT0eQ<`}1{Ej-nf}E*F_!^qi&}geYu_`^TJsyvEwxM+gSug1p6v^v60J{J??oqU z$L{LHa*~i>IRAnPfl~ll?xyPQD`Wq`36dXI39&56D4EX47>*>HFb^V?@ne5yY(8@lAyXt0S4i(|go`MWkg;ZW820(b-ecTp1^1hpQ+@ zv*w1$d@~0tTSD|@83&_XJ{}^2E}`&3|7TZnn$PV=nw&ng6}C_>OX;!|#L& zE1lCd`s*r9bEI4_-ILVjd5XT=eVbN<<)~cg*EGRTV(UVzz(j!ou{Zzz1) zim~@@{>x0K>eUnqaO%u#KEP`KIw^dO6^P)s9cew~|H;K&FOloPQXsJb%yb-GmObEy zbGe8mGPuP0dr!YCaQ96Fhu+bQGykz7LB7=i%Wt>p@q??!qXO@uNdRjngx<>=_@74KnQFn6_Ur;~+ZmMWUy?sm=)PGi zp8aM4$(cK-=MOL6(BjMvF-aJ$T=jttHF-6D=v|PWQ`$sI{VBkU0hDUBaRxz5+Edi0 zHy`M|;+;un&q7W1|KWfOaKIRb2+#&#k_Ltz(U;=!n)np7JQ~GqC1na>qaeV&$RYp- z2>!UYC5H$lk9x>tl{lPk(0>|w-o(x%Q=E?JdvhOtpZTeH=KAKIo0J=pydk}$Hrj_t zY%iZ`D@=bysl59-PpN-PE*ec2aWhH2^U%NK)q8%rVJf0E-m> zJ@w6L`{J33wKF*T`$y!|<%iCRe#fL|N#zy6S^Foa1COh@Fte4}GShyU43pqh&R&S< z0#E19C6CNaqFSKPx~ZYk_}QvR%w|nJ8`*Tk2;D-cGbXOcylkp}#d0FN2iEg^L10p1&7?vwl}`2e$b zYw?HaolL&QKmd0(ZbcnPKW({+gP>P?LCF8YAEYiI&i8R+cM24lxY!0$^N9c9mzn>% z#W-#-;P>D5d!!OCp-ACC+yzYMf2qe+jl51oHqo68NsjRUF$+B{(eDNtiafe~qO1#JOybIM;# zVPL@U|7}C58q@bL#bJiS{FCI)U#e;x1ttQ1&1;^eDs%))!-eg~vJ4$oRK1eXc0R7I z>O;lC>iA$!?9`PxKQGchE|!1qjg8@}_!3kL5e510?Ko{qy(F#!OA08< zYf4o+13aE?C8;*6zKPu-BWO3`mZw#gMP}w6lU<9PVoIMek?zkzZ!S(lPpcp3eIMOhNh9Y#Q1DqpN^u6(M0c^y!F=9ur%G) zOg_aoHSEpZO;R2t11t*xfmVoglTJQ*?QlIy^S+v#_L(qVxO!zOz@Pm=_2hMt=X}H( zWbPV-T*1Dz8o|_Vz=LT6*eFlCpE_D&Az%{&Q-(iMtZX4b>i*8uP)=>sI%SgF6;K! zRm$BEi`1c)oyW9c!RJW!6|{;&s#Ip&x;xUVwo3tewwoVK z4YHjHCf&E99bZ!GQM9OQSw)VA+O}j93jA%BNryfE-poP{Dg#?@MO_>?YwMGX$mYD>O>Oa6a50N`hU^L za;*5~=`SJ~%MJ3;U)R129j3JCVx3(d+nja72LvzXtt+uu#%wN?}R5s@m(!F5B;^c>7RXbv-dR zHD-51sj(Hx0*m1~5zLrG^e&%`@5!IboVyZg9Z0}wFwcKu5yO6N4-PlG(0LHQ7@_C! z^xg%XaoFiZ#IgM{sWxrt&rhn>Tk_laF)Xoh2;n;fJ!#z)$r&kW*fFMRO20hUQV=n%N2m4h#1u3J>_A(* zaM@|D7NPBo3Koy~TBN9%?&C7XO5#$3D-%k}DiTD4i3GY{H?7Ganc$pi#`_y;dkl3m zs<^Di%HV_6`Xy?V=L%Vg+za@z@D=dJHVz#l{c%RYl@Q;so{GZihJycU(i1?-NOL|o zdfJGww3NX#qjA0c;$)G6U5I#0jww6uQELuzeT{?8gr{R4_?|2IGB1wf#@Lb>3ZOJv zc3mOhiet3GHUFI1KgRtECsco z^+Z*-w}rP=R=2|7(A7G0A6ZMe0ovGwJ|tsOWR`cs&<&N?BUc2?((ojOgh&r{|u{qZMS zy09;OlLOMrfWblMh9e)3!Im;v!UJZxXfrM-!7f3BdUA2fF|GKG#{Z`@nWqX#kOmN%bAvWM;u<3JNbx?CrrER`2ws+0~ptmuRjS)!z=mdkyPfAIj$6 zC=|6q30sVGtxSKLgl<}_5M31C6XwL_T|$jm3m2`Z-}(_Rp75onL4iH(lZ;iAIJEAz zWi1(OI(uKRF>3lO&b|oN(whC->NX1EtBsog5-ZfV4dJ)Nu?lMvz=23?t&eLSbiB+f zUa{~Ixw4LH^~Z-QGN8B(iEK6za-!FnkJpA)H@W!Dl_C8xZq25cvC-{;4&h(2f~t3> zZJ6eiq3oX&3bD|MKPlUfO#{eq@x2|Oh8~z9*Mo~RJJK%a4~b*8d!_49Nl=XwIt})yTj#gRkLLzR zj~@R^;KhXJ4}^@1V9GF4Gm4s+h`y_i3(lLV<+)8!+#e<@l-VEh^7PzXU*wg1qYnB= z_0=h}IOk%!azE%GM=l`lv=57JbvwV6<+PHhB%;fPx!X?;^d50Lu4@es_eaT4h%Ap~ zxVJU~6b+u%IJZnl;VkHfpuh7$;6^k}_jL&7pPYiaWrQku&d5zF8RB<0WIlc@RLcCM zROw(}$yDd`;fUNlE=Hkx5_PGeS4UbStC>Jeg4>Q><@Dh!+>#ep4pbrX=GN;_u29-iO(S-_5bK+#<(xcfDa zhfl_|9Q~H7L?SU&+mudjO02c0vyiE!dvdu4G_U+VDyqT~XvB_M^M`EJ*MYKb%L#LLbEE;*-Aw2Sid68l&)4!6$b0kNK^0u{i>VNF|zG zuR;P~=gZjKOXW23+dVA8cQbA&h-M;kZH!m2tC~O$aDCd(k4Lvz{3FDp!p3QzdHT#E zhsRtCiO;QPmHG7uj{M#sWTSv?QFaOhX<;K>V`%7^E!gi1g5)8MUAVl-#dajMbe@Dg zIX09ujP~C9$_GJ0A;TcbbcPxXj^NRX4#wx0cx*U6C!qN|n$OOy(kFEc8B;?wYQ!eT zxh!mq?;EFDsw111qi5&N?OOOaBt9IjJ-qR$E9~A-cR7F2Qn*ubWQzfrvwaUGB`nb6 zEOBPUIGD^dV0NWZ%Si_XXPH zTzf`F%I+yZMWpEdmntg9mL>!VIp?#dtWI4u5T*7X<%5-Q?by5o3hjvt9}l_U`WgIx zLpBN3hT*_dv*5(1mOTSCX_oGq`gTg5gS+VT!%ar6njf$gWarlr7M8$)vidzo9l~q_ ztn2u0Yy-Q?yiRMh^b`V4B~Vn1tx9WpM5I$)jo^qfKK!lnrnH+2?CXKH#8eX7+|!#B zzYcm-%u^BtivS2Q&uavOz_XdKq1_Z4+01gZ3zR5DGoL#xGX4lcE;8OC4Ffk5C*y5l z=kdP6IuFRi{NeOtNs=K8!-wLe-#;GUh2-#Dy{=cU`HA8>XAX@O%RZneX5~SQerb|+ zPrQ4>RQwI_HD(QP@IXKPuxn@TwJ4-ZqYul})isH>KPGk3=k?mRkc3zuFlNb^^vs6k zr}9}464Vkcr`nOJp(5ml(R5dn85>s^^xWAXjo=G%pBGuRn~3fGDGFxfDVPWNA8I;F zXJ{66GbMoRSbi2equ}|UEX3NM)T;?pEEo6|C<=+o4q0`Hl(77yvF+Z!U;gdb3qu|pZW~(Hvkp>Vewfhz^&q- z$EN=kU}^9q?6;+LT|~pa=Hx}5&17wZx3dy$7L?Nowuj0SZ&e*4`77A)!+m@}%p`(H z-U_Pm2`QAW+E{^+&v11-@R5dh+S(tjG}@Jo@5*c5))+RXFx6{ zk}G_1RyzB)yt?fe-YF`udY@F#(X&#OQZgl^G=NgomZh1CZZV+duyTYR6~4dQj(!*}gJj=ZlT>xvI@MrweUn#B%Ow2V4W9KII;XMoGJKpHq+Sue zk5wsKSYKA$?Ao(;qe)V+De68@@bUeP0_D!G<*JS-aTOmDRX143eSc=)iIcS5Th4o7 z`?Yt67c`~IpdU>Xaj2Mr)S&&4_*XX`*agK)%fm4roqH)z()DsL%ohdp$yG2Buqe>z zf+VQ!ys=R8+0Nk__xiA7IzSBht-7q zo>mYrCk2IK7BG_##zj#;J-cV3_f{o~!f~_lZn|cf5X<@NFYLXYojqwvPGGNRy97Icd2*mQQ9CLm0k%{}&+czF!ox!;8AuT15L+{Sxubl$$d-xcZ>?jQIiE+_u8 z-)Fh>NcWa4my(XP`e^^6t*|s)v>Rdr#LdeDyCw%S5+Y}|p0YZ>Aaj^>hj>%uXFbkp zs%9CgEqXrGyUDh&PvPvyauUCeob)-fpc|m6=02DjFLTlVp|lk%zw=r-iUzK#F{Tw6&YS%e7xnxGsLc!e-8c*}tY zHox3J4>LO|#(v~c4RGq?VWTeXU=}&={l=8@jY!mq-6?>IF7%>GIDvdcAn;TD;L;UE zrBK$hH>@M4>(X`CShWX!7^Lm(+t+fh|42)pp8Mvy_HJoB=S4t{v74LXQTh)uca=DC#Pv3%V(C&(l-#5- zY*ebncydbt6%P#>ELHD!H_J+rH0d9W&VLZTiQ7nf(^JOCFz@xGMaLQwX{tA1KHB*f z6YT?e9$kQyV_0)>`4c<69&KXKr;9Zq=dAk(i33{&e;>0ST0B10FjyQK5`(jj3xloG zo@n7*Vx-{lKmaN#>e*VCy`5di%M;IEBx>Y7LJ4ZnhzB^Y{mccZ8WLUz=?jbvnx4@x&cY#igY(EGaO}3Z5Hf@b*WJX-LQ~Zq?o)|RwqMjd zzx!nfh>4DRPee-oIyGN+O(lqe*S!PJe~W>_#>^>fvr%Mh*O>;>I9=W*RmSuaI6QOn2 z2(!~N(z2IfEX>TzWs&29FWeNA{a)lP%JIw%m0yDyB_t)phH3G&nx<{Osr!B8W17N{ zrqgZ0E(}aPcU*Lt5*ci2+PGf`)Yr6e`<0nUfrO2Rm#imFf898b_gyw3GD4cxhEO*H z7>oKslx!3hneWZr-A+m7%id4D6>EPu#)Dh<5CRpodW~cJ%pDo|JYkXJi3Afgeb3rdS_wQE~ zjSnQ$(DjfvQChFT*ZC&==&Cr;S@lLk7N*yE1(G86z4z z;FI>Z=3%H_4|mEB#+QNBs1@7SiO6aIdKy^JNzzA*BEr>iUdu246r-46;s=40|F(u0(+M{Y}W~`r0oQT~aW;9|l$cKygDOLc&Z2)%;gvnST*fRKJ_!;FoU{xPIBc0bx(@Z#k1f;otIx4OE|- z_xqv9W(kbOSagxv45HGjeB0FGDARX|K&8<6MArY7egbQwUz{DYFEd(EvQ-#+U(*>o zKuMe<`ki=zZ|J$rrXY(Gr%Nh+i!bW?K}Y)2ubb?+w-Fx$QLvEUtOR)yk>Kc_DGTFa zc~p@v9VjOwVY(W!eBNR&y<(&{!P>xJS>wKNLOIJuu|yR1jO6!?M5M?@v6e=`Es{jB zp#FqkfOP3Y`C2lHRBjf#I2*zpmKFRRlPUrA0}D?Sf)4FX%J&#cdJVngB}HPE>1@bo z%qx2CNEk=8Hx8g~vS_J(3Xsyrj~_=yMtcQ; zTDmewAlEFYws&$8tIOtDgpr@BmmcAT4=m<8f)w@};p9yG8~i@YdJpV?=vN20`>DIz zs3-gHi?HBkE5ei)%>Am@hDp}AQ}mzMMxKSXe}_HR!2?kq_s5u}K&_;VnQ#7p`2VC1 zW$1FAlE{*dB^b{IVBLRzv0eOw#;MG*sg0_$v+QQT|z@ywde0+S` zDzdCU#ULQqC7h$9BO1i1{}!Pp`UQNrK}0}M`Xrz(E*=yb3Lj7k|L38B@G2@QuaJ14 zQyl;RXykdtpCMJ^>+$ z_C9y?4&Mb5dbjqS!C`qqjEO$82atI051+wx8NY~txj1{UELbO;;jz%~*@)m%0!W5h z%LCyp!sdGr$T@C0rXs7JM9*8>Kp|Z2XDu5qUguBf-Y;arJ&1Vh=Qg)k?_c$0^V!cg z*i72l*|8h9BmC=`R-UPDg+a-nX-2r_+!4;IaBc3ei9l!sg*=GXQj z2xkXl3eTBQp1Y$6o?Au-_u?||_qwrV1(jKH!m9q>N6i1#hae0J#T2FrL-lT#<2X;l zp20q*&CHhQ9&4x%X=AV!4f+gC{W!b1qcO>vmQ7Y>x*3S0R1KTR!QR2@iAgkRz@ zh54K)&tJ8htpD)n>TNj73Sv08hMNRgz~%4CBIiF0BM3`>CG@_b#671S2=3LyP9zU! zV8jgL3QmR;h+R)S3l=xkDdJFs_D{sx z@%8m}TUr#grl{58pK8&Rl^rJJFqxg7 z=T3m00`%|pG@;O$2pm6_&1;*|+|2(UrmYSJDrrZ82Xf@`*i6insge*A2WauX`nzt4 zdVunI;Iyp%58zt0!;`DQi{A)844&Ia_C4qSJccbN;6U%%A$6T|u<8wC9(Xt{?-e)J7&Ikp6vSxw?)H0V(MtX0IqTH}2vh zYMm+lKLjY0vwT5FSD=IcjnV0f4EGP|`G*!o`lm~w6$X<0`zydaI{q`3pr4($!2Ul9 d5`ubOD1!7&1ra@9E&sGtURp(}R^olg{{a&037h}` diff --git a/doc/reference-architectures/ran/openness_xran_images/xran_img5.png b/doc/reference-architectures/ran/openness_xran_images/xran_img5.png deleted file mode 100644 index 3818db5d9295801cea36edea2fe5d56263b2ad7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46671 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%0DZ zU28dsafV=H1yBDKj{YcYg*%4ZMX^3~P_UGXshy`FzW_5f@(`LtkpVW^}Ii7Wih{7*qy;m6>xPgA%@xkSVdv(s2O%ah9Ljc4GcD7S3^#dIkY|T z#zzR`2z?ar8rbc6JL~&0W3d=Xid`GQbU?68F0<)Q|H%d2xx6kMNKhrF3#J(yJ6Fi+FBE>a1BM zOU8M&gRilzf|=+HVe(Lc~cyz&!8$1r;3;69?%Dkfv& zHSe5@mN-<#(zg`73<6^^Qhhu^Eo>t7b&PMfgD!6JwKYl{oN?aB6#gWRYiySty3064 zT>5W9Rr9|PA-=l$j?TtZCTT zB&Up{a)U!-(WuvGh${3pRuy9^sOJ|EiXV=5@p#?Jc?B9glf{opS>;p|qtP&86`2kT zQ0ujJgAwi@!(?cRXp43~p{u8GH#;tHx92}T_oe49Z|_4HuT}RwSLPtC<(Z*3(0Qea z)Pv8Xl&ek%2(a1)bTXtT<)oQ|NL?2e4&YKEC|^4QzL&TfN~+#qEsELsIfZvN79}~D zI~ftrWtp&lOyEZf5LxY@tf66s87wgUMjWXT^wPEtTtnctxNoKJrzrpR3Gp#!!pT}! zFn&2DEg>@n8wVRtOLdNOSt|<*fA{EQ2M04zcTzscI%Yz^<|;4Hr`-oy1Nm@J5wChklaP>hh zc(siaawkb8?cBt17Uf6%0}E8Lb1E7c-SiTs#eJ_h|9bOcYctA#cp^YsL-2C3vv zO^)~l95qLCy^tWs;P~{kAU#8UC2;Nc>B!g!3)9Cq+bsgI#vUlkc}M+J8TKbSmcp3R-Ti=S#Lqhxga zq&{6=*eblLchPq2znGo!B3Fd=AYO}pLkqR`Pu!CNiAep&15=o5zP zjDrH>zDxqw;~JJoA-<9{%Yy1U=|()pW~hysL;7NkwuJOqip598!1#_|xwF1(A*mxF zd7JLjL|&;Vl3WE<^j3$$Q=N2-dF#mrS!Rs&l0*5wxTf_qWb}*--vUmV4;YE?HYz0Z zsiT(EdAU(Dg=RZkZ%Qj2t|-XI=SOCrO}I;jBM$`@Q{}Z;<D+Fy!(|0q<=My6>qZm~SUbjAqDz24FmS~ui`hb4x> zj3roW9}9MtNLD{+Wn#NMox6vzln8k}f0WZx+-#8hOy^t8BQN{dL*vO!swDlrz4N)r zkR2vluy9g_xFmilMEQf2)lu>4&o(EzrlugC8LT}IV`cHt^@t5&nv!_Se4(jB>p;!f zS0B|+8gD7i=4$EjE#>9Az^U=DyUGj!Y8%`Y4PxJy;BVEzKSZ8o@Rc+9T-CJRYC2}^ zYHIOEbB7QHl{zqX%zvJV`dVkxI;#zT2zrhzB%UZEc ztmNiSP_uD!7vC*=(@^kEcm;F!kXS&~2K>V9KgaY9S0oOe;ax^SWc|vlSS1(Bgmm-A z4dIJuj9)f!xgW18+-pen64U7iRg!g5&2@YYyiC1}pVQw`)_!WtsH;vI>CG9!JfD&r z?~|Vr7h;H?qgifeJPG5n`K=YUr}}xm;L7VK_CEL)l~1MV*S1l|8iU7d$qp;)G+WDe zenvnWRnAjww`>MZ^^;vrm{>}Go9TFo+tkYpa}K|Vl=bWQnlK|v$b_njzvwp0+!)3& zv0LEy7-)YFwN^v=E@1BNlsB9?qNch2uF2X9CS_Lttjt~Oy1_#3ZUU?w5wjU!m=t|a zz}ot?(?v>`E@+kfD@C*MWKG7k1dNEcd37ES&BX0(NKn|eqWqEvnu1SsBmb|bY&!#* z5b+P!)1nL|sTy;l6Y7cD2Gg7$PaVo!G=#nN{^S*Ki=Pf&c!S`AqJi)HG*c6owsAh- ze5ge(oHW#g&sf$nGFV=m#yRKcA0}BX+x{+>E7`C*wAlmHS{$C){G(dO)lI(YeqCmN zI2(@-5e`rpN;;?;OYPV&2>gFj3@LBTvlFhhJ>K5-YZ?dD(y@A3?CKif;kA-a&9AJf zX{Ty0!iw`a@>ATZM#Y`}y<(W%Y1f1=V4RiT+5YX7`=jAzk+j=;fbKgsO2#O}QHzL;d$@m1Upqo9*tYiBzkZ1QAgFFHxEPVTozeU^;P z*hP!Wr#|iq%8it5P()bBNl@?0X!o76!(twFm&egj7{-uJk_)Paoa-0^u=E__hJjlD ze;9kmD95@kY`42?+eVjDwryKowyiGPw#_cvW|wW-*2(jJ2Y=6xWF%wkBs&Xptu=99 zD(J~e%?YD{y6Dgud!;Pd%2J?7?3b-*5mmi-XH{e4)R%uYyKHWU)t|%os>>qUT@6~Q zgdKql-Q@uqVBJSoSkSk~Fy%68!dIq^Rf7xC_P-Bi-2yERTou_VOB>D?L0I0jE zH9oaCBQ(0fyFS3VJS)FJl!Nx#-5>&;`HC1KFxN~&`V5veo3n*?hVY+%z%j_h_iv`x z2~-=uU`WeR)uRg|nLp6zB_Wfe{cNHK3R+T2U%9pUeafoIT+ZGPw=G0j@0s-^Kk5`! zcq3(NWtq_VsdE>Gf6qevh9ehU{CpQXwJ|Xo$@%bo)v6BL!@@0wbu?A|q}38%O+2Tx zTPH`%tAHzMqsmR(join#6VllJCmzV30|ME$S&vcu`C%lrDudHjT|+j!tS0@n#tN>R zn-uX^AUF4xa?qAc^|67oszhWxF`)%uDUo!QF=)Wv0A#%+nZ(+xx=SpTQ!HQovn@BM zkqrZRvrgpnT)-*A_6nNQN!U9yHz{*d*W0^ksYJ*SCFf1t zA~i}JS(cgnRhPU*k$+y*X!o_e4TI0)crdyv4Eb!s>pjHW^lMxG`(amjWJXuf&lo#H zk9YJrU02MkJpUn`JH}#zFl005x8Gisij1by5HK&{p#WaZe!?a!JA|t@(zyX)-*jrHi=c zC}ZF==%2ZN*M*+N{Slv|ov>h7Xm)&`4|+Om=CW1 zYIl~|R+8M}bWG{n_CIk?21A}3bdn2FaRs~kSbi~m6Y!rpl@$u-ZbBeHN4}}4J>wqJ z#UAEGutwI)21gR36-I^?J`z18rG%|L>5jFWgR|UU;Fr60Q&gwRLIte+j38m;3`)%qKu{Sob=LXj`fO-$$p@+Ww7oOGYZZc*B1YBAVx-*X{ zwaB6yjwBUc;wfmpS)lUmcYWCLub z!d)rJ59X!L`{Brg<;OHVLrRLwIJP)__DY;=;wQp&F+VLmU$+E}e@Wx9M^xbs&{{cj zNXWi~$$^3U^wcb?x?VecY8Z50oJO*px;P_bsvr|nI;uR?g!`#Ds-;zr>LK5k87r^) zEKf4Ot`WLNxheBEd>07%&M*ceB}2GTdIfDQYo(*@Jt-&}uTM+oFMb+v7(JUM~_Z6T9ep=h?p z&h?buE0UGTnV14Cbs-rg1zwz;yS4@D2DazEj(cpkZiY~hgYp39R4yEW(6s0=V;mbP zao!3(QbHM27D3Qql&gVK)_ol0i|vE|IbZ}#Y6e^;7|foWpYSPrTLSJKL1>^m@io*Z(<#(PyQ65m&4k0#loNEp z$8qD+sjELS(EoY$5xclr^l`H(8x$XD9<;%ubkNf%zxgefT~d39&8^9-&5D4>lew$_ zQA5ZIs;kvzzT|Sf3B>C4`j=Gv{OqN;tdiwepl((oc%7={_4Y)#=SNr8Ov`PF0BdFtMIP}8b58`)bm=?4+B*_M?qc8mfX}l z3V>ct?rpdS`B7?1xH+T?JRmG@?Ie(k8hM_rbv%=(Yug``8{-?>^!#>MK+jmAl|iq zSEKpqbWgC*voC2qr3LAEqJ{(h4JV5{dC(lqU#?HgZ1in|f|q3A4dujt2Pn46sI z&Z%Hpm|>?WN|(&8FDP_^H+g(fQ4Itb*{WTqRC2RCz60OW8z^ zFH)}EtT5ENGj5-|&ez62t?^NRwOg<_#<#5bgVu-ZPGTN`?wkU>J+Y))bHG~d7s*Ae z{lLzyRiyFj6@Lmv${+GYpYNK1frSnZRd(IGli3q`9j?yH^h<3{)}o>@{y%AGt&@cO zGt;QxF~m-t*`R?TDhZ&I}pr+&W;RS~rscTPc_t{NFaSp9$ERWEDzBSXQ0CA7(u20}rJgdP-a6pnqr9;8~ze}KN8P15zF35?#3yBrd2>>=4W-n1J!udmkK8~Wb{%GjK4YqYpPuJ{Jx zkPG`{GQVpcqyY;t4Td1&i$2Cq}Cu? zz2-xRjMpiwo6?%N7}e((hGVL80Qb8U&!b%qr;nD%MSW+;(IcwYAwKGU_Vt!RL**GE zKE6o;j+3?XfrxxIS{sq;UT+HMvP=Xn7hW>L#M&WRTV=LVGsN(KEaU{Goi@n+Zk9sj zU)Y0M%Bp^lzc7Bx4iE*U&cc=`S>(mZ{yu$d!4#QgY$8x}0C^a3uWr`k?x>A7Fe#GeP zekpm8DjEYJI=d9fGWk{;)qb3wG~{u4!-Aan(Za1!0m`zL&BoExUjn$+Zt3m=2 zug}Ne>UqR7X#_XSrb-Nr)&i?au(p+c2o1l(-Q?@UTC-yHC$ERU>D^rFOjZb>>-T zqmo!SY*3JI=n{z;D0+AUrCc^fSIuuExw@R!dGv?@id?$D5%?uIjp zC5V>6q^kXU<%^=}Z8>WK?Bb_VO&XnrhjT1!{Ihb#6wXJYPLI}qnipw89$HBuli;CA zYBxjgmdp#qLs^O1RJw=L&n7cj91cf7`0oCC&vs=7=indaJY3kSDeJm+Ux|~tgQf}0 znH=j2E@O<#<-UAOPFG(+s8$^Bk6tuJ=>JAUodx*1AsH4k4Fjdv`hNX|O$S>Ib{k-MS`a=Ez{z=$jeFMl zuSCq?MCe-aP&PRK@qCrptRAQl%{0vH`&CRqO~+1N$i)+(s=uwSriYc9 zlp8mvr#q3agnN$T1SAls1{4zx&Y-(6~Ii0?HHHoSy_7 zcJ?d51WT1NS6Ja1G!;}}*q-dEuJDD6QxGhj7Rp^bvTT# zk(7)5AlP{P*GlOA>>D=BdLFqqd~9q}oFm59D9Pw|@_AEU8}FClXQ=FJtEwjBM>$wACZSD9xJCq#fnf|;t?zj}_Fk)N~4>!W}z!Q1tDvkZmXhh~DlsDhI% zW|owsE;t=hqISdlCJ9D=W zx-bU;iIJ+Nl&1hu*jb-43cW0cgB7Gaur*yn;O@%O(p(6TrU?xJderL2aWue5h2(ELm*{$i!5Ce4kmy{Elu2BBG1lWS`sHPcH;NsYZXK~W!oRxS=;&F2?$ zIjGsfrbLutYhN##y{J7@=+rN|Ur-1Lkx`P?*5@a-cHwd~0f4?EgNW|#t=5&5)<%#Q z(GwLVJzEDUIR{_EQw2LKVJkZe6In|~C8ghv!phPfHo`(W-o{eC%EC7C*9I;=(zd>e zu40z9dV(%CKIV0?!;3~{hg0Wor_p(ADrR3{_g1O2PJ zfIg|uBEeRHR&Pce9WN(oZrTBSRt|}h2bV$9Bx6%k6XWCfKJ;RRhK7359TY9DbQVWR z!ESv64RdElFL9vkjhUp2u&b?}sg|XYkB_8>>~B*;IYCJ$r+cJw+!z?B@EGZ-b8`5Y zn1A;GW)P5pJ!QvsE-lM-NpSFBrdeq8M>>0XR~I)*N{WymF|<@QXXj^Qv%}${gOn8Y z`1cOWieJK{dqPI@mN?qj!akyhj|wvv7gZH^^&ue;?pTARhk?~p2VX}a?R7UNfBvl$ zj6*ymK0czh2-*=s>zv=s?ZxfX)s4QCJmvHmYDsFEsHthGsr?M@JG(p&&5g=z$Yt8d z%}GJVNlZvcSX<*|62}Y##3d#l65?SeCanVFyo=mvxvBVA89HjPJrqv%c?^6M!~Bf2 zEp?r_3z@mv30dj5xQPprB+OV*5%mdSX$Spt8S%)b>e|XemU?QwlEOA7;#N+crmptJ zzqNcd{p{TI)y=f{-avzT@XMeVLSMWVmf8@ba`}vwbn$)aaCsPaqg>#p>MDz>EP=wI z&1lJLgTG0fKUC_RsU8;yk z5MsIgs5<|&#Dd_56L)->v155=WP!Vrq@BJjdKMui<9K%m8!LMPjGvsIKSIN}Jt9of z(fWr9+W3$z%(GLW=)h~pPD}=>w$kU(^0c*LVr9hZ{&)ln5MqJ1sleZZ`&H@iPj?LmE^bt@E&BIJA)2+0S*qT9dJ3w`vNZd7An$rk323jHX2-5u&0zKaO1wCV^7o?u7G`$-ua=JeiPXn z3yW*0ZlD3jp&f^f;IB)4%Be8Z9zyXQXHJCy6AEB!z&Nyi8_~vQPm<31EnB37lA*joBFGgFcggL~!04#)@)3?y$D zEpan;mmZ%GLwoRB1zsX=9^m04r3C!A1BH>9Boz=o_7o(HlxYrvfH%Xif`kw%v||V9 zE%M?3?8<(9uxPHV)BByB8r}}XY_%>rI&yl4fq&aWlw?%281#5oHEFGXXx`a!XYI)q z({@DqV_}DYRjerdU|9&jIj$EB3pOB>e$xW#2H1GDw*;=Ey}2ka0&(-~j3@-)H_Q%x zVgFhOonKIie4!ZmK70hzdrdV$8UhR9Vq4R|wzd&IknCv{O9~Rs7Ru*MfzrIniuizm z)m^@z;~y6Rgdme3+B;IaBf%q3N#QxmghBraEbL$JzrHUjmz$4f6_X!dXaX4{46iDj zkX^%9xK}Q+E&L|F0xze{AH#TCG0V_b%B|`nV0ePzSWlZP+B5i1*+7q}tKdMlEGtO{ixun?W^ziaxVS7jD zaHiWWgG6bR{)CA2m*b&Vr(ht0O*TYt+Fgj0^u(${RMh-xB^;*&(PW`Sszah?S*!iz zX~71OjY6ILNA*aEkFv)=_iWH{;DUcQ@m8JP9|vQ}Ft=vh?>amDt2#R;;G>o{)qtQm z@eZfq&&CiPIM4@dzT)Pmylem&en$-VJ`AM!ME)=L=YeZDHk^S1qIJnx?Po#@-%6c~ z$1!y&2S~;K9QvR3j3?246jg7PyyJNTwR6@}B&rM$Vopd|p6YblU1CyhadF9t4VezZ)#ZKk8 zy=eUw0F*xl{!+^ST#Vny`_O_=Te4TYZ--+aP-KRFLqlU@6=`YM zDSu`wH3J1C;E7d1&Q?vspH5_2@d|Ez@R!!^^dQ(bAT8=Eznj33eek&s-w~x_7{T~< z-1vU{AUm4_s3}CImV11VqnkH*%xQ>?5}&969(|0*kmwc>&Z)R)fS)ov9t78;cr*wL z27M5uy7B||gVS&((!`M&=17D)EJJn@y0T7_h*HbPL#`3_PJZ@ zPK_cyvEz;Bc*VbV9NJTlA|CZ}uO{XgkNbul_{)Nw0AkATGd~3iEp#fU$O0wD;bg`56ILgQ^q=aQ#Tmv>}V;U(L~ZWLIVw&ULEg} zp)2!_P3|1~amX|RRGFC@YP*G^*jZTv7sE}u4?N zgwbNp@KJScPn_hAyFg{(98Rk%d|6(N>T;{1*;CCn(YlL0Yz{^Vig<_t64VP_?}ELA z^vU?QVN=9hB+QvVLRa3b7U>=_w!XfC@t4`Uq@<)jiD%=O>6v`egf34mLaY_!fFXz^ zO$8N*iD`l_;OQdpAir$IcoZ82dBy;cslDFyF^~mxz}-dW%e*YFZf>vhSG5)6kHbX@ znZ-uQQXs-VKPH9&@>!@F8ar`Pc6*zjrh)qHS(s{|LIo$z5LuhR756M9CmGQMBUz=_ zU*Z037~>@~JX{`JIY?}{5Ec*X;Q=;S+4vBn-(QvWQ6wE+mJWF0Vq%3=+XdOZP;lzm zkr+)+%78afQ(0{H1aJ3*C^$V369?{!;yi>4-X#MSXz@TemFJxDWH_iV937u4D=Z8c z(+pUsP%jWuK{?}RvwZdv=60{!YVud7xS=X^^;BUiu~)(CF7T1I*2PH@Ljwo)^JH3O zShA&^aCML`=%{N0veG%h6`&3-F3$25$^;Gn*1@Dgo7q{M+do5xEG7U($Hr->KEE%z zz%_Ivw|GCiuN&U4x|{Fx)6?-av7g5z01j@52uvHSf`R05L1gBCb`bi2s;Zm$xTX2Q zR}k$MC$H0&>qrUlQ=_KLlDVbAH48urO@(dtb{jdr4mx^jh-L3CQe_y?bk#>faPZLI zTS;T&X|`tPJY5U(D}j0=RA%uJiqw=81&uJW(!8XJ?A)C6XgP@yTV<=`1c84`tC5vL zg$X6*4XxaYNXWO;>8~pkFeIF?w?x4blrSJ3kyfE1=ZnUN$wXukSg*am{~9SG?NWuQ z@#SvMvtwZ-hcy_XDobcMl-IrclA1i?(TN;$2iLdpO;F|7zf$R830He*gZl|F=D5y{6Q^vl=mmDxqVn| zFnmwog9-X{LGd?whE5RLCcgUAKWq`!urP5LMd(=yA`~z&2_Ep*t0Lor{j2##%_11$ zc#E)xh7QD7RP0QtsvR;Uv}D!9Rc`i?KIT0-QlTX_61h$&j$jT*i11|kc>XZdYf=CR z1Ng02(Eeum5bO%OfZ!I%s=575jJgW@j!-8uR5+m}!k&m%u-OQ%Kcu)VQD0trL$VAeo@>8=PX zL);LS`BRe-dw2)Cta}XkT?3kpZDC-K1l7!1mMruuqEo}~QDwd4VNUj85wM~*ODJ3N z0J#nPWP)gp=8kuWTfUtb31ZiHEEXB}Z)9OJ`R_qAc!vT}fh-A5EhjS5G_H_12~eeg zhaHEy$Rk__lG-p1FUVVj{i{(HfL!BjD=b^wkItDeR5$Sq>YBCuTI zqv4Xj%hkaI=y&Ny^)B`tgGBDaI__Vnkb$qsa91Na;#I7P$Z+uQuH5Z;_=HI0j2Yzq zuHuP6DgTg#pcfG&GQRF*%)mvv(kj_CL`LbWn=q)eCyx4IUHC8-XWoiTxr(wIuP7k# zqdt-L1H=>9_OyagB*eG zP!NU;2ktKU(>1tox7{peCXrbpy^VaPr$0jfj6g99-E;c764BC`WJ05S#198o?9 zc)v)LD8j?xTp=8acp_N^=zfauqid0aL?{bpMTDCEG6VEqd%y4mKS%BpR;AIfQ3goQ zIHyV2g2=Y<2g5=7Hx++|aX?a!VibkCyD4~;nnQ&z?EN|@JK5C4z`VMFdc8t&yS@^C zA|V4rL#=X$U5M5%Z{a6_D9P~=0pQUjLPV;6ycc}M*@0cjb#i$xICYwc?2^b)L`G+X zB<-U>>DJ>Ad4wSmj{!{@H0d_rqJZdzFCiK$ArunWMtvO8H8o)e@xjt;zsn#vf-x}= zW84R?3ndJQaK|_l;p61$iR_7Q`3m~-V~A4~ypSn1k*GGPaTI41;cuKp1npZnxH)77 z!y#ZK1(}70J?2lB2*aAJ^_^RqsvBYzq+t@ zcIk!93aazl;~rf~a>BYep2vzb`u2!S0v#C@anx1q=4Du1nu@mJ=CFMmMr>TY9M z-W)-R`#1HUIMyT_3|7V$W#1FheLTE3N(Y$KVStYhOuL!iO~joLUq>m=*4WZGb$bRM z!>%v!7n|Jly3~k;9qi5|I+u+57Wa0J~M~ z_N`juYPCI+X%)?=$kpt3P?oEnhs*dK>d>Hla(9#$J-iuQD`z%V_}YtHvzS4x?2eNp zz@xDC%?L>CqTo@I(eRI0EaNwPBpFxo(;P0JLp`x~szmGD)Db7vXFKj|q`zd(~oK(mi&y5T4n#KzIQX#JqG= zAfvkkAo4A#g*Z1f{fW#^NJtwMgmrXU@-8l!OtM+d*ub+ zy?~l8NeIkKwph+3eii^=VSa6HjhSVdSXY#8Mqcr4ZGFwl>%K}3-_1Q}KffM3(FebJ zitZA$;2j2YII^%h_KL%ay&;p2;RzffW|_~sm%=5kRjsvt6i?bsjobIj@^N9$&GF+- zMY$j&sng68)d*RUbZkBySn^Oi6hl|F{3#t3J{uo?o4+;P{6s&F=44@V_;ZATVLA%I zwYiC8IjA`(g=qJBg z`Nx<#fOUSInT0C7+cqXR4rXN%&K)j;kvxRvq{qU1^7AF@bT^-g{&tXtIVq=4vE4k8 zca2}ftO5D>JG0BLRH}F9;sUwbei<@N%xl{xg<3Vz`8l`u-#)EP4@8Mu)`zMR$ zF~gWG-AbyJ7YnaY7RZ~u2}*ha`L(Tvp)n7-IcW5VAaCy;5Pa(2y=#%fVFM@iy|Z#K zILesJ^)I^Mq*U&28gt;Lgx&KBoOqp#{m0*l{Os(@Y8!meLTBTADm6Z%->sF=_F^&h zNLAjbBMejUE^Noco@HaX_mY)Toz<=qi^ai!`BZ}rm*w<($5LApMARmClfMoBKzf#!(^nul+M!O6V18zQ&!_KlviFeqY}sv!~AHG2uLpx)uGCOOYl>!L+v zz)I$URbE+9Ze?y^x#CWN2w1)?`?INwWLZ*MUQ&`@Q)1%FUEt%~e)@HoEzY0=U|w2O z;`N#(DsYC{SW3RMD#$OX$hYy9bh!>;up!)gNp6c5`>qVZv9tv0-)4lcF`4)%e+Ii+ zLT-6pW)E=XEP^r{uY__CAkjy&1&>|wqpGky>EiWFRzWfI7Xa%G?*vNkj!h{{IT5MH zlEc$zGL)2#8-dsuRaKWs-3Tv>MnU9}V+7@ifvRY@2j?bMm1(JoGRPDJcy$r0QG7LK zM%D#IbuO=2J}N&?z21VQS6x;WMMWTCYKf^nvJ&U0x+6Gl*;n`|Xu(64_mgJ#6<+qW zPputCWV)gfdkvB$cIK~GW?)UGxs_!FP(D9XN4AXM2=IooSsh1!H#^7DnYuJtl$1&R z%Z!qeqf&aE{Nax-xQ=C6d1srOp19mU6W*j?uJQi7@G)r=hy&xaA?(nS%pP z%O<2!Ni#&YrGp}?z8EWEakoCsm-Zo;RAqtUR4yt>s^JxdyI5(=)vKQqt<% zYjmB;I!F3+OpyCLRlo`9(%94lSJe-@hHFG8pX+8_aBp}ltKy!ezTnjEBzjd=5T9Ni za;G^Inc>QwZ9N6YKt+wU6-Hp-s8ogE(|KQ1(w=cP)NssFHK#=ZM)Pr7!h$PoqlymV zsm?PFaXQ}>>)2^f!r413^VB>1%(q&cSI~H$-Q(-3!pzcyjMsBqcZ4qv@6z!yMxIui zcxo&5X1X*|1RUO-|7Uo6*V;YagAR$^MdSo;-cQD3-52Ic>r-E48p18>_PC$L*ddoP zEbc^A8T}rh&E(xkD|32#xZKEJRFfISuBlT>>A}h3A5Y6X8|^G2vcXhTJF9&>B>)C8 zEZB_5mbCN^9UsPJs*^jbJj_p7yll$`-xr3XmrfBm^hOIYfuKg+MjHIILxA|)W^@rN zUgogoK-1Q-oVh6?Zyh+n;Y)3bg%4*%C}Mkwt1spVgNz9W4dL?Rg`uz6eFuQRgrea- z%0=&ZVMC=fHa_4iyK(CY26+Tg@ysa^RvQ~Bw@Q#dJFuSp-cy>i$ko~?px-bjod^=5nF8CvAK&wb7>L%q3U7gXx7wB z&9BGVWOld$S{TjEzZs?UFGWQex+;^sL{{b;JOpSbTuV%xP_RCwf~RLOLlbIdwblAL&M(=B z?OsMEiiS9H#ZS#wHYdgLDHwV`J#>8-ig_iSDO#jv)wF?63%E3{L6>)sCzTis&_S}y zahGCX9IN+K!D7>mRX9fYi+17BcXjb})HSR&>4x;b)ff(@lHW2<+722xs@bQ@Ul-+If@pSLx+tT6D|fo6(qkep z)KPmZJJSUgcFF_yoo)a3rfL_@uDr~h&QR!P5ypya>23r6IBC{7b7sra?){dzw;UCc z|NFp6HMU-r1YO}5shs!QFi@~Ye*a-iSikeTCP3J`xpX)F-qr_X)Y?|L?r%mrVhgp% zQIMR}HQcN%L-V!@hY#=l&kK#|cJ49v-U6vp`?7zzq;SIV8(6!!ltQ}6HNV8! zJKOeqnMkM=|pC_mv4&cN8F7hiL^N^&_x(5A<|BLg2KOD9Wc?TkbRynJX$9Q)jh%RBq4 zCx@@jpgtp0@3f_8r?K_^s&Ly8EXG|H7+)+3YQKBe58noULZ?3GwylxW3%*?33VaGz z5Dc*ri$ON>K%5#=wqSW{z4J!ikHkn?WNt%El;r_Dq_f5}Xf#F7UuOR%Ox#uQ9pa1j znMP1;uO6Cs_IwvRQFN16C8KM}caM1#-<-{=WF|VQ&mS4ELZwneW4z02VJwweNz%L~ z!-sK!f!XY)K2dMiRE#ru2JNSMuvn_+rB`Wc47fWrX7m>aVZgY>%iDiY&j*AgWWHf$ zDQj!**|5}7EFHc`a_E6Tk4WE;-SBdD8%OUi4{typi|tiUZ?+|h$Tn@Z=#$siWd0f+ zMRPK2LPv#54$k4Cy-d~Q7eUU=DVoI*mXRxSM=bo*&#;5;Dk?dfvVZ~^DSe!Uy3;yq z1F8TT;g2xPLW0VoJ8#~ngPA~;p6#O<+BqM*`VkvVj30LAL(+)`D$Ug3MXUF+ZPwZIruv0 zmNnm_3ZCF=|1ET8t^e|pUqQuV@Dt?jNu>Xf;?Q%^-wkkebt%jo*8|Ty*;?Gd!p}Y8 zJ5i_L*iw8e^Laz^(;Th1s}56}0(=P>bF^HS$~)cE;1u zyl5qM!*R~pwQycqDb*jmoj_GJb-Zh-Un?n(Zeb|b?Xh*)nqz0*RR1nWX^L+aC9*DA zJl5QQ>Fn!vpZ}bTu_1}Uw5JS!N2KmRUkt(`WV^|q3zz$ZBnsh(VnZu_;n1YU=l9;# zLJRIYoo=IJsN6p{q_aC&WMfstu=JhntxP4>DM18FD^CMYnt|@S1y7|%!pk-F(%Kbc zV>*&+<-xP-{s!aVlU07p(tph>qcmwFy#w^!F1E$mf6O^YN6w}r>UlgibcrKcf9)i* z^K%nbpP?#~@3}Wrn}A1ouetZ z1$W#rsx)v!2k>pqBe~IHmDP$-oHhz)`RUtK_lMoJb<0w;YNKHcFzJsWaAfz7zf{bt z!pGTXA=p{zIYjgKo>!+`_{m4dG3~{soa0x^H?*1Q`!dhydVH^kdiTcmJnmfv_#?;c zaK@b3+}=yw&SBlHqXgFUbXDeswbICAx9ZR_p&xWjaeQTm@uI~}m}!NJZP==pUEp6B zQe1LPg?L|k8v;%yCdziQMX&xwTDP(b9$Wn?@-BM5j}ms!W4HQrGpgcTIoz$U(iZPZ zFp0B?rG7^z=VD|$FKY5u;YvJJC(3N2hYT@ngQwYCS4q78 z(0+Rl_C6cNU{23N&`8mQl&nVHH|`1CC;p0=GP-w4`jzRl&i8KIBI?fR6#p|uo$cX^ zEk^z?SG(+1O@@%!yl0?HQISlcSm~Nh)4`%0B?2?Xk(uX5wDHWg#7BtTqfnnpc5cPo z;&}O(H@lBd?4)8R#0Po8ekG-8dp+*~f^YX}oG5WHlLFN)&?AJ$(1+Uhy!T?_`P?Nf zMTy?j?_@Qad7(S=BX1p7MqM#etn zWVYz?0PoD22)qdpR3eCdGt~@fphlUjY98y2!Um3euk?LXe;tOxTjNJK6NMa zXVST}EibIew=plPEp(%%sx^w4DP4He;V90&M;bY{z+Y+oY|M!N8y+71H>bHhW;Hv& zR$}t-S8ODq-Ab{wfiYZ~PJIXZ220mf;`R8Ry=*~Yd3R2C{@?icoRW~@tMMWh> z26>e=RW|s_(#43&?yFel7U$Tw*k`!u;3h4yF->pl=Ht1l^UVK%)k$ow5vS+$9kgya zJ1@0rSoo)w9b3G+X>3Ef7Mi?uTtk& z8JFf;?e&f=mF^$LVeDD~M-esc^tQF7)h?%EK!G4<{nz6A($9!+Rl6Z1m^aiKD$PL| zr;vWS=&bn+&Vq6%pYSKhB3es|<5tjM2ywm@3pCc@BY1Sk?3CF!`wu6C|Ff`napY)# znzc66l-L?r#;~odvWro6=hENT@$$)ubGNX_U)xpI(lXRmSP`Td@aE|tr(mWJY|^Qs zAEGb9cNI27N=t8ybuV2x%#u}@Si8BPMjrukdFSSJR25e@Hs=@T#B}+AWNUgRO2|wr zBx%`^ognk+m2ncUs)nZ2Ha&p-fHRm~qGB_zTj1iriXN=>rL}ipxUYAxL)` zK9x?Z;g`)NU({@`v=gvV`87wt48DjAh@?XIgcZ*!+L-5Nwr4q%*x~e3Ys-RvqP$N9 zueUN>P6aLHZVA$0Xg5pE;m)qCs;Vli&qyZh{r#l1w2Z^tnU>?@G`QTM>3f_3{h~)A zRz~k+UW%>#rHWh`Uc*ansy_mT+PnY#XASu9O z(I&@HjDFX(HA^|y5|@-YLV-`tF?zA?cjz{>D)eUIonU8)DCYGJL$-&O9;YCGgEaJ1 zMh*j)yC!zGM>iG~b+yIksL2FWkl+c}MB!{!^wG+aKFRv3^?aW z@t!+=i}%`^J1BIH9PKRk#JrtWx@T!q4X!ekKiIb~aMcf>{0Tksja0=*Q`j}&w6?On zQp(Ub4?=9#IlVr;L`ULg9P<)J0(8wI{%55V{{Vf||M~B8c>e#s-SGg896GzYs;RBb zO-s|zjE@ra7ScejnY?dfd15hfEpzJJ+?{Uv7FXy5e)kLV4zzo}cxMkU9B|$c^)Z8X zURbkbiWSn)(Jd}5si~^ozJAo#1AwSWc6RnSuKpbf4ULr=-44F@i-z9b-l3t;CD4?e zcOi)buAd4Vx7wN*vg8oJPi0xcgSFWZXIkO1XeB9`9EQ!; z&7Bn0^>lQTmQ-s?%3B=yuQ4N7VA|Ibb7u<7>r04 zAixZmC;RmDB%8@rURK7KE(2tdGrraOeVzjg4jvvJ7_p+Vx!t~=fFzI4YrohZts>rk z!3qL2w2quS@P>JOJZ&A5kF;=d0}-f5~dzWR1SP%u6r6hBKJda zYr9}!zE_?I4Q}CG?YvFDF=DJ8KFm|+kKeOf@SL`*58T#>q&~GO7Q2L6TH8naYjjTD zk+}|I-fhNOJfXi1{~NR@A6`H8sA*~8U}16b@X!d~J2PzjwWE*Yn8_ z%%6RKzLuAjeSCNrLbjeoUB$$Pt!lem-yTjc*IWEv4^vriWbuX?ekeXwyF|nG zl}#WW?oZB6-!_kb)lV)Zm7O773oW0YvSHkYv?Kq*1TiVUPBs8fG`9(Dq;b2y4pN2qGjz{gUjaG3KB7g%EZmTVy@jI4 zvZumB@c)^IoiR`z`2M5YFyg;EFB7Q@J#S}~TU%RQU0vzv>9Vr2u&^WyphAY?;-UWj zeL$jW-^k8sXD5%pz@Hw!kA1?KTz*7LN>UMtlb3)0{;_Yl56sP>2z^hnZv!dIX_=V= z+dW^8wV3oeajB_($JuT~w?GD;3k^-Ba3})t&A|Z~_P`7jkzIk6POr9x){o!@%;U8C z$Q(m`I zCwk!j7sC?xFT#1l05Xb;7u5r_DR2-*rluuLO-h%gz zBvN;$mof9Pv0*G+ot&5(8G-7JYy){qMMY$BTyP)^47J-IN9Y@Q_nXy_O7n3mX^O()V&|PK;i{#8dj~L ztS)}zW^{CP;ATbZ;zVO$VTEZ&MMYs@V+)p_pPvh}e_z`90ip66@ucEF=HOk&_UF~g zUn5XZP(eY#|0Wo)yryTn(_?;n+ixHQ9%vBwiB9(S_P#!j`GMSXVzz&6+1Zoga4-kcb2#2L+8t5|WauK#Ezd?<0+b_uvyS69nZbAUIeQ$gDo#wpG#83{U&+ z`M&=4dfs$1q!L&SG&(y!|6VkHlK-hVonaQkJn~lRNt8{T2b>|qBLlxc1cqJ5jv(SK z%|2)FT-KY0ZVM5s^u0#z80@q=A5w-QUj!oq*W5UL90qMlqn_ho{Q+FN<3|p_2*iZ} z*x-`bk&ChaD5S+F+||Y29Eg5zAOxEO8_w) zNP$6!KHKar9fXeDyBfDc=9DPF2ot=wyPIEL4qXzYb9Hf%m6M|eWCwGED2=EZxZV71 zYI5=O<9}e!a0CL0Zm_m%F?1yS=%+hYgi$6}L+RRa-AHYnveb z+fCqvttHa~gej>*CxlM(U9=m$Pr>J|b-gwpN*gb~;2!z;&VK~Q+I%5!`t}=Lzy7co zpmOOjW^UQY>@(@UeSB_MpQCw`GQfkAd6u1#oxX2vE#yF!XUYMO`M-Gj>Zqu{FIpO; zk(LG(knS0}B&7uDk`R>6p*uxNkuH&t?(UFI>F(}sc$e?*z4wo67Pw|HpSgFRz4zJo zo<}jF?*Xf63{L=dih_&N{rn8&D+?1-Qd(LU-W{@)#F#kk4`~;{Q~=H)6TQ9YH2(hn zll;wM*Td`SW?(WWF4q|!BuOqSF(Kg|EIycn!>WC4`X;fy3(cE1=$1Fj!BkC`3+`ax zZo2LFpkE_)#9;DsKxlY4vXFnDsi~>m^2v$4k%?E1 zYX=mFvQ&=KRejs1ED=;*fOjZa8U(X?ANJ-`X+EAC&w5*yxEuGKM@G~hHjyy6L!~Z1 z1$m0*!t9N8wQN-Ivzi|FzdC}|EYRj08?l-vo3rWCk1qnhX zeQ~&mliQdLqlo}?r|k1+c1cMIC>qK(N=i7j734;6wc`B#C1A!}d0icU2jbWJwI51f zzI=g@M}TubCPDzsCVY#Nc*!y(`+6S>))xp+PVzJiZ6V48y{{V@1ij_z*j8OR$e3R`q)1}RH+xI>R->=WZ+6)^1cRL@cFYRoq`g9{F ziG1PlZfACBFVgZs@tZ}tJAOT+=Dw5O-P(qKukQZardTEJ+c1}Qz*K0~y|!6o#}U^< z@T2|Pw&%3w!unR1vi;Vx(s<&$$)1)jpK+oP%fgMBk0n0qqc z;io7vNT1KOw7^xwMMuMryhA~0sjr6}KKy0#f`1Tp+EH_N7l@}UqeLfbKs)HL!@$5W zH+}o|?MV_8;&fl_w&en5r)xfYI?;%w5;0{<6E1}aTWJI63rjbP;&>?>!~L=b%xaPE>=o@9j)c>;p2obgW_H6=>%u{wLifd-4<#VEyTkImE5(V zvdASZVBYDKw^96>hkefK=p<9l8#jw?~1Jn{m>hAP{p`&Ewf0DhcuP(+uh}xMfJ%ZA$!>C z2~Kegj0N>RyiZEfcxkaDbHs4;I;5Hs@l=pipXPY5`l;Fr2ExflYZ||{^wAP?|M1}h z;5$)+>0gFPrttDEw?=-0S>*3kRhih>y2OzDrGm$rT#jjx&LSuTCSY~#1aP3VJrOu| zhiuEf^N{aUkEm^6G14OK-%M7X%PkdcvhT4A40-V4W|FyQUA>Py;;kuU8VQl22aE@BuIl{?aIxB>#_^Bh`b^obOiRSL7?7c9HC?(!(()e*+?hn!F`KCwHNzTm7(jx9hfq2T0 zBSe?Y+g3f*&Nxb0Yl54Law^k#+x>BJf7ZsMOvxh0q|xn}7eS36w#{}LB>AZpKC-6U z>FVkRTm;H(*g~fMidDq?{{8#%a4~qH(c_wvH{IV3{mbp%bb0zhI2oV#p!k@0x_>Gd z*xD1lNv&pX8YL8h+e>1kt*Xiev?e`0D#D9uY8yE}#hiAuDKMKjBXCU0atc(>4#wfa zf`UB^wg$Kxn4{y}fQ=VE0fD4`B}yjgbMj+EY_hFsQ z`x;ECUqwUk&r3;8Zn*&?cF~m8)B?t6KNwn&Fo4{>1N;O|+opQ37SZ(m(q74hkd zmhWRih`IzdQ7{byDqP)SWNRk9MS#|YDqotdx%D>h%}uHw5$g0_ZKK`pc_g2{yN&;R z5|#F2_}&Zp%~Y#~ivzK^LOHJ-OpQ3B@WL?Wt^Us>MZO)ulv#t={zKGCG`(pbSy8<) zVyP$`*xR$ul`bbR)msXl6{6Yp)LN6;6yVvbUo4E^Q@UgG+sv<@U2g<;k$W(_a5&1H zPwGAbKUaD|@i0&2O%IUW3vz|f^b~44q3-_Vny_a1e90bdQ5~aL+8j)|1;B88y_x1;Zs2kJHy{8>xva2|WsB(SS#3c^2Ew)b!=0=p9?}ne z$LLuma79wb*b6EuVkKdk`dhwg7ezBARbhB9P5YQ5>T-m|kUW@@Vxr*FhMIj_*Ezcz zlm`d~ZJyt}gN+uw{y%g9wtY{Rp~7$jeh;{8_(~r`VXub=Ajy`0;y;TSkXivRO=xk4KwPl#}~6I_gimSY<`_4H49pkWZWga9c#uxHJL6 z+!f8uk7*BQ^fIn5Wu>H0W|fbIFH7igffsXnGwAX>1YXx`wG%5KKs30~FTl4M7y@(i z^T*Wj)XIxK5C0LOH({Q3D(Ccj(r6xHBX6lE}y%ZSw3ldv<7jmsjAO#tf+gAou z4nA=!W+JcyRI#>WkylSK9r$;MH!lNEaNx9^JC4Hl1+Il$ZEZ`kvXHq^XfS%nNJ!A0 zVRUqKEM+gL0JH3m?VrsjVXVCA>FEh{CT^wshn0`LU6>SZbxJt$6l8N|%V$?0}JuJIAqkhluDgWnpS2`LES`LjW(*Go3w zw3m(!**nscwnLOXGJO0W;O!1WpscLeP)6ZWY=grW#LO5|Va(mf6C)e{7Q{Ejb#j+FFU3DT;eK8g2`1 zChzjfW_Mmzj)}*tc`8160f7Dv6*rw8?8GD5^9$E_091{r+gCdgC?xx3|LXX=LzS^; zE+1wApwI6|bcIKleU7OFH=YQ<9TKqrhbU-yUFM2^FUdqr09{{RR@USn8&ajrAZdsl zTwYQl+8IfQJGW%BWrJqQpAtc5;_`e+zS~rJX}LXE%-B4Y*K(@FW>FXltp%VM37$V3 zv7fq_O=4mq(EZehlltyhv^Ajo++QxzPr|?(!g;Ias@XydkUCD=FxZyZEd9Vx?Ugsl zem{MVl$VuzfO*7=0CRV($@k8;3QR2hKPn zJw3g#kz(89{(O>VxA|%%47T7(4}rKe5_Odm6BGZo(z|Vm@F02dVrOg12d_N4xtUFq zSzSgZ#NQtg6B|2Dq9FI7r2hEX21zE@+ErbaCeIN5K_?D5a602``5t;+2VaWd*OCzz z=CV5TJzS4hU(PKsxF7yeyn3rlzzk>4I5E>I$1t+cW8K?7{L+FvrgPoyBXPU^_8>MN@F)2>4>f`p2AYlIEU}H$kAz&oenvZ(uWo|-Xai~=N&_ z9&Er<1Q{bYw?uMfEFa6fx0)j7y8=LRU~=9@K3?Gfj_~~t?)cRe1o{m_oLt&AEHCd( ziJ`bSLIvlUwSoc`reAF>^v_4M=}3_Wl1vvcKK}f)46Xw%)$8~#@yN>$YHB_|#fH+k zOE}dy(RjGHKstmBm4}-f*f%ZpOAlehY>EmBzY;x9dgu*JL)<&4>F5wY2yt=YgQ@DY zT_4iCAFge@PRZ<-$ALw*+7XIByi&r8%c3Zz1hn~&8xo?}GcO>%-yu>Ued9r27?k+Q@GSUjjVQaj<-5bvu@49M>hDPU-Hx^EMDNGqoPQZoS zcfMJX&#<_oD6=3JvGlNhOsj+Aj(dkd}SLdg#E}G~6;&Y;qD366#0~3PZM%y~I5fwuedY z`?$tNA#Q#b0#2Z|-7XL2fw>Q4JX&&6Qdq3%XtsiMB;|aq!={b*tq$&+KygMkw&1-W zbH#V>DoRVQfoI{kJHhggnYz^woN_*rI5PM26v9O4KHyvQz>oO`2@emaDL7ng#zDrZ z#HwqwT}Fth_VpE$l(EIT=HkL?`C$6usu<)&%VU1x@KdSgq zsBT+}hwB{<%_6)qw!b`;>9;dQXC9TEzFRr_S+3{1zy13>lFN$?WE(Q^iwc(9SEBlO zmHXUat4~%`>3|5YfEOH%*PLf{@=)mq*lH)Nj2uC}5uYq0tnMT+7b|9(=Fj_v@*$;3 zNUC+Jh)BCWV2f&c|5T%<6W=7-I}>|YN_~SWf4|`WHg`J~LGB>x7~cH(7@^7zi5Yu# zYi$1B!WbL$5av#;13w^T^3ca#5=ulUv3CImUqJgnH+uY7NXoQ)mBx1zD~#3o@C zHYF#ZKS2FhX`wq88s_Zn`WCJ?!7xICQynWtjB|m0!pp8c+S&roCX@J=8;7!b?=HLJ za@8)CM4-Rr#HVooLB6TRXX7q2r|I@lg0&ZYiS@?~5e0b2B2uvfQa48GTvPLgv+S511}(n{%CU7W40A2II9zOi%>2l(lc@3}#A+HNO#Lqjx) zL&;C@<=rIJYOGOyp!hzMtT~pV0Vd(T6$Y1kZIY(j+R>)E{bw$~J&$-Kg%8gN4Sl9b zY9d7mFW?vd%k7tS51j>dW4zA`97;hnr?C8%l&C)7MinXi;G#C_A1dYAN57` z+i88XzJqTDbR+fkg@uJ9$XmkGn@KTI{#89lxB&y{-#b>_)9swJHj`Q)6@%OH(jF9j zJ|Sh++dY6SqN=?1^FAwIzEt1eL=8(_bJO~66d;~KyUoD-)dd-usLYqv-B=?lMYoRm zE6m^^vepTDs-0=X5c0MAa}WjxQ1v(87@K^wAp8*D7+W!{i`??&f&=vsh_+{vMfhGL z>f9S}%&D`fDgtV+C>_}4zd;S7jIk+=@rH89|6eyj2}cwqYJ*x)#^IzJG&x9)Va>M` z47l}6f3L4yqo^37#&!(_j`+7}k;9R{`GZwE3}r^t#YluXIR%mj>w4{1PU5DQl|7%i z1YUuF?NSSHhNg(0--$e|ima@z;y-`xb(*xOTVwmHvXW4IdS+&3Xb6XoRuw_Ces^bw zmJ*kDYr4H1u}a+5mOY;2b=&P>^WpwJ7GXr6m8GR2gZbyrVt&O6=)tw3S?{A?@~1R; z2`+s#Umo|C3#gF?`-gHE0N%m^r8+|DO?18}l$z|{JVaA{&)TD+wxF6Jmt&&2V^^v! zMYduv5H8`jb$!+Rl?mOl^&LwIMt4y1;@#hISUR1?d^moSTxHuJK(e*iT>=%tnE6Ssb(R9Pr^hk9EtbjVbOe~xngJ8KC4j|V6rJdf~pgZqATdHJ|X_4p?{ z8!U8+FBTTReMB?THM{MG$z%pcM(|$Thx08!Tu)vyRs!UI+{rH%_wYxnwpqkZJlx$y zq-(nbiiC7_c}XSWMa}~c(|G^B zEeJ5Gu)p97@M-q<^IKbA2VFtCkD!h-KcBgLS9J}$v)5_}DH`Y9rJp6yWL;+*GA(SiuLE{( z7Gv*I$$=`g0v0!PpEPP!47_^X&4ha`7H7pC+4QmBw;dIC1+4w94}NRsbmO)?DVFyA zV((O7`dpRK`~sM@kGkQ|tN-5<5)l&RLJhsk5xEBvFerHo8PC$x6d5}rJRIy>xWLC1 z;^r#=>1p%zFk(VNtErOZ(;<-@WriAdV6vl={R4fp?r6H=h7)udVoR*g*ih_|X4s*A z2Uysgf`adguu$DPS#VFEih8%_Tz+lsbX(gB=o|r%85|r0vyU7@ed|HL{3W6ZoAB8W zgkwYtp_(gS`}FSHY&X$5R|+jVCzXd+snumgp>yFDe^8jZ7X+L;tTutqD9-5DP30J# z)O_^oe6ebA%685er+b0={Qz%I|4&=K1AGHwWGME-XUG&A$6Uljjaa* zLe;#f$AV}?e4!JyvCiw(O4QFM6=aqA9_9*_9HQg4UcLxXAn2Pg)qx%iZN}^RYCr0Kknb$M_*AaPC z`&Cs%WC|}#Nk!GgdRCg1^{R%HlY+mgsfp53PelcoSR>QZwZ>i8_D!T`jTIH#F9p`F z*48pJGFF}pvNmiC48-Z?+k<-L3*|eVYU@U?d;WLG_=+EEQ3XM9{3Cwi%?b?HlL)Tdmd>yL#{^+K|mpE}kUBWnz3 z$CX*lrS;Rt{=cmSXu8Hg7FFe)ixB1Sv^>B6m+2Gycpp? z#hj_*KplQsnm0?IJ{Pxl%{lLbR72N*QnQCizwf|Kynhn-CGBPLAaLFZAGTR~0DSWY ze+uD1Wq@4J-jY%}9L2Y+7LR|KQtHMZ`@#<+s#0vXwNiAKGWihVzF?K~Qg#0*%wD)l zmi{KV;_{(cDP_WOARakd$7IfsTIky*NZP2nk=p_V*s>ejAv8p33O`b zqx6pId>8M%KQIwU>>|xWX7ZD9=J%}XS#Cs?_x^F31km=dv2i=9?_x9+Rn32WULpd0D=P5~qZ*sDP#4pGNI zv;|ysS{xQdKyiOuN*H6$Irq*99r@Hiu-7BBt7JAEZZ-|cZC`Le+gl0hj zM3pQgI_lO|=$}b@^=bdNI)3VBZPhlkA#Ofq{BPXigQ*vSXzh;oeiv7T6FZkr1p`=a z!RHsxg+D(Wp#q5}O!YIiTc`Devnnn&1fHpT|KJ!qO+1ou!{0PM4IVt|P;e4iiLj-K zl9IBx>1OANAFdoek!)fEkCCaV_?Yuu4grDu^zlhv*4(h1v58b3ppb43g7lzYHwEnu1Op}lk=$cK@wehG{O5_RqVkg_c zFj4Ni8MAtA9`Z<0{1ZS2Z~wr+->xnlZSBPPc-?wume;RQR=oDD3=j+8K>|d^gW)_a zxvfW0x5Du%IwfQYPKKY`bzlso0wxc>H6J;sY53-{Oc>2g{a1!gW3>OS2Q z!CXXjxc0T)d8j+CPW`@+IvTqE)Ram~CNOFuv}WAIvj8xVwdDzsvz z!pG-0;m~*!1>4kZ4%Em{n}Tr=nE>%M)6CM$9JtqN=7DKCMfg`FRk@$Gps$)$>4h%# z8ylZ}^{|={*2-V3bR+$Gm)^(gnzpL_ag${wJejljhG?)v4j6^lmqsMYz+ky+kSQ0N3u&q1*}d+BuG;Gvd9S>} z@qiHnu~E^iCSc-Vkz2DSf8MMF_!oi#r6kmv1tU*yfRx>=HATk20s#yPWXlL0=8MS=An?KR0}vdS0g1lGQBXzQ$sUB*lG&<9d4 zF<{n6(g5`ctSF*sc(#Q{qV#cKRP>D0maAGEbkg%vlRM0CfkvO8x-?>s8`WE5R4E$i zYOwOsJO<_=kY{ZpS4|V=++=8R0XJLU4?IdBFZ=4UnxDZ|YYvrmJ6CfNrp{X95hoyP z)N7EFUvBBNjjx~;ZHv&Z5!wZ1mNl|Y@}=N#z=ukbyE#zbh@E7Y-V7hNnhNI*JOkQ6 zr~_c)%qjQAlAVus_&ZT+_Kj^-haYr~JHU^;l$1uyB0?h9!$;wKEi~FaFQ8brCs7#m z5xqS0rHx9V7p%|exZoZv&zL(!|0}Uac7&Ck3`5)&X3_ote9u8li_~WVn%ov?k3Vpa zM8=PY-u&OkVTRIH9Dp0KM23c;3>o9f)K@24ww?nlTYZD)C>$)>X?N+%#c51u*U6oq zm5LoO=0^lpY4_lXqs%U0bGu61R~4`&ugT;j(0yi9IL>MeG(V9dRV%GO&iTB3=*@WK zxb%ExZtRFJ99olV?Esb1;L%*hiCCJUG+IunD_h9et2(>7x%JJu1XW4%6^TWda4@;; z0{Wnrjb33V3W;a=YH*3JQq5uXCDhjlBtohc8`hE?DAd*78(Z4Jgtt#nFGlf;#{a)= zf;KILhM2!Qts5YNWEZ^IM&K|{%YL-U? z=SA42Jn13b4vid|H{CpuB%v0?cUpTseF4pJ=mH88eBqn3UaoiS21Ao|PVnQ|nOqjKWrk*H zvWZsKtS@~1gC2B~i&sx}i135P9v4dR=HM0xtW^1!Qk+im5~BDHptLGYGjr4B1vlU} zqP;TtIaw96Duqi4sHmjUGVnhg$*+T-kS4E@EcR_h6J-$by!+ogIIw zhEH4QQ>phZNxvVPGr5$c?;nlHu4#F1lk@Jjue7dL%-(Pd=)wy;04w<-S91@o1)la| z?qfR?d?IhxC()o535I*$9q0-;sX-ZaOK)(hAbm~n^{f3GZq90Mz*FeB zRP^+JDT#+?h%dld1?{@++FU@2l5)@A>eZGyMMsS-k%0u!t3_2*y(;k#{FIQDtmeN1 zPxkRGZw~Pw!?{dxmO^ z-8n1PSPK{>?9^uVb;3@7K};k43kNuKEfH|C(3pzU!O+nF|Lbsd2#JI8oZhhT1Ue09 z+KG@jw9tc%Wc+vAMIW9}5s)CWe^aX688kC+Byl7K3ynJouje}<+8A1HQ%=F%UfMdt zPmg5mBIVCGjJMtEXFcqlz+T1x{}6Y0jJEPsowiW0Hr6hDwO4QL-7NJ}zm^$5#UUa` zKNbt#O#MR7!Rwv8`s1MZC3}M{oZZYmkP-dbl#~9V+3^le&aMz2&%2dhc~kjEx-GZ! zn~r~rdAO|A*sX=icq`@5NAL9UDaR&lf6=Wi&ydV3}K^q<#a z%5}6RnODNOC5HMI1W*vSesQ2~NFFlRkZ+7M%^HA2zA-idC?E`YG4l4Ry0S{}1j`I5 z=2BUW#q!6%8Qu8cO`0$HqW%4E zoT7%;y?5v37mKq_yQjac1Ip9Fe9K&rnOCrEKFzeFg%pPM9`;N5w(Vp&Y%`cPhz&V! z$b-xb6$S{$SHQJ~h&s|16*$w1_lQBn!!&SW%&N2SR!hFlS({9O%|Zt%!$19CoLb98 zuT}g%oz*P*+PjjH`KZ0qphccre~X9tX7fv4mh=M!H;8l$JAOatqzR=ar_oAn3m*WR|F$^LrV0%OOvVp_gQRaNM3sV_2A_D;`q)Ti3q^-AU5!E9+s!DDXCp|Gn!tS ziRe?qqLp(=@mOEyNsZ;n=f76$cb8_Rf1ouK{A>U zW>zB)CUl|^MR^?qq8?i!nR7UP!Z|{X8O2DQtu2m=V{V)fO zvzWqGjo(-f7L>tmN?;(sLK&{Jxu25wAj!7;(-(Apc@POL8q4wfIe;#^Z1YTWV5R@U z!(owDE!sZ=URk6<+q1>^Cb2%yEJnF^OXMTr+n@ZkyA(oA4%NCf2_B(e(Yno7JlkKG zTe-sfA}oi#j?5BKCh;uxoQOx2tnM{GF3WVW*f$OD1G9Z^y8lo%FkrQrEQ;Cua2REv zz=02YTX%tegUpCKD#T_u);EVwxa_QYKFRP5$g27Sq(zH>R0*c-L9?%Ab92ORtSqFaTwN|OQACGUd-ukrx}YsPHUfs2Nt2t@&bpvH_Rc0c15V$kKe8!OG~wX+!ov43Fr< zCh(#W)z(?FzH_S^0LKTm5=)XV&Olp`+clF*!H$0AwDgQGHKwv9z%`&N*e!pHX<)zm z-Is5K=YtCsvb^JAY9CGnuy#=c!jp9=97Mrq$F{b2u>l25bXhsP*Vo<+U`{FZAA?Y{ zxw-|d610L0vnJTZt&wTq83Fq!{eZ7|595TDwC?~g&MRi zkfE)Bt>ALlo0#Kc^`ziVzBB({|uGSL_? zM7B&cZ{rH?8o+e#L!$FE>i10s`QrAX*;Z1JnSF-w`92Kix$@KJs`N3&*g z9-R?Xo3$!4^@}**8~S$RJqkvK>4c3QH~4jX+C3Cc?3fA{kmI_7pl1ma&UMh2?e7lr zywm*!6b}b^o`t%Ls=k9^O1fCXko)=>2p-#B@{Ad z2?d77%zzfJ=I7xR26H>wmoBvbbzOdLp~K@ zqnJ&-)O$TyM>`iD#*YUOcoH~4zlbMcv|igst$33Zn+Tc1!s21Kgo_FVk*wQ{qKI`> zXO|T&+lR>UI8Xi$T$pGq-hbHP0H|6NV!-crBkv2SpO-*1kqEr{Jul&p;}KO33-RqC3kmF(EP^7XPbTr2}`JouXqqYH9In*Ro4P&Pt&f8tA+9 z_z>wfobS8HK`1|vDu}!Qx53t)!Kg~lU^?e5{9XOWOG)K9LO4F30h1e<@;ux6x0r-o z`&{0e3Dwu;%*HhIIy<8{(=5Zm56auFzbol+5%&<3fItf(c(&%N{iQ(2bcc^+Bdzrp z_FHtnTBp9oKX9k%nCv9?X?RO29|3jo?i#?lwf2_181y@T(zXso?btp%a7l2?Wjof% z*beZWS?2w%-vj!@*2pQ7{>w@!19tsUZUXBAD5cWscpHq{2`K7gsXAm-c6<>#;d0my z3sQqKuxXSsV)txW@1+Ek;vN!Xf(ufAfqLzH;@H@0Ch=!+BI7RP5#Fz{I6<8@aY?>8 zo+rmSaVM8pJ_a648}dG0w^YR$>;rI_-Q@q>Cl0&6wFU)~t!pRmc|-zEhKhvoWyE@) zMM?OBw^K znB3w+JuX!9Ff%UmBwM~F?fgakbAl3sHAXmX^4BpSuQUtN?Yi`uDnMeIHoo2e&0_ow zkAP#LOPaXC`#=EVmHodh6-lQA{;UyOQ4diD0_XLwIGzGc6QN9Ss3jZEy8745ch)*< zqU_r^%FVZJC@NrIy>b*?_U4(K`|oDRHrN_i52RntxhyTwv~iq1lOYFiVs6*`y?*WA z;x0LtYQiZdxATgmU>J4TdGvx7Jk>e^txe__q2v0?F=^D;1&6^V>mMfQM#>l}lGzjv zi&z-j{|k$nAMO!#MMl&-1#7a%etG;aSYwzAv(z*BWbq~h$?ifi)ZNUE4fGo|Jlcl? z)?fWog)3k%(a?4<(lkw%ez1yHW)D@?kTuA{aYx6U+<~Df!5=OWY%{hnt3OHw?Kje1 z{@IBd+vxZJDqVgmf|p#owqFkZf3k3Cmpn2XDVlc+sBhm2-I^;KN_^NJKU?tgsFeCxgcPd zbwl4`eD@{fnC%#eDoN4;WXquYu1g`^^HrM$v`0Q zrNWqiyQsr`oncjx1uIM9Ru^??vR7xaEwCQ1mAwt`om0u;}gn(8+%q*in?{)R1u z!h;Hf)gEB{>1aUD&!*q0{pZ_=gk}Pk`^JgTnyTy@&>VG7x4}Hb_gGb3qcng~X_N1# zfIkFSCvT~I(?0f!Er_SJ^0v|Wi>tev%~CIw%{+x9=j>C`3wb1lWL=*;$5WfVl)%c0 z{hO|mWYN=%)*a3`BS%29K{WCePlvd!IEHx0kl>ni@?MJP0zE56Q>&_|G*_j*W$IT! zqzB~&-|EP4*^sR{2us-e5LzaJ19!k< zU0kUL1Qs~wV-kaM?occ~DvvA;%5hNd#14NMWl|)}21aD%39<;QpC0b~8;+4VO9s_NwlBQ(j ze<}WF1$G|d_TqF|2f!xVO2R34ys4W`lZ_BrD=SQALTwAwyh-9}UoO4wyEFUQ7g~Lj z)Jgu0s|y_Tpy~RxCL^67b@@y>0aRb=`iq5y3adic1qg#0=z5wB6)I5Mr`SgS?)PX@ zd2RBFp~15t%O;O(V`S~iA@jE&GvEc_r`wt!oN-*aTZy^jS}m&KEHkD%yd;*i znv#5=!NPh^fD&Mv0R1;UCCnbIp^CY@q8nM=)W7_@O9>C+DJ7*pu=eTGY0Xmp&uL$K z`aY)5EafZ1ZGqV&^q!kBp|u|@-q&#ddk!1uE%aJRdmX7%_^ood>5uiECU*ma@C73E znu6mPFXq5WZ2UQ+^+iz+orB092+}GetMfua%HE;Km>4^_asihAJB(A8%3-{>(awYY zVxuyCCU@Oifp2ov_U=c)4<$^{ZqLwsETm*%R>N>|h7_^Nah=^A=oqB`72Ig5cW6)` zzaee=ck(<=`fN~fKp|o{7je{651*pL@O*F&?6zWY;#&gwdzlZ&Y51rImNY2?QF^Ou zd2B!~9$MEv;H@peZx(jVUp^g8h*YajG}`{J>kr=!Y<)cOWT~^kqFOTgSmZ#`<75Y@ zz2UKn61-j^cz4v)&tO|wHa?V^i@6&)l9k3r4=jpQ(gD+YiBWVdKjw&_WG5jA2ndD~ zf)Z;ncUGk%0$22s=Rz;k#z+6P68=~j7Pnre_}N(ZU|cYMeAo832_2R-8Wb4golO@f-8Mi- zz}%MPCOwVA{Ou5nrh0Z(d73vnp%L=q@OO^+5|~3PHde>I^_#_pNc|EK;`NzbLt4MQ z=vPkt@LSp5KOP8gx!c$7^S|_gN6!^%7PR`vQ?;lRF5Nj7P2JP6uEW%#aB&Lj%Za)U#073;x+lb*NhX*&z=kCwdb-utI`yy#am#V7tPQLX8ID zmhGBbYta74Yeh#<*{NB>=2+kJbZ=pWgL^!al@wFcH5KqwTbD;Ubul639|7u%i|%Gmp1(#ZIX+mRkcSl6tv&wlKu?L+{o&?Alh|%$bIQ%V z!H^dN?DE^UZ8L$friLYJ!bv#VV#`C8K?NLa?2E{Ez1F1J$Fax_&@T#Ja%z$;mS4m! zk#tJR`hQ`4Frk+Ul777&gY(Yeqv7$E#E0wL%l7uR-zyko!BF`=ad=qf?>ErboctV( z>3`B|vK=Dm379$EElyW6Xfsy+ftHgiQ(Lh*QP&L9=*pq=f)a!Imf0y~w&*V(o)Mkz z3AlJfFG!QL=Q-+1?g(ufXqc*N*qJz3>+>34zN)SXm@3#lD3lv|WA%rH(fl`OXs0;4 z$egy;h+v0aI!tY&Q|hfG{U;u*(QAXp17?EZ;KbASt8MLV2lOVqSVRAU`ifF!>-YcE z*?27qroH zvx5q8^9FOg{}G%K8ZyLikg_6ph1pcb{*R=v;WUhHN27da*8X6-SGOYUtGpCz4$*{C z30fi{GkcxIi89e;Xm`#Pj<*EyNdkn7iX!DZp;e(vF9G?GftE?cByl!gwLII-3u79C zSmIB!On9;`=2!P;85^Guo*ON5Mdz(;ZC&k|D`lzfSdbg=^3FyjOw5T)jB9G?Yegr$ zAafNd&2){D(0!?EsGNWL9nV$#lkDP+nX4ser)^?YkggQwkS%r}TZob=cu5f*icpA> zVfjcNOQ0X)V%+Ic_Ce7RiE5}zll2`Mk|&Tw)|T-gQV#zG`m7ea2KeD02Z1XXlH#~qk4I3+kj*t$d9Z5Gd6-2>i^TXdd9D#D6nDgydw zKe$kN0dGKlkX2*cG(wiqd}`6op_DKB2VaN{>1J7H`Mnjl6C1R)POqGMtkkxcGL@kb zrZu~k7aX_Af}t0lKjInlKwu;9IclMQ*-(@~rdgZytxO8vI-W#({!EfY{(LpZX|%30 z_zOO3ellNa1S896K~aS~e~`vujeDK$ z_&9f1?r&CM_Km>Piqw##&NxeJclX6g9+l`1)oi4Ok!D)nb?YI%_Y}o{9K8!EbRu+1 znpf>as`>xzEqUn?6MG`7E*c%-L{5O~_ZE6ZgxVLSbo!>2tNK`UBurWA{e(N|n42N* zz2>J{cCz!UbMgZd`$_eN>NfhB?CW`{-XHhvuRQBU3UzAusEio76~0;CDIjh&w69W; zpTkKd-xXJX;JMna`XW}bx@eavt#L1vzgI6K7FmB{qRg>j->pwwUWfo6gdM&flO~33@)fzEll)Ru zsVP9-X#0oo4waL%VWNa?He#XsVB2;2e(ao=em7aziLNS@ zlYd4v!7`7*lp=QRm($ALc*jFeLhkZGRjNv-W>Wcu9b#nva&AKCa?#+zh^uh$%=iKq zCl_B=@|N5P)T4tji@#HBwV>8}v;Xeyokq!ZDB_m`1tFdYxnQR`dlae8ApSRcl}ZM- zGS>Z${9aN5xz>h3ybJRa(9UE71Nm6jyZZmY=hhDYl5it)6Bc0>VVe~@zG zB3Bc4w2A~_&_u(1vK!MP0y>(oX1mp$mGNtVn=d6ScDa48at)WFw`-LzefP`KzPIz`@~3pilRt+N0v*pZW|+wT zT{4r9lag67)&KT-zy7JSf9Ee#g%qmktKIIC>9@ibe}>P_tnY{Ois~Tes_zFw!~c-Y zo7zd8{EIkt8e1ORNLAUGo9j2f)flA~8{M`ayR=G@SCC}G~-VADmZ5&!+f zG9vTBoq6N$M5Ckoyj(e|YYF>>zo7;~{@P$17gb9VYAAkCSqzeoF zHy-h!r#v4zu`4>Rz)0{h5^FHD5~Q%K0&;x9fzh8Bu?7MW~`-icR&sHr;shdDJ9(%Q8zu)z40p zMTe%3-dZ{vVbvnMIDNHQjK(k2I>qe+9Dd>vnK{kp=hF=}oKE6YQP2bxqzJk?K7LdP zo_ZK@BVKi&SCq>o)pCDp>ZD*d8MgQH)q%3HSmvW1Jt|pan3?dr^IWrwBlGA%3*+tU zgYUMk!lM@*jJKGqsqP7JSP|6uo%n9=BvyvgxrY z1q%)mhg{=VHHfwgU*(Ej&e=@qe33o$aQAmxSmJYNs1Zr!SAMbS0p7K*rR~|p_oMvv z+z8BbuJ^vC`1#~RgUwFIK4QZV3#UZQ5QBG07d5l@qJ>t6)OPfe zp#siF=`le%Wd3VcUl%$p^;~O*^B8FrY3gaG-syK`)p5w)wroemx-R#=R|*)^DQ>LX z-+HFvOgRhFoMHUsxo@%APF~DZygMpTe=?3Pw5Xw^GL)13X0Icu*sJEAL5oQGf?~o+ zj$EhFrAa_fLW-v$LR@BheFV4NA@)}m&o*|F!Ts!p=i0vF-Xha_jHU#IbP7!=Hwv6fVjCWrGM_@xoMz*#eHR318 zikm9+bmcnA=M;CYnhdO8J>B!w0&@`5{)lFNJQ&$|@)d54zvl&2`~h;H#zow^lL<%| z;9>Y}%vULuvVVIo0C7L3FGdXv^2-33N)cccs_Qw{4a#|h34yf{osqa z8MN|kU;KN}cbc{K@Mv+xSY~WFpPtk-s3BgE^L4fILZIoxD#7qITlIML)< zNKr2hL^#G}O6hYc^S`l4)=D(>*a#@AlzwmR>R?rH(tDkIbHGT{P^! z|Ku^#uVlo;cpsxd9+pVECS37AfG)}&TxZa7ydAc;tgK4tX|`zb#%%Ao+b0V!rY-iF zB}sz!kxZlqzAh=tg`lVS$cD9~zN>^n#r#5}8*RkoJxYYZex!lEiF%+8g;3^_&J-B@ z+D6X66)UoxI8C3Owccay0M)uBcmX@tN9tPqKSaG_bY0#1{oUBMZ98e~G`7{)w$a$O zoyKWwr?J)8w)yP)`}>da>{l7VQT9G(t!vKtnfz3y%CZplHL~spR)3{l$VbxiR;q~> zxLX(<={f}x_n@@z9u7+0BPF4|O)`|WjjJrSwU!gBoE2$1eNpfQ;|=SN>Vz*xv!9js zkG}sCA3f0=x%q8;*?Z&X1?%->Wwpn6&U2p4+u&xLJhWDH3wi5e%Ji%bkNWZW{!{lS zp|*CO@7ujnQ?mN&8U^2!VqIUwUS;zR%}bNqVhyeL^!mivL_3{#UzJn5xbFAlvfBI) z*VrdkRZcisap<7EnB?GKxL2b|HzJlXBGV{iO4?0Px0SvB1~xu)eumyJa?hNxk{x^^ zW#GwP=FO$yNWO40K4i>(7P=8ydtz7TyYN|%?IB)}Q6r1uuW25eW9?=s7DmV=HK_DV zGS7}%F#Vz6x@pjXRe zFBX`3*Am-cDSbw<<{jfgwTV!xn1|^|;L3QxCgSY@-i7Twnc21CvVbH&SvUCJ`Bm^> zuspry4eB~Da_`M|hPsdf!ug7%P3 zOZ>@3B-K=2r6)`gE!Ly2vWnx})P8xqnJq7tL3s?NxUg`qM`RMe44C`ESt$?r%v(XO zuD8Yd)HcppJr#A8JZ3*qpBS@J(vsDjzaN9$4G!xPshq&6^IVWEJc9DR#Qam+$a?ke z>T?K=O~-a|XIAC_W7{_xe6`o``0caF1ZjP6?(7l^bB}@iGb!xWqiTM>JGW zbba7JWf%%5y{B{;&+?3--G6CG`9ANgPV{xtGx>^xU8UYYEI=vM0iy^QEc1@56QT_Y zdkwa+!$#^I&ZCs*t0jbKC+>;9%D2opCq|qLqzR1KmRDb*^M)P+HUXCSL)RaV{V5H7 z34g33-=^0Nn&Mb323}AI{a_Yl?T}uob2(>^tZCh6zZYAho{Y7qCvZG5;Nwe?@qE(l zz!p)dJ#70Gd3z?~3`^S7-q z=W6*rf4fgO>8;l29KD%n_+m?R(egKkfV!cz+yYIPo0Uf!#m)4stgNR%@bhOZ5)4hL zI|Uuliv6yRP|i<9oxAt0_egK8-330*|Fe1R&INg#{kw6EmBa&S%Gt{BUHX~;z+Hh^ ze}jRQ$z~9+63=dhCnYLGDBOU0lTd|dJK~AJH_c7!a6jkXvC~}ux=+!Pk8>zKT5H?! z{zKoPEaw+%Bx#)ovAX;OiMZ=uA|Z+MR>-Z|_GP9$kc|jIE_two1CVS2Zaq0gC#X zYS({b`=it7FC)`%lWA{CfRRx6)9G4_#m}9T~KA%=^yW{nCDmb9U@@ zGft+9TOF~)=RCn$nAz5wck&zFg;j%}j*5b!+C%9{UGwvJZQnzvm0K07*k?Pry*sur z`d$lR{_P-m5Gr5?mqbBVvA}RUZw>Q!kc~;nzAflHTo6MOgD7+? z7V9`!twjdZ(;VhV=A0caU6N^mtzTJj-1A{W-pom zB3yOjoU*wI24m)C?0I^6RZN$wlCZqQW!0srw+2lh= z4S{q>AEwC_{pcH6R!^XySXbkfeNR1z^iACv;;f;o=e(v7L?VEdTqyk&**&-Uml67A z6$sK2CyoHJRdXOGc*Zw0*nQf}CIuYLBbskUYmGwtG{hnh_w<04VJPgKuDIVSl03R} zMud_JstahDq|@xD0H6rK8VoIpW4a#n(FY*sd2Z7L+_3|CCoCpTnA=r{yn^RVEWOY&Og1`06INrh9?S? zH1FuhLPZSv6(28cdTNr53Q}9AgSyC=?8EhQX{@q&c2L)O<`!QMeR+XCNyaA@gOSN8 zeJ}wApX6{o;Y2qiewt!RUVaw)+!M$r9WdQ-tIX5SN+OZO$r&7M*FNLFqRSMEhk$bW zh7MyU{c5>8u9hHp<)oHUU`r+GTN;AS}OPYk%DGcq)omr|AeTx3FJi4^cd zgBtoLR*+;GxbHyZQ$ZD&h`Qlr6*`qauXQJ8Rug^-SwnmZX`WDy_wIT7DaD7iW6oWE zZ-OCG5W#4Q+V#!j5eL#qF@Qgdxj<9El5>%_Lxk&pb*xc|l;Gnat$IZ9)WqSlAQKm!=Z zSO8j869m?g^Bc)~hNwIR~cRKIm^;rcVP z3ui;aEcKc%41TXDKQ?f`d+fBWEwMw^UhlZp#mfdzrZ>Sn-63mr@6M^B|5Iu9p0CrH zYe6;QN65|=d#oRBSz0zo1uy>>#z^x3m;ok#$N?)5JN$A$A+V-WD0P3dgoMWmU^nV5 zErhs$&?R)w=2-&F)J0Gkm|7U{Y@>kBie24+_kH)}+X-7P)K6O5u1^+t8ciht!D6q| z4K8X0#Cw$Wq11vg3`KTm0dq~dA|Q5yVO$tj53mInvV>Z9)uFyKLt|waH+e=B1cC(q ztQSZ4IKvD{5eo8$A^#50j{y}_K}!BO_ZYtVTJVUeDNvK*P&{!DspFFRiouWYy;YD> zXouOt12mz-aW?3&P~i-XKPd;}gMxUwx52xGwKjA3lm_Z=&JCZ-g6$Ci!Mtp33w-~B z$oLhYsq#^~KiCLxX4V|<=7Gr6f@m@jRMK^-DS|dc2*=#Cyv#TUjT(?nKbWY)T17sX zCQRFlFhu=fgAS9+^?w>|*xMcq)DfGFww8T@>)e6yWk;V7pjZ8gYYG`+-uAJVM_w(C?LVP0=Qq9mH>-XXmj<{+Lr?WFMR`ijU52r zZyu41Zys=Z#gg;Q7jwZc2lba7iNUQ+v-R!P;e~6x(M>N@`D%*S0aX)>xhPH6K|Jy$ zNJylDR2}V9-`6B`0IR9wiR!LOI5;XF*Z;E(M7NQF1fkHwg<60qEs_8>!gea&A*x*Q z0L3FrO|*&n&x%|#D`RngOFKz3Wl{S3KRTNXKt*`4lq>QJi_uF?Tz=0`dWRqW|4IG`s0*H0W`9cm|wr zoG*`eJR^|hmyHdcZ4E&s?FG$*?ewUX%(%smAC{2{<#Dk!Fj3{Ou#8U+OgHz8E_b6n zdkOw;`UyH7ro`t|5y@%WZ9)GV{X9#=8h~L#PYmk3MsynU^B|wY?Di?Fb99sTst6@K z$+-fS(Liq_D>9!bexYF?cJ!KH1(?!_Evat-2l~gvXEkum=>r#2l7swR%LNxFzWbK5 zfDphz9$;L>zeghb_MeZo2ykAR7CU}(Y^3Doo0|44B}%YIGACd;A`}#0k%|X$_AW6k z%ZTb2ZU+I)fXg=_3`hm&htvRCItYb6Kz@AuI8|KXia=n2PFl)NU(HlrNYMcl2N7EU z<0?T83|Vc0M*fylSe2ydn4racxE!9a=IJDOFx4c|Zhi?P!=`nxb%8amE!D!@xd?Hq z6I`L_NEmQ&e~ko;;4(zJ)U!9X8OY^exxd03nM1aRnWt%BFFJzMABb-G()DSk)JoC^ z_hDRpW&g*L$_4Mv+RJkahz1}3C7S#Iw-)>#uXMYhYDx7v#`q%b0^+Uw{=RMkV_V|A^;p?aJLG1`P1_L{yet#8 z4)nV$oJYU~3!b_WRRg17D-CeZYEWl689{DDyH(6Whck*siNvI8+@AItEeZsV_k|~m z3s%bEeCs&2S4@4Lx|Eq8d_U55|joWci~I9GOfw)$5Y!@Bz!|MAI@cabpvwD>Vwe*x}} zmaX+VfE12=W***m8hPj#>fQjvAOY`g{%-&x1$`5S`R5B~Y7HuciIIW$0{|T@tnUNi zveiYd#d-eORh~`8+Zvth`BcON0(~5CjLSsl0g{JE+lCC^NQed$Ngx^(|9fcT1!17c zS7igO5XB#Glb?UX2FIVx2Wi*>q5U%0Sc~M==O{01ZmXzoEAkH=FwoLBl7)YWo1jM- zBGt_X8PDIa%F zYT~^Gt%DBc2sCIn6}77OW)KjapIlg3+g;)808M{1(!4dc7sq(VS7oxd;Qct#%QNWa zKSS3}5aQz=TiIUZ&#m}8P8hoD82j?y8aV_7Mk4C`;%A#% zozq;NS(hwfV1&am3)O)tdzJ|j=dA8&gy1?qE@H)kMqu1;EEf|XtMHw-G2(m|B{n;X zb0LjDVDMcyfe2I_Eir*e$6qgUVEP?JqTLc8wPMi~JU2x)ENm;fw>QugJiqSwIN_l1 zb!}+x40hAmDEqynth%6}!arGFw^8WK0#DblaX8F7RQwgil=-xfzq^hz zmuujNu^i%FWP7_8ALXs=s5uf6LR<_`Vam?Y^e8)*F~6{xIxJBL8-b5-HyUkaVRMCJ z7S4JK1WTTeAUqleb-ob!)bNow4{lolu%;**7+_Ic1j7Ja;1zN(K-ftif)UYDL)Pd| zO7On?#zqeS-U5KL23s7THH+iOy8slQd%pnz-A_PBn)f`&vWl>#ziGRAVo4R5r`#@* z17_o^3F5+^v+=PYuCIw%QfL#14CG$`j7}3(bscRpYuIC)cLE)}2uZ~1Yb5%vBONgx z`7qKadWT^Fk&|1+$ERH_;$|%ZouGtYHVMj_jsI*$wW`4o5^tBV`X7zQeOMpQC~v(zzWCJ zF2(OxRe|=K^S^y|CLLW?J|?Cjr@uRg9KU5=abb_{Nv(&|(#&8#9IAKLnhpjQc9H*~ zdCQ+vo1>O+d1h#1 zW0GH1T}AD_G+5+`f2bT1mQvH6+ML_neOY2{If)k2_ZkN80}1sVmA{I8k=^Ctp4~N? zZ}+!3R_kOv7lO+@JUqfZJNrcET`A$~C}Td7YOB^MNg4aXB0GZZ-fu|C4rhj`OTRZF zqQB{ooNWeEv){LwXv+GquG9qXw4$lo(Xt(0t{1a6-lr<(I2u z9~Ll}u-g|EZZWfhi;-~L)J*i0)@$-TS0@IAUf#6^vXnleOG0kG=h09F{%W^Pvs@H=l?GIU0qXZd#Nojy3I6mrrgPdcU;h3ZlI{F*f?f|gEvvP z+9|31Z)S9Yqq&K6b#+~6YgAD|QuK%Rl0auBPkODtytMxOb7DbhVO3D`O^P*QGbAq7 z!4#gj8shY{!ok}=3(FHc5(x%^r-kO1T0EEE09|fAXm&`vz+v%Vmo4n-(4(OM>*`&R zZ@ovx?eexDMOZ06qp*h0L0NH?|LFWbvK@dsTNFt~2Y4s$Ta8Cc!*a`;Z@sTgu6lb+ zo$d#VOaubl=k20>PsIR!?LU+LYAleq0pf3lH*>in4*JvNgOkwKxilV;K+?rlpsV!= zPi*|aQD_Hjz6;>t-fkMr-f|}ZF;`%HVrYFO!qsD>u#ZiRzoZ~5=i&45u|LdR=j|n< zY$r*X?DgRwcjWO8+14?zX&aEN^ z&BI{oUx;C$x~|j|0~qHf7A(d|cFg@`H+lMN&--rl$q%S2^tecLK}S@4|CeX;Q%0cr z%ggt^gdt1eEln}KFnz1-9`LgtB(r z(X-7OoZJExtIP6>_3Fdf@9aBe9XjJZH57x};~PiDr{#C+fA_7WB_~L!mVH{Qg{kvZ zcpLh&n=lk;w89Xl!o%9CYV`8fG>{#fmI;^tP%iQP<{W$c6)Cre>|5DLUR39ZJIrLu z+^;LK$>$cNZcO8Q>Li6j|7}T1M&9hll|xwV3(rOt4EiC^7^az>G|$PGYvOr75yO|b zr$Qe$#*N_w1$!@lzKB4Zkzues6{~u9wDcfHe~n35NroPmgH&xX{*Wz;!-Trz-`Cju&f&d;Ra!*hD`i<(II+ zFQ7wda!9DJwPFXi8d{l7h5_gIxVth2&Losx6tGQ3>>q!kHHq z2f8QW%lYU=wm`B>>rOWVE9ZeKrEPxi^F7N^;YmnoK$5p>`xqNStPjB8FgJ?j*Cce3 zf3%Uk(3A_9Qu6$r_-T14=3YKKEB7Y%n`qY~vgh%p>&Q+Gk>!w5hu`&pogdCjYhtRh zb9WeIsh_m5c0u~b7-L}r+p5hxV#!J@&Sii9xsa`sHcm=Y@7_%0hT2n}>(#~NB44}8 zDw%iCWF<_?TKj{n)DNbxO(H`#;VlMR!{XPmzhG`Rdgm`~pY89-a{}>U+#m+Qz?uy6 z-P`rC2X|}uhM4fXIb{(APY;`p&oM7ZJE%;c451sB0GmizP&w@PMq{gig0c%0`g>9} zfKHHey#m+Q^|pkiQ|sTUbZ_|qOosprfnfaylp7aMClK(60wORUQcb@rQa3|tkn>9v9K~&p7g=8A!ZINf9^ej*3ilMfDA7 zZ6>9ndCvXKP~*Et_V2v;{oB0rtA1BB#->YJM{M*DA($P1w+t;ztIBeBcY+bT%S8vg z!r*2IxxP>+c%NbHvyeb!jGwUrv+B9KHWeiv!pmfBu>wq#Ll5{&zUnQ-VT^!&sfP?){CysFaWtOudpmQk_d3;Y&p1K@o3nskwtf=~o;l(Oq>7n8^q7uK zJr#z&9BGM{)So|XW|A&wN40~Ds%C+2;wJF*Xj0UA<=1M@0&>2;*p_{A-@%09Y2^IC zJ70~y^2Ym)dQ|+}<38P+{Ax?MG?c4xT@xPQY}Rkz(`<83K?UmL z@!NRyrpltakoSsY-q&`n-LO*0-HYiZ+xpSxCB5}!{Z_Ypn-Z5e8RA)9EcG`^RTxvFJV5w;Q*kY64Xd8JzGddng$q0 zJ&1tX9I1A^7P9r2+Ug2K*KWYp&kdI;=;^-2<4?0^Q4N&O09u!@B@lQaFs=snI30Kf z#JmAO#u@e-8#E`v9OPQ=PX&Ms7>@@ydx6P|-r%3B|HJL-j#^7y03+6p7x!$|^NYmE zzTMapP5@{ZJnl=<=lqYY@^ySoQir;6fc^1L`JH#_581Rl(fw_Eqv7|v_Vh0i(U}aD z&NM_L1AqG9W|XBeiv71B8dqibWq@n`H0~@2t&8$6I)0%|n`6yN?=FTMf+2^{zi? z?Qk>97^|FP+H?0zlVfOK)44g7QOS#JbQi@L9@+RDB_4*muJ6yYy(wAeBz8XJNXnk9 zOCxW8MF(s@M=5V2Ir~&D&H@BeaG;f#g)*$f9y4GMVP6%j64Ju}rfr~PiB`Fiav9Wk z?so5T3}5knisoU4zx-^g?(!d2-%Up{K|g~j65UogHf|mleGhw6%izRWj2+U(6;YL0Qa3B{R-vnQ z-<#`2_A%U%ENU63)aZWopZ6N+)Z^g$izI|0Suej-0x>`!@cq{TBd7l?YhkQIK2q${ zGOrmrGy4LeMG3j@O@q0GkNoL}jFUONsPvjj6_WJU`91@gW6lpZb9rigM;NIw+VBoP zzqn*HZhc8IeSym{s+77;ls6Ll*QY1g3 zqf9Abs{+=af*K&o^DOw|F$rXjZJMmqmn`Q)g}=IJ63AyW3mZ@L@tTI9wKFWi{|IhEWG0@OOFZ zrgL;XH(=`TfYoJn(L~!{btFCUq=4O>M^e#~0WP%6)w}cDMCg+0 zf3jdvYwA3H;>>AY2ZO?0#I#Z4_|^|g-=7b5epmC8k0AM?jf^OnNzgjOtx0I{5q9wZ zeOy7w>Hlkg!I=CXnivzg?<<)TD1PDKa82le7MX+Rf9gx=`P{gVE8HUDTTi1?|lUd94HOJY}y~mp4IMy#UvO5 zeE|XiFdPPG1ifQFF#_|grhUwT>HHNaS5IL_V2J?ndHLzgapv{&_l7%Onj#8{9-M>coomL~Rx{1%1)Fc~6!pd3QB zBUJww&6FaVUY8lsCz@ZpF{D-HYrr$3gS(znDxA7q!ZNcpj+q-UO!z zSly<{j6ei=N+fg)^JMM+JxTR09dp9sh+)jg(#agX_|)b4!_G9Lys=Q576?0-cS+l7 zS?u&#m|4>uy3jq1WZ{8odD2<4Y49%vn}Vum%)4svRszL-PGRE zFfs1R?YPd_#3iVxzX*;W$CjLE$fLG*+q_fBOvgh5;mTh$ZkEQeuOL5{)djT)9>V!4DbEDE~z&=@0Qf+TYsPtVE%f>-y zy0NyF=R9+hrvwgHTN~G^GR;ohH7*Vvir3-{2L~Jb*s45(Tl}fv*;+v?S=68+sx3CN zvb`p@xj9fx)>ANR9$8Bj&(q{Dn(=4&(pLcvdl#?OGTL6@5X#s(L?lb*HabbHi< zAWJ{_aDYh2;vfgqdGnC(Ed*LMPh3qts3s<=&9Zdb*x6Om^?b!U{`76mjn+22KsErD zPB*GE&DD66-HT;yxF>pX7kDSJt(CPE*5$Rewbcct2PteE8+cb&IV;@X6()2%%5!TS zJJVX8f?Xmv30TQL=T_zc?nd3gXyY^_fLcikY#hb3_vP)q>3JSv()T$r)sdu<6g&c3 zcI)~1y8HHO?_2Y5V6JV@>3CA&E^Dx1)#=*vcW3^wtVx6s8}h_*V~NX&<4*1=tUP8c z!WHobF+9$Kz#_{?zU1g=q{KvhnQNMferkf1)hRNO?e-OlhEJfU%pUsR36D5DWfZTV zf!e?1>;waCr4DjrS-I(b%+xYd3^$htk{^2fU?;2M+^j6(XwcvXiw`t7FDV=`x|e*` zv2w$!8@vJBP+^kc+>KF`WtKLKWeqhXj2vW*b>UN`NO3C4w@!u1iILWH<&DYfuY9%O zL}}bDy&^sNtVI7b=?0MXikJzq#8kr2&&Ek8)4-TIO1Y_)MkLTf{=IFrqU>jCBBf(21C=*Tl$S33cS2#D5x+E+fdNK)t;2z~r!@%r?*V4ovSCYe0mRbC@w17# z{tqklzHMd<$7Z+tVlzx)Ih;-krAzP&U}aUF$zzb;;}Jv$d}pjluMOGii3(p6sESOt2LjNJb*aTYS5?Rin$S=zh_mJ2(5 z9qwIVg=~_;!$)Q`5fMBne?4(lU(kFR9tg-nFw}m6_;m~TsWrufs38dGKdtxA;Z{n& z(#$W)5maQnWZ>YqsvU5oq{uT~zGjYLRRw#OY1%G^Toza+^!a5_AlyZD*5rPU5^wSP z)w>+xhq1+-i|_+I$C8%vvhrl}bB%Bv-cUE^7dc%Xy`6=(6_#uFhQHli{A^TBEL_Ie zlLidyc8xE$ZlSGCkN22|*%DFdZSA=?5bUh&ZR{@Ss_dktq$A-Gt7w^~C+OfJr+-L1 zHghTyEW=tXGd&m)-M^j|QE%;$ z*~ds<5#C1RCHOt3tu8v=!(GvwdSSM$qHku~f$AzgKOjH#({XKINXQU=tfZ#fGIdT% zcRnLqFF7$)KQl?V39f)Jx5=-ZrMCrsx5IC9g=Sh^(kax67G} zxxJvdG>tVS7vKFsT}sIo&FX4lCBCI2t7P(_b%77om6(Txi=A?FgFoNg#>?+#0X5fM zs=1V#BZqy$zYXOptc=w7Tn!zil}%MFT$GDrT;vpeKKYZgv*YkFa(zryNJLx~%q$-w zxyjmhpsB}ar$j@x`urwn#_Sj_s`Is!GniA=74XWEalI)+7{(6Myxr)L7ey%0N}eFt^r~6h-x!$xq0aVjWWK7i%;x z-pk#ibEQF&heDS8!fL|AblHD3efch-=N{hXRXcNGwx*Wkz~5yUGp+;)DB_pJTMp8# zJ1LhLv+>$onmIZ;@miS%i@IC_yaEEeO4>Slno6_$Gt*kzvGVfC>We`H!l_bj3R}dN zh@YW9Kn^Jh>)H#-{Gm^N!32%;AuWVs;zQj4kblFzd{+w#J4vZ{B0>$Y*TEkG zHP;ym1O$>hi6lQ~0#qPKgTWGrJIft-OtLMi9ASUO(1KWr6$IxBzjH6nErqxdNyhu} zp}?~a^00D7u@Q+hG8ybpnTHmIaxC0d^zk57MIwhxC31Y4(pM!kVKNfR zF8&cID@x8hqSOlTyvzMo#4p5eb{MUjfG4&_JUI%xPq^u5!X&?QS>9gW+seBuCQr&z zM_C^eKdQf8*y0cESU8FdeDolk?-HN#051pWD)5%#AAVkK*Q*n1ILb~A27J&+Sv0y7 z<}P!{$8->LynN6rSV&Unzm7Nh=;8_iw5PkQDl#?qFEJxUq1_;4 z3`Y3~IMA5%a$;(--JssC>&`;=GLS1oP5e|MoU-aJFz(N3rq7|Z&+iSO?vjUl7ZTYX zjDr#GP{4o5L^vGx+#KY8hN3t1ywp_4j3KORC<|X8Lj#$B`(|ekSf+*m7Yu+aR+3wW z|6vpU_)BJ71`w(NdBgl;>Q5|twIBr|4QN|b&pxB4mFtu6sQ4#o(l|hFg`b6V7Du^L^J66@HfF-qfmQrPq1X8BDrln@VmV>?U4 zPv_B(pSZ=d=Hc z=*Spz@OIrpvhYgI8I24LE^H=xji$z99p7=$eWWcFd-igG-{z;0g^Af2p22s@SH&;lse{$IH^2IlkHQeEZl0+yH=^~Nb#H2N&(qm> zB-A@iM=x*hq^;BXdN-#B5l3Lh6}_JU)N|xf6XG~aiae*p^GuiHR9!PX*2!?%#fS=-FrX)B&o{_Z`n3v6^R_-%iqSNE{?=L+0t&7BWg03fZ_k~Ma=wC?o%xq@+8dlDpYAPxiv z+Lh5oSP$g^N0G!^r>?>>28{hAOW6y?7~%- zdYj_{yP?MVwgBn}u6O2C#!rV6Ql=B&DZU?h z{QoyHEsz_kpL#WPBeElnRrQW=zxVu9r4REPT2njc@nbaTC~^7(RSI}| z|G_Ax1-Lu?1zIi)Vy-IoU>rQ~nSBjUx&V$L(ZA0<*G9oE%TE!*ik9a;z(XbOYXlW3 zszRgrWudi!m80F$;rE6o4|3+d%)R;V-&=x8FW032o=2|By9%*`|F@B(ZMf$mcq=81 zO(4S0Ywvdmu>LO?1*rP&p#F$hGoY-}f*5QK8O*j21aSZGIo0B_(PS^w?2PIe44*W0 z)If}7LL+w5P(X>IO(+8|blwkHK@NZXs}~6Un5p2wOsh&UM(!5ZiZT)Lyly6_gFolOaw&DFT$Exj9m| zaJUHW`uaLx_g{{QiG_uUsUZqm7ef?FCa=pLH_vCp@52Ym5@!1oBP<-YVz1^ba%g8AN^nZPDeLnY_Mq#;SttRD-z%9CwClPeEO>qMU3zykx@IK2ZpEk zSR|kz0^~TeqJE)~yvPiGhq7U01-T)Pwg3tDT*vJN9uO+d(KCR%1jJKs0jlf3Zm$1|zvj7VR2ft|Q+90{DiAxZtjO>@_Uu8+E&iE>`S6zV&=r41>nQz4Kmb{tuY+D<@5yalqjFLVr8fTP{Rj<|LiaV8#&t? z{$+daz`d{gBdpr*-<$rp?^U4C^|Lp-{BeKSft1ph)G!cr=H($m`r*q-d=mF{BD{pO zpu~>jQ8B95Al}&2M0Pmxb-?uZFHO0Bc@=kvVR^Vo3=}fFJ;cjl`~`X@f^MwduR<2{ zOh~*n3GGx3aOlwX*l(?{wV2H}p+$0ijGs>27Thz+$Osr~)U#)TaVj2ZidoB>{_9x( zENDi}-~z9e$pXp?H2XL=f9S@-B~W&@7s7N~42D4e0Jch)eb?zL`9QGMIy(L4c2Ba| zJsjyua8q*~_ivx$8hj2A+@Xq#YyKvv8^n#`6v-(%0gq`)z)4wVKBG*GS`5MfkqOzr zBGOM;YBA5&=<$L=LyDi5F0mGmy^j9Rcuz$N-Yzh{XfFvmnqFLSkeOBD4-I!nrzrFJ zZg)6ZTmUAxq$0Q!jfk?u@O2t>h&Z8qfw&O1Za8@XK|yRRnOf`K${@Nn=^yo0SoaY% zFi}tb#?yRzYM%ga{GYM5F12-M(-K~6?7v^YJn&3}TwdZ?v~@iknZ z5ap+lNl=_Mu7u1L1YwD8wohiHNSJA1)(mX^xZX#{qC{;HgZ=yNJ?li`L=Kt2-sD!u zF<5;QZA;LFFi9X*)FvxyWM^|(Zf|2eRgZ#{Thm-nQqcsQX2N8Nr>|z@NJvre6}A>b zNY$LX=a+a@RhGccNu(hG8=tAV>P*;3>~3$I_Dq`AO39&>;8I^zJEoC*fP=jWD^;DN z#g#-pS>96IR!NJ)3H$Hm@#Q#OC3USGF>RKRqS8iujzMJnsA!#(ys)LZK8*N6(4N*@ zW0Vu@xR8vLxtgttl{yHc7>8)~J}&nt-QeoxYF4IJ0NIzIw>=1vcte-}*QIam+vin# zBYj;f(Cz~w5)X|`A_6)XgDn;=Bm(q0{&(=B<(WMCdU>IOo_VKfVV=I2tfrm<$K@Tr zc{?}~9-^$&)ICD9(3D5^_4+G>q$kubFvt}(eXYG6yhsMAh^`14txJKvg!;cLA!R5T zt)5U|@GiN8-6R4aJLR^W1obeM@|U075V^L=^Ycs#vy(_^5tY=x%bT4a-ELrQEUbna z(Uan>_KpvTP-DD$wL0JXtIqio=NptThD=l3rUae`k^;_RVilU|oS$xyMAh;I^tys_ z*II|E%nO-4zSY@WY)3$W)sjzH8(oHjx2AXuW%GkZ=dMW(Q!3Gn|DLGIsh4&YmCSXd ziIcUp&FQ>eB36)e7yKAm65grza7mbZuINh0;8zTTgO8E+xE=*H1xvY!UE%h$Jjp6B z+s@l&VPkKa_cV#E?8VsGJi*oBuXicbU+D%}NdGj(%j< zs695yD8%D@7e%1!TMwZCL12Rs~S}AzQP$=i?|jJ8O4S7n-+{VQ0oO76k}FJscAMIpS?q zg>3-KEnMs`$FPi0{t%4d8*zt)jrpjkq0Opw(tRx@H8?O>oo|^W3fN5P{pBkrCeSj% zIzKvlN73jV9}xR#uAO!{L~}h36xqsQ9oWfPH;34e!^jknL0`y-Rs>djiw7AWAxJeO z6gA-|tfjpeWf>-@-P$~%W>-W%xLaQeI2AF1MF&Rl55Lv*F|O0NUm13O^?nSsy@6XE|elSB%6uREl z0qs84U33@xVC|qu*og2V<>qEGg>>x|bnK_|PEu^{bhGxkURq6wefTH17WlH}KhD!r zbP^0ZZrjx8-)i9P`0eOY!9pB87JURPo_r+vy9Jx3qiFviGU+dP5dw6O&pY z#DQC7HO%hqNdigtLN76FQ18+6&!P`t=0X5j}!o zI^0Btmi{(V?!l)$iuQyHju0gsEhk%sJ&i3vK+2L0zd)7i%;(e?4fRJ+b)9=Z0?g51 zH;L6kUR%%+!WR{zPx~czuv^dyhf2}K#*+uK&OJ<5MjT?dn^E_Jsjeo zX@8qAc_b?taj0=v7^bD7rH9zf`mX1|IP@2o?nshC+C&SR@mZ0jgfF8v||CzJ7xvh)bMlpknwnKeSQ73pNh<< zz4eaCP#r6uf)7QYdfwc;v4gaB-{r&9Dm|d-DRV!pf+TUjjBucgKnmS=3?A3cYk3!F zo%V`NI?mZ>9Jd>{!*UX7S=8$VxG0W#GxEaARTN=P_$t8a`LYtbj!|*I{Wcgvax()J3+8?kw zHpcLaDZ)KE)?Q4EqW5`PAnWMx1nM7nRuC5?CqG3nZZV8Jm}%KqrD6Wh*=uyt{!uz= zaY|;Q1ps^GD6vA*S?GZlj~a+|4y`ZJS;D;ZjY{_0CisdMc58nktR`&dO4CCOvko=t zEk3SMZ)m?>z=cq*RD@3*gy-%{=t&>#IqvP?ncPSe^AC^PpAI{*y@h@9JLlZ^IHagU zydXv2q%;7DBDB@so(TSAEVIdrXEv=V;x6G4gg)C*@ovy`7f z7h;ZB)Mk(|8S15%eiyl_zx@G8Q6KsvcL3T52YHAQKT7R=2UZcgy}u8Vd~mbg(IM#d z0%DvSc^K;nC5)J2D&m40gijovK3e)KOJxJ}snRCN|;|+l6?}kF}MF3y7GX3|1<1!XM ztE%ee(h~b{p0%ulD?_4O!F%PNX;vMPTmcw{^X&HmOsb^lSaKxe7v5V$7&TEiU6b!~a`?n;tMJMf=yvF~omy{}Vrnm-em?FHbPSjUf*nF6*$w%h* zEe-pQkuZ#kJC>F|EoCi<%s()Yt@D?*rs^9at$1!^A{G@6wA42Gw7wAQDYHQH_+qI~ z%sywj-WcWJn}<7a$F|g5NS%>KI0gIZzcT8X9ft=^xZHcFjO0(+l&yK zhoHQNQ(R&nuwK_*(~x9c4k4{ZWdt3h&a?8h`4lZf*YA@mo-#EVaU5Z<&# z`o(_aT;9d=xXDsD97DnOoz{-WcQ`F@S4K4MsLc#2>WM$h%wU^8V9gG0$NhEoB3HOr zh=59n5j@WG4NGSTx#UvFo^Ob&ILFS+2st~5F7U@8EdW(e*tQ{4qR;ql9IbJafz&IX#WC! zK!!>SJZ$eib_E6amc^8Voq(W*!%LE0kE)jXs)p|Fc5Ys}j`9Y__(N*v)~055E~=Jd za@o&)$4M;gX(LuIZRxv4wnpwF(-?M1UK;#OzcJ>z@~A#bcj)0LLVgn?mqtX|avuoy5O!9H6M&{ zpr!`~7BlK>@u#fdPi1#~B{$MRt<`CU;g$`ib8AUxyZg`(34q!+Wg|@4($h;!OUVF6 zzFS;DP^JxC?NtR~{NZCl#*U8SPt>PwUUe0JDpU3f>m_i>&Myhp{u-m|uCuYS@Nmv3 zDkbM+WN7Fv4&_tg;a}L%*H%>1Gg8ym;(07Bxp)=VR(CRErKu@zurm+iTh>xn+wJj% zCv|a9P&>=H+Ukir>dV{xw3TtUH#bIkD|LaFmuXwy!m;#*j6=+ zfB%k6FbsC#WtjQm?NPn{hGh%RK>+u7&V8nAwT8n-o*A#WD8E(OXg{O>8d5< z@Twvo*1cZ&%TQK>Hr%uGzqcnpzP+-r4wWkVTD?{WqAk6i1wO7-G&=We)T9JVly)yA zMMl0JDgVFaamofa{>Q9LiThsmAeeM86A2LeZ>|BtA*fC?(w+I9(%E=frN zrMo+%M7lvzQo6evX(Xk)yE~<%ySux)?(&@T-JgMg499lt6?4AtGv{6#eO!Z-Bfzlc z2mz1hLNlkHpv7JMWyQi~eNa{8c+*t3H58gya=C$omYjr)tio+uYjT-rD9Y`y0)J~fJYwB$H*lE2S6m~H;osk_aqN%Ef^9q;qW(vy%` z*|dg_#E#<1PJzS%k+1%fSUo_jPs7XlZsWbPIlvvpNwyJwWYe$Lr97MP3YLd*P932yL zOA;$8f)f+Zt~I{ORwq9^;#JX2<$~9__xu6zMTz&9S)l7*zAHm{yL!u?KbIN|Hxia- zqwH@7T2suKxECU8zUce`0S!Mme-ix5s;4??kwPt=T*m3z1jf)TWE(6O)@Npg&c zCOBDD)~t8O);F_$)lU;Q$2!*}`;=-w1r`1_q@SCu>@Ojx5)(Q>Y$o_K-8DvP1in)MK2zH}qoa|Ye zj^*H%nrvQVC1)D@_jUZw9ER6?MXutmZJo|WvY46&7KX899rprP|Bemu}*??QhM=qmXq?y4jv~P!xj6?LNksafS1} zrI>cqlIXf2q%5<{_K?RNstFQHl!|pT`C{{P%-098UhxN0S}Q{C*AG?9o%cs&gs2`> z4}q|k?)Ea;jR^`XcxKd&;1!}_4`po;Nf5&5X@?Im9;4>`W-VWi?`|#+I*%J7O$; zT$2Zj&vFu~%@l5OMCY_U->}^Q^K&k5{4?yp<*lZMDMrqyRs_<|`libLs9+P9QEMH= zri~ux3+=d}n~%R)c&ShJ`MQN2;EgCa%$tbi)iH1UZ(D+$#5Vi;1#K$EU5MnJ?i)R z-45z2UHK!pJu|!W5*B=)OqgK1@)|aTE#h|uO&3Qd}s!BXE zvL{4Oj?~o?ezkmHT0x9-XL%G8=MI7TE{RucdQ-@i8`{V za;rPn$WTeXv9q*lE!X`6iup3BoQ}HP3(_3vA4k1o=c6|4-LIeM+)(vz2R30jXmuRb z7b&`w4*J=$P072C)_HmM4>^Y3H#+XhEFqK}wQ-dCi4e-$)Z6~&&uEucZ@b=ow7Mcf;fkZyG*UadIB88a?e0@M(xWX646!a zSTD-Kow0*Yho}VE6KT9vhQ~!@dXZA6T3AeQsXukm^HA;w2$R~KpXG}lWQmsB4Uc#9 zWj#K3+|4y~)wx@p4|231HY*H^j7Vru1gaCNUvJlWOqFuGJaq(O4VJ&}wI2@OdOw_o znzJQMHp#c;ETUv6QkE!gyzu3$@Gdrt?bBpfef*NwGHdEjYW*4w2_nqu0m7jgUI!`C zl87d*$?Sk{y!rORm!F4o7?wT1u?ZTEm`lgC_CGRytmmCn{whe$jKfA=TI7Ctz_&Xj z=h4O^E7@$E%ss-`=9$&|IPy}B7hq0o;5%+a05Q1Bo8fw6dE7BW0iPjT)YS z$M#?+^^yJM95kcFbQ7-p#c{^s#mC7xy%HHRs!5W2LE+amv8`MYHo8E+zoLoTTBE2dgFe)q|GAY2*^$VCF@QMHM zGfXzo@X0)xXGS-M1GoHi7Pp}8wF5cQ_nUWAX+&D*JVWl#18^+j40EDbHP$zEw^vtN z^Mfg9ti?gk=>$~P4R%`nVbS_dFaBz}hBz?g0|k_-)b;XVU=A$AA&=*|;_dDmmy-A{UAhA^WV z6!nT>kxVVU`6=UU?{Zv|RC&S-8R4!TxCe;~3S=GNhov8V z;fUgHy~>uIJ>hHex~z)CDdV$N>7StS8+M+*dMN4;SLphSs%!;!Af}|+tA^2w@!#n9 z^IYFSf*FSa*B|T3iNlq$rNjBvhgru*I0#FNxd~U_@7R#3lcW)Os)fwFGSKv$;Rqo% z2TIW?KG8vm1RU~6!H=OTx9Ic9<=?mEXOx_u>QGT?4Y)LyDzywpZk-S6T`zfd%gpjv zk-|`FMUw{8(G^Bbj~-uE57dXwNB&}B{H%7rh`1&jIyHQnB|{#tRUH}75UWLsV4@I9 zveSG6>S7^<=_y9iOoc-2Bs&J7#Ygwh2{qt+YFHjgI>WLr{3xZ=5^=z!QZh<~8n1>^ z4DbnuMTGP(_OYMDUBYg5UMF&eMUIsI9BX$BR{d1g%U^CR^YcgVYCi5O zTQ#40^zK@?c;_`=SoBI@j&A!O-w;lG7=HBQn%>Ow@t2U2JO7dkDUKd!amxndY1GK@ zn)r`_{^V@26k}npuBMce(z_RJ$oQisA32b(RC~Xq@{tDof zJgKZ|Y;`)_Wtq5R>AROOO-dha*|hdA@Vf1j{lXq)Nn=~m#=;@gS@z-Hm#K*3`IHm4 z%FH~KnCWPEScKJ#sipAPY)aUca1I$FUUx>BJLQ1t7_0szjf-MeTN{nG*G;I8rr61# zrkYi4V~K0o+jqz6MP)SU;BQ@%r#ee^GfS_U!i9vhh5*|i?x1svXQ}rqa*cw$6Dz|OSQ|ZSuBvnyJlGYFGo5>!^FhqO^x)BZ(TqcOxO|&0r zsojO;?jk%jk=X?B>1MVBwWIdwUT8jZh>8T1BYyqizpZ4<^Ea*Sy9`U)n7WGE+>_ai znrO*0q5OAwcnPZChkYE!V@S!*t%Q2@jf!zCF3)+1i3N%NCHk88V_PEn@c|w0D}x`5 z_wyFBtOyrsj{mSRIpVmWuj9W9>4l$up45@e6+qW)HQF^qXEF_H@b`^Zmg!4LcmFNi z6YYqgF!lXTR!U8(o4O|Y#9n~r!0qWi)r}$e>q@*J(^mK|Y96-(W-J()BoWL{3)Ghv z7puR1MaQVdHnn)ACu%vi3}TVkplq`6RuZUAjH||EP|$TaDSuJB+X+7;<(Bz5%F=cR zd1^9@7IF?GOoE77s7^Djv!arcn%r4@ldO!Sj(%NkU|4WP@Lef*BRLJHSb}3+{G8cR zlfAl}n$lHM##*a5e{I}ARl*%rui_?*f5?%B=Z?^q-F{57EP=jNk*fu)C93h{&!6jS zv%fCvJ_QS!xMmD}F<3pQb~V%rs{`!(Fd=w8|4Oz(t+epg`M%S+nWxWkeyi&J>Q6(P zWX+kYAL_Bg7T+IM;0YHSHieWntz}bJF$|;eXL~Gv!iRo6Xd-uHOl%m;%@li#Hy@9r z{f@-iL`|e^tHfVxIr0OsfP=c^eD{nM+oN|PBi@u-zt2374V@FFCF0w!ICj^=BcRv5SOr{Ch8_ecldQ_5~8Ift^N#`!rlaTx6M zrdN1QN`*JC;T??`;Qk*icn54t+MY=nb^l=bsooW<%5?3mVtcxb^cA~`gZ))^KePDb z;UHplHM1SUS3K^(G?IkU!t>6Zq=}T0p`)d)g}SzLiJdR1TIvq40qirF@x}9G#Zt1& z-=b-G@^kX?nrd1M&*oK4ztZmL8tY4FI~qA^8|v>;VmR8m`i^TWt2`bJLMVU-AaQmL za}@vf5B+5*G~dq@;H-YDK~v4L&nG7)BV>4r_$Hmevb?-sJZtDE>*Ap;`X`PB6D~Mf zd9TgvtC6Lnw!HA}2dr&bBo3uGM--VbR7WMu9V5f-SS5~HHWe(@T9&{j8Z*4W-U4|i za@-Wd8CJWD>^4dUe5z0y{Kvku^3whFoxdSFLL-8FN~-lq3Pn8Hmfsy%nzQi^GK(wy zmxC%w$}Dh`JLcMEY*V;diZg1O?0)#N<$LkgYHBO24re?@ONS$~RzCV=J~c#QFxaR0 zscjNE7=Cil8ZyDQ%c(EQ$;tKd|0=Sr&N3%3r>>#7C^5Xq!^g(d%*)pKL#S@5wYaC% zESCs!W=>FC*+$#Q$k9f5@&kR!h(|?rNkPiNAt&GbqJp}@B>$}cDZTaDQq11{%o&##Uro6q--&lysA>0F*Bg*rf9iE(OLv3$hualjIs9k?k z>Zl4!>*FYw6xxUhI~a24|9VFBGILO#WV9=)FKo$aYWsB{qbfJKAfABb0FL=j5xrf) z&*9!!pL-~}IN=(`EF^W9N#HC~rTzcNs?FI?Xz+h`U=%#bAd1jrn4!4~{fTNBy76NBjOX zif;B{a<-Q&4^!yFI1TNLwOd47d@siB9QKXuuE;7Gb|@P!FE2OuWUbHMr_g_w&wBs5 zpPx=nL1D)Za7imRR9${vUZT{_))uOB_7`Z*jO$yZXsjN*qToe6lu> zi=oD81iX3;`sFKm$K1snCiKg66~_Wr&q0i7d)xnpc261m2OmE_Ki{*SnQvMek(t@y z(UJL|)pzgSMMp<}`t*rHCMA)>YGu7UC^RG_DzBu(d^m~C>-kV;)$8@Sq=dEsM$W;Z zHZRZU#}CR>R3&+No1LNGqXMr4c@T&m9_3?8Kg)yBA|hoXP{MAUkR4dT@dl2{3H5PX z96KMC{ygkBtC91Lqo~B$;Ix{0oCJ@L(0v=6En?6tW%mmB+hX`PeSLM>6me!%C+xVH zsEkLqVmtBt=wap;~+(hob3EYdr%CdN~;ppf{NXQ_wlboLZ+JmFR$;s*L=2os& z*|oY#ETU6qK7ZbbeO{`vDAcv^AJ75=er%kq%^`AVNeFoV1|ZU*ATqEVHf z4L@m>=~QwfezBU=uGPG+4!AgFh;loXyjgvhD?79LYC79pD<1Bc=H;q1c9Z2l=m0~! zAC!5!{>Is`Q6$daaMn=CNriNVIGuol&CT}_3h38X5%2}wMjGy~nW^c);o<)3gqIv# zq0`YEB*gC4mNmP_Gn-s^KR-G7jvp%j*!VbPX{R|@QGd>><(s{|A(o(siHUXHI(=bI z!E3Ryvp2`a(C&^84-7{=BBW;V(WR~ z8IPy;<`>9rNk!e@kpgqY2i(do1iKyu$9XX&r^N0Sv676PdNbB9X6$>{a+w6(Pbi%LZM zt!8g;JlnbR`szwkQ&Xi(^QW-qD;SK+^w+1S%h70w&!3^5Ng!VSoGdr1mTM!gOj0~p zz_Y#ejAZE(rx3%{7lzJ$ZtdpN5>Bnvnuc&ulaI11qSLeaw93;Jq3SXeLBz69tK&5| z5@g0jg9k@ zlNgzejg2mjj_i(1xJZEZ`tJ(~3E49j)YYkc{fa=sQ@7e^XFQoF9o&wAf${kG7)dOE z;vX6s+J3v@_U+p@cX#(W8alf0SOf%we)qlz!Y{(Gx75_sU<*)omk8LrJlzK%;(*XK zLE*|4Fafm%7wv|tRr)-9yUpOrxbnkgHfc>zZWUKw_vttVd@u_eJ@;ATv zBiYS#sP*Eh9sNP_QbQi1lKK4h`-1V2>b#&R+@Li<0;1T{WR+B07O<~vRC8V)0RDwFHTHUXS@rc!%S{f&Dy0+C z)2%j}Z&6Vr+uA&Zg`pdi)z#tukRs%-htCmyd0Q737q{y9Xu-k3Av0s%Ph$7!Q?6FC zqoJW;DyNO!@j@*Z7nk*iH*emo34bsELqBW-~>sJ1pV9`hkz;Ih`avBq2B> z`I+WR5ADnt+cHTBBV#FfV@qj{M+UNuz}j$%QI*$FI#iF1>C7yHhcnIpMrrRFdx&j~ zo0<8d-5y?;yn{rfTo3XoPq1SpAefhf1LqYR8yl*3e0&@a4=;gUOF>bwx~`7j;b3Ya zSF&@nqJoj}Wh_(p^}ITU;*1i9PHuwj`bqWsa7cam?f6;(C0*e;mAQGo|x# zkuaFRkj)#4O~>u=z^Vm(hHAOm7LL|lR1`82h0P1027QMCcfysd?OTwv<&Kxn9U%+S zEF;B(_`_lI;RU|k#@{S=J6`j5=?6h(RQD^4rk5en zM*a^q06VX|QZTlvidkM>{!i`g$uhJa7f+k;2M)n6-O1S25xPwo86Q|#S$TO0m^dar z(8H4Z`TBY83&lr`n#7|d50@;Dv|qD6Mg8#Sda z-`&}-TB5u(*s@5vqP6gFye|6p|Zg^ z&rVAH4Vw1MH_b`)fE1p$i;%YdFGGc^y&@3*3uNPFv~tKKYJvM4Atr!mfM^FNtGT&70x{&{sG*@jOJ<6LhL)JzU5~H=or-Gw9P}ohjFX7S_zLB= z2DOI$YD(2XDYgdFXgXIMGpHeFFG+gk0q1Fr%64J=XD7YUH5pn$uXjAFnhTan7xeI?|VPU} z)(<)SUN5|L(3cu@=0YQ!*yy}a_8_sOB;=jCowg<***XBa6ZxLW;HL}k@a>&P@=1M3wraQx^9}Ro~XIJou{G| z85&By&$CI&1NX=a>q|*bhZ*_*g;S1?YY0DbT*Rz0y0X zBXa3pFI;C~XR6A|*Fb=&)mtu?X*HwC67#v%6cr)-c$#g0xjtz=J=ov(3AKY(HwZNd z-ek~h_&`r@X==JKHy0ce7!W`rYc8@BsgI0=L{3irgGi^{vo$|IzpCn8=X0kYEIu9{ z+6h_4>p^k3t(_emE$s^k2^Onugt~P#H7NpKFF>nAJd9n0G1`<>lS1b^3w0*g>QQ zPG%ntUo%-hf&e7>7WkIq`qkcc)iO=UE)uZf*Iu^Ppmqu;&R?Z={Dq!^Q36ZcWM_i@)%ogxv)KXLP6t8Qq2 zV)msr5DnN*=kmtSoJDLBW_OM4C&|{28uFxpw&6LqOin z7!Y>P*&GNahK4ZIqsbiQxw$Z+Fr`9Q?N8eb!7YP-|3=|@LVvb)#tL3W*C5MSt+yhk zM-z3u+8h6gK_O_PnOaxpXlu*tjshHyCg(CH%ICBX+<)PlvWfP>1+)c6_Wr=3t#Hk) zOfAZR{M5izPC`>g`EH z`XA*GK`8tSjvyI|USiazz)U}F6N%%0Ac&-fA2jP1V?@A#G=`k+s2d-U_jWgZ=;J16 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 diff --git a/doc/reference-architectures/ran/openness_xran_images/xran_img7.png b/doc/reference-architectures/ran/openness_xran_images/xran_img7.png deleted file mode 100644 index 5c90784fc8c935c879349dafa6724fa552f45c02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56562 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

8rk_Y|`PO65O3H!*3^XpsDoDxm7YIkUNYZp=1+_ zo}q=NjWD(+=k@;PW8$v_QXa2A8~5$`PL50&lDfHsPL)k5ad-qyXr31DsJGYYREDey zC0UlG3-F(`9Ntq|D=Ob&j5o$=M8bPmLDL@ewHkfAD#FMD%wQK1umbPGC`4;C!aA2@X4|msEH$uR9tOc60=QwiG{Fr_8Ijth1b1 z!5hzoz^O`0QTn|x(_dN2)=|O$fW_X|N#4_0QQkmSRY*dZbG~cbV?u+6!$g+XDB=S& zZndvvUl&rCtY2k@Y~qyQF9LNnz*k}3IKI1@F|F?(W-NBT-AyDObW}uWxp9`NqlqfH ziF=;?l&WC2@-C+JQ_cSTQQ6f+qPvKay#Jd7a>tbg>Jd=8aoyv|dWt}Oj1GFYq>+SYu^k}!FYrR{pRV3}D{Tn}e zv`HnF5Qvfqwt3ji%&EN|pgh#CiECp3R?14t#Mar~P+i4A!y+w}9Br^jSAoem zC#5#$5s8aVx2X8>aFB(_kCW5e^Ka`^5!??Fqc@?Ys4bXV*Z>MjH`^(!*o}!OVaN_D ztO~15(fz+KLdi@hCyQZI#p~Dt0~DrwR*$FZX#b|fBp!lht?(}8-OyU%OtxtM5fdJI5=0`<0O;8NQEt?&lSG{Q_^ay`=OD}5L92IK{LW5}b zH5YmD332EqEDR~2)5NSW$GeuOE@=)FMTuFdgLy6qxja|Lz1Uqa>GP(KHa7jvrmjC| zIy+gc*=D5JM;hOk1`?Lj_hEycx76mT1=)&})W$1rZr+w-Xm1afzJ0wZ`o6EEf_5~@ zohl4Q_CU0C%th4LSWfsu#VS8c;}dOB(BiEP!cIX@Cho%mZSojPcR+uIMzBV$gt}hO zyTRHLT66NIs#X})(WvjYv9>H3lHxFi3MM+(J{o2dbtH$4Yv z<<%Z153`wY4T_1Lmx`17Amhi24a(|Mw`VE`_HUKzaxdkp3yAnV94|)aN-25YA-K{^ z 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 Date: Fri, 26 Mar 2021 16:17:52 +0800 Subject: [PATCH 71/89] add more content with inventory --- doc/building-blocks/emco/openness-emco.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/doc/building-blocks/emco/openness-emco.md b/doc/building-blocks/emco/openness-emco.md index e9054b46..d64b3c8a 100644 --- a/doc/building-blocks/emco/openness-emco.md +++ b/doc/building-blocks/emco/openness-emco.md @@ -311,6 +311,21 @@ EMCO supports [multiple deployment options](https://github.com/otcshare/EMCO/tre vars: cluster_name: central_orchestrator_cluster flavor: central_orchestrator + single_node_deployment: false + limit: controller_group + controller_group: + hosts: + ctrl.openness.org: + ansible_host: + ansible_user: openness + edgenode_group: + hosts: + edgenode_vca_group: + hosts: + ptp_master: + hosts: + ptp_slave_group: + hosts: ... ``` > **NOTE**: `edgenode_group:` and `edgenode_vca_group:` are not required for configuration, since EMCO micro services just need to be deployed on the Kubernetes* control plane node. From 54f8166c93a9224343a7104f8ee37a520023ad59 Mon Sep 17 00:00:00 2001 From: tomaszwesolowski <50956170+tomaszwesolowski@users.noreply.github.com> Date: Fri, 26 Mar 2021 10:54:49 +0100 Subject: [PATCH 72/89] add note about effects of changed permisions for .kube folder (#433) * add note about effects of changed permisions for .kube folder * fixed typo --- doc/getting-started/converged-edge-experience-kits.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/getting-started/converged-edge-experience-kits.md b/doc/getting-started/converged-edge-experience-kits.md index d82d3090..9009a9eb 100644 --- a/doc/getting-started/converged-edge-experience-kits.md +++ b/doc/getting-started/converged-edge-experience-kits.md @@ -89,6 +89,7 @@ The following variables must be defined - IP address (`ansible_host`) for both controller and node must be the same - `controller_group` and `edgenode_group` groups must contain exactly one host * `limit` -- **OPTIONAL**: constrains the deployment to a specific Ansible\* group, e.g., `controller`, `edgenode`, `edgenode_vca_group` or just a particular hostname. This is passed as a `--limit` command-line option when executing `ansible-playbook`. +* `ansible_user`: deployment will be done for provided user and that user will become kubernetes cluster admin ## Sample Deployment Definitions ### Single Cluster Deployment From 35bc857ca3230c76d9bbb636abfc88edfdb7930e Mon Sep 17 00:00:00 2001 From: Nishat-Zaman Date: Fri, 26 Mar 2021 18:52:00 +0530 Subject: [PATCH 73/89] updated upf documentation --- .../core-network/openness_upf.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/doc/reference-architectures/core-network/openness_upf.md b/doc/reference-architectures/core-network/openness_upf.md index 83058f29..19033fb7 100644 --- a/doc/reference-architectures/core-network/openness_upf.md +++ b/doc/reference-architectures/core-network/openness_upf.md @@ -45,7 +45,7 @@ As part of the end-to-end integration of the Edge cloud deployment using OpenNES # Purpose -This document provides the required steps to deploy UPF on the OpenNESS platform. 4G/(Long Term Evolution network)LTE or 5G UPF can run as network functions on the Edge node in a virtualized environment. The reference [Dockerfile](https://github.com/otcshare/edgeapps/blob/master/network-functions/core-network/5G/UPF/Dockerfile) and [5g-upf.yaml](https://github.com/otcshare/edgeapps/blob/master/network-functions/core-network/5G/UPF/5g-upf.yaml) provide details on how to deploy UPF as a Container Networking function (CNF) in a K8s pod on OpenNESS edge node using OpenNESS Enhanced Platform Awareness (EPA) features. +This document provides the required steps to deploy UPF on the OpenNESS platform. 4G/(Long Term Evolution network)LTE or 5G UPF can run as network functions on the Edge node in a virtualized environment. The reference [Dockerfile](https://github.com/otcshare/edgeapps/blob/master/network-functions/core-network/5G/UPF/Dockerfile) and [5g-upf.yaml](https://github.com/otcshare/edgeapps/blob/master/network-functions/core-network/5G/UPF/5g-upf.yaml) provide details on how to deploy UPF as a Cloud-native network functions (CNF) in a K8s pod on OpenNESS edge node using OpenNESS Enhanced Platform Awareness (EPA) features. These scripts are validated through a reference UPF solution (implementation is based on Vector Packet Processing (VPP)) that is not part of the OpenNESS release. @@ -59,14 +59,17 @@ These scripts are validated through a reference UPF solution (implementation is 1. To keep the build and deploy process straightforward, the Docker\* build and image are stored on the Edge node. +2. Copy the upf binary package to the Docker build folder. Reference Docker files and the Helm chart for deploying the UPF is available at [edgeapps_upf_docker](https://github.com/otcshare/edgeapps/tree/master/network-functions/core-network/5G/UPF) and [edgeapps_upf_helmchart](https://github.com/otcshare/edgeapps/tree/master/network-functions/core-network/charts/upf) respectively + ```bash - ne-node# cd <5g-upf-binary-package> + ne-node# cp -rf <5g-upf-binary-package> edgeapps/network-functions/core-network/5G/UPF/upf ``` -2. Copy the Docker files to the node and build the Docker image. Reference Docker files and the Helm chart for deploying the UPF is available at [edgeapps_upf_docker](https://github.com/otcshare/edgeapps/tree/master/network-functions/core-network/5G/UPF) and [edgeapps_upf_helmchart](https://github.com/otcshare/edgeapps/tree/master/network-functions/core-network/charts/upf) respectively +3. Build the Docker image. ```bash - ne-node# ./build_image.sh + ne-node# cd edgeapps/network-functions/core-network/5G/UPF + ne-node# ./build_image.sh -b ./upf/ -i upf-cnf ne-node# docker image ls | grep upf upf-cnf 1.0 e0ce467c13d0 15 hours ago 490MB @@ -139,9 +142,9 @@ Below is a list of minimal configuration parameters for VPP-based applications s 3. Enable the vfio-pci/igb-uio driver on the node. The below example shows the enabling of the `igb_uio` driver: ```bash - ne-node# /opt/openness/dpdk-18.11.6/usertools/dpdk-devbind.py -b igb_uio 0000:af:0a.0 + ne-node# /opt/openness/dpdk-19.11.1/usertools/dpdk-devbind.py -b igb_uio 0000:af:0a.0 - ne-node# /opt/openness/dpdk-18.11.6/usertools/dpdk-devbind.py --status + ne-node# /opt/openness/dpdk-19.11.1/usertools/dpdk-devbind.py --status Network devices using DPDK-compatible driver ============================================ 0000:af:0a.0 'Ethernet Virtual Function 700 Series 154c' drv=igb_uio unused=i40evf,vfio-pci @@ -322,12 +325,9 @@ In this reference validation, the UPF application will be started manually after 2. Exec into the UPF pod and start the UPF: - >**NOTE**: The command `groupadd vpp` needs to be given only for the first execution. - ```bash ne-controller# kubectl exec -it upf-cnf -- /bin/bash - upf-cnf# groupadd vpp - upf-cnf# ./run_upf.sh + upf-cnf# sudo ./run_upf.sh ``` ## Uninstall UPF pod from OpenNESS controller From c8041ce120a70410a163457e6bd2a56fc11aaaa6 Mon Sep 17 00:00:00 2001 From: Mariusz Szczepanik Date: Fri, 26 Mar 2021 15:02:16 +0100 Subject: [PATCH 74/89] OP-7534: Change kubernetes-dashboard port --- .../openness-kubernetes-dashboard.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-kubernetes-dashboard.md b/doc/building-blocks/enhanced-platform-awareness/openness-kubernetes-dashboard.md index 87fc2988..d62a73c7 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-kubernetes-dashboard.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-kubernetes-dashboard.md @@ -34,7 +34,7 @@ disable_dashboard_tls: false # set to true to disable TLS ### Usage -User can use Kubernetes Dashboard by browsing `https://:30443` if TLS is enabled or `http://:30443` if TLS is disabled. +User can use Kubernetes Dashboard by browsing `https://:30553` if TLS is enabled or `http://:30553` if TLS is disabled. With TLS enabled Kubernetes Dashboard will prompt for `Kubernetes Service Account token` to log in user. You can get the token by executing the following command on your controller: @@ -42,7 +42,7 @@ With TLS enabled Kubernetes Dashboard will prompt for `Kubernetes Service Accoun kubectl describe secret -n kube-system $(kubectl get secret -n kube-system | grep 'kubernetes-dashboard-token' | awk '{print $1}') | grep 'token:' | awk '{print $2}' ``` -> NOTE: To use Kubernetes Dashboard with TLS encryption user will have to add `https://:30443` to web browser's list of security exceptions. +> NOTE: To use Kubernetes Dashboard with TLS encryption user will have to add `https://:30553` to web browser's list of security exceptions. ### Access rights From 5e51821e786efdff1f2ca973e3344dc8f67a548f Mon Sep 17 00:00:00 2001 From: damiankopyto <48013534+damiankopyto@users.noreply.github.com> Date: Fri, 26 Mar 2021 14:09:40 +0000 Subject: [PATCH 75/89] Minor Updates in Documents (#430) Minor Updates in Documents --- .../openness-acc100.md | 11 +++-------- .../enhanced-platform-awareness/openness-fpga.md | 15 +++++---------- .../openness-telemetry.md | 1 + 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md b/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md index e1e89aa1..72c7f963 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md @@ -115,13 +115,8 @@ After a successful deployment, the following pods will be available in the clust kubectl get pods -A NAMESPACE NAME READY STATUS RESTARTS AGE -kube-ovn kube-ovn-cni-hdgrl 1/1 Running 0 3d19h -kube-ovn kube-ovn-cni-px79b 1/1 Running 0 3d18h -kube-ovn kube-ovn-controller-578786b499-74vzm 1/1 Running 0 3d19h -kube-ovn kube-ovn-controller-578786b499-j22gl 1/1 Running 0 3d19h -kube-ovn ovn-central-5f456db89f-z7d6x 1/1 Running 0 3d19h -kube-ovn ovs-ovn-46k8f 1/1 Running 0 3d18h -kube-ovn ovs-ovn-5r2p6 1/1 Running 0 3d19h +kube-system calico-kube-controllers-646546699f-wl6rn 1/1 Running 0 3d19h +kube-system calico-node-hrtn4 1/1 Running 0 3d19h kube-system coredns-6955765f44-mrc82 1/1 Running 0 3d19h kube-system coredns-6955765f44-wlvhc 1/1 Running 0 3d19h kube-system etcd-silpixa00394960 1/1 Running 0 3d19h @@ -150,7 +145,7 @@ To configure the VFs with the necessary number of queues for the vRAN workload, Sample configMap, which can be configured by changing values, if other than typical config is required, with a profile for the queue configuration is provided as part of Helm chart template `/opt/openness/helm-charts/bb_config/templates/acc100-config.yaml` populated with values from `/opt/openness/helm-charts/bb_config/values.yaml`. Helm chart installation requires a provision of hostname for the target node during job deployment. Additionally, the default values in Helm chart will deploy FPGA config, a flag needs to be provided to invoke ACC100 config. -Install the Helm chart by providing configmap and BBDEV config utility job with the following command from `/opt/openness/helm-charts/` on Edge Controller: +Install the Helm chart by providing configmap and BBDEV config utility job with the following command from `/opt/openness/helm-charts/` on Edge Controller (this job needs to be re-run on each node reboot): ```shell helm install --set nodeName= --set device=ACC100 intel-acc100-cfg bb_config diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md b/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md index 537a5a44..a0696a5f 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md @@ -10,7 +10,7 @@ Copyright (c) 2019-2020 Intel Corporation - [Intel(R) FPGA PAC N3000 remote system update flow in OpenNESS Network edge Kubernetes](#intelr-fpga-pac-n3000-remote-system-update-flow-in-openness-network-edge-kubernetes) - [Using an FPGA on OpenNESS](#using-an-fpga-on-openness) - [FPGA (FEC) Ansible installation for OpenNESS Network Edge](#fpga-fec-ansible-installation-for-openness-network-edge) - - [Converged Edge Experience Kits](#openness-experience-kit) + - [Converged Edge Experience Kits](#converged-edge-experience-kits) - [FPGA programming and telemetry on OpenNESS Network Edge](#fpga-programming-and-telemetry-on-openness-network-edge) - [Telemetry monitoring](#telemetry-monitoring) - [FEC VF configuration for OpenNESS Network Edge](#fec-vf-configuration-for-openness-network-edge) @@ -128,13 +128,8 @@ After a successful deployment, the following pods will be available in the clust kubectl get pods -A NAMESPACE NAME READY STATUS RESTARTS AGE -kube-ovn kube-ovn-cni-hdgrl 1/1 Running 0 3d19h -kube-ovn kube-ovn-cni-px79b 1/1 Running 0 3d18h -kube-ovn kube-ovn-controller-578786b499-74vzm 1/1 Running 0 3d19h -kube-ovn kube-ovn-controller-578786b499-j22gl 1/1 Running 0 3d19h -kube-ovn ovn-central-5f456db89f-z7d6x 1/1 Running 0 3d19h -kube-ovn ovs-ovn-46k8f 1/1 Running 0 3d18h -kube-ovn ovs-ovn-5r2p6 1/1 Running 0 3d19h +kube-system calico-kube-controllers-646546699f-wl6rn 1/1 Running 0 3d19h +kube-system calico-node-hrtn4 1/1 Running 0 3d19h kube-system coredns-6955765f44-mrc82 1/1 Running 0 3d19h kube-system coredns-6955765f44-wlvhc 1/1 Running 0 3d19h kube-system etcd-silpixa00394960 1/1 Running 0 3d19h @@ -161,7 +156,7 @@ openness syslog-ng-br92z 1/1 Running 0 ### FPGA programming and telemetry on OpenNESS Network Edge It is expected the the factory image of the Intel® FPGA PAC N3000 is of version 2.0.x. To program the user image (5GN FEC vRAN) of the Intel® FPGA PAC N3000 via OPAE a `kubectl` plugin for K8s is provided - it is expected that the provided user image is signed or un-signed (development purposes) by the user, see the [documentation](https://www.intel.com/content/www/us/en/programmable/documentation/pei1570494724826.html) for more information on how to sign/un-sign the image file. The plugin also allows for obtaining basic FPGA telemetry. This plugin will deploy K8s jobs that run to completion on the desired host and display the logs/output of the command. -The following are the operations supported by the `kubectl rsu` K8s plugin. They are run from the Edge Controller: +The following are the operations supported by the `kubectl rsu` K8s plugin. They are run from the Edge Controller (the user who runs the commands needs to be a privileged user): 1. To check the version of the MAX10 image and FW run: ``` @@ -234,7 +229,7 @@ To configure the VFs with the necessary number of queues for the vRAN workload t Sample configMap, which can be configured by changing values if other than typical configuration is required, with a profile for the queue configuration, is provided as part of Helm chart template `/opt/openness/helm-charts/bb_config/templates/fpga-config.yaml` populated with values from `/opt/openness/helm-charts/bb_config/values.yaml`. Helm chart installation requires a provision of hostname for the target node during job deployment. -Install the Helm chart by providing configmap and BBDEV config utility job with the following command from `/opt/openness/helm-charts/` on Edge Controller: +Install the Helm chart by providing configmap and BBDEV config utility job with the following command from `/opt/openness/helm-charts/` on Edge Controller (this job needs to be re-run on each node reboot): ```shell helm install --set nodeName= intel-fpga-cfg bb_config diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md b/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md index 448ea4fb..94b42086 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md @@ -247,6 +247,7 @@ OpenCensus exporter/receiver is used in the default OpenNESS configuration for a Processor Counter Monitor (PCM) is an application programming interface (API) and a set of tools based on the API to monitor performance and energy metrics of Intel® Core™, Xeon®, Atom™ and Xeon Phi™ processors. In OpenNESS, the PCM pod is deployed as a K8s `Daemonset` on every available node. PCM metrics are exposed to Prometheus via the Host's NodePort on each EdgeNode. >**NOTE**: The PCM feature is intended to run on physical hardware (i.e., no support for VM virtualized Edge Nodes in OpenNESS). Therefore, this feature is disabled by default. The feature can be enabled by setting the `telemetry_pcm_enable` flag in CEEK. Additionally, a preset dashboard is created for PCM in Grafana visualizing the most crucial metrics. +>**NOTE**: There is currently a limitation in OpenNESS where a conflict between deployment of CollectD and PCM prevents PCM server from starting successfully, it is advised to run PCM with CollectD disabled at this time. #### Usage From b31422e143f06bdeb0ca53aef43c5c8a077c103e Mon Sep 17 00:00:00 2001 From: Krishnamurthy Jambur <47258934+krishnajs@users.noreply.github.com> Date: Fri, 26 Mar 2021 14:17:31 +0000 Subject: [PATCH 76/89] Update architecture.md (#434) Co-authored-by: cjnolan <47635874+cjnolan@users.noreply.github.com> --- doc/architecture.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/architecture.md b/doc/architecture.md index a594a60e..dc6ce867 100644 --- a/doc/architecture.md +++ b/doc/architecture.md @@ -154,6 +154,9 @@ OpenNESS supports the following accelerator microservices. - FPGA device plugin for inferencing - SR-IOV device plugin for FPGA/eASIC - Dynamic Device Profile for Network Interface Cards (NIC) +- **Intel® QuickAssist Technology (Intel® QAT)**: Software that enables offloading of security and compression task on data in rest or in-motion for the cloud, networking, big data, and storage applications: + - Kubernetes CRD operator for discrete and on-board Intel® QAT devices + - Intel QuickAssist Technology (QAT) device plugin for Kubernetes ### Dataplane/Container Network Interfaces From 7750f50daa307d54b2655b3bb8f7c23c769556d9 Mon Sep 17 00:00:00 2001 From: Patryk Matuszak <47594217+patrykxmatuszak@users.noreply.github.com> Date: Sat, 27 Mar 2021 11:01:51 +0100 Subject: [PATCH 77/89] OP-7526 Update info about single repository (#432) Co-authored-by: Patryk Strusiewicz-Surmacki <53896266+ipatrykx@users.noreply.github.com> --- .../network-edge/controller-edge-node-setup.md | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/doc/getting-started/network-edge/controller-edge-node-setup.md b/doc/getting-started/network-edge/controller-edge-node-setup.md index f4b00a66..846e36df 100644 --- a/doc/getting-started/network-edge/controller-edge-node-setup.md +++ b/doc/getting-started/network-edge/controller-edge-node-setup.md @@ -39,7 +39,7 @@ Copyright (c) 2019-2021 Intel Corporation - [Obtaining installation files](#obtaining-installation-files) - [Setting Git](#setting-git) - [GitHub token](#github-token) - - [Customize tag/branch/sha to checkout](#customize-tagbranchsha-to-checkout) + - [Customize tag/branch/sha to checkout on edgeservices repository](#customize-tagbranchsha-to-checkout-on-edgeservices-repository) - [Customization of kernel, grub parameters, and tuned profile](#customization-of-kernel-grub-parameters-and-tuned-profile) # Quickstart @@ -706,16 +706,12 @@ To generate a GitHub token, refer to [GitHub help - Creating a personal access t To provide the token, edit the value of `git_repo_token` variable in `inventory/default/group_vars/all/10-default.yml`. -### Customize tag/branch/sha to checkout - -A specific tag, branch, or commit SHA can be checked out by setting the `controller_repository_branch` and the `edgenode_repository_branch` variables in `inventory/default/group_vars/all/10-default.yml` for Edge Nodes and Kubernetes control plane / Edge Controller, respectively. - +### Customize tag/branch/sha to checkout on edgeservices repository +A specific tag, branch, or commit SHA on edgeservices repository can be checked out by setting the `git_repo_branch` variable in `inventory/default/group_vars/all/10-open.yml`. ```yaml -controller_repository_branch: master -edgenode_repository_branch: master +git_repo_branch: master # or -controller_repository_branch: openness-20.03 -edgenode_repository_branch: openness-20.03 +git_repo_branch: openness-20.03 ``` ## Customization of kernel, grub parameters, and tuned profile From c86437f7701daff5d0f04d22273d03fe0036c0be Mon Sep 17 00:00:00 2001 From: arsalaan-intc Date: Mon, 29 Mar 2021 13:55:09 +0530 Subject: [PATCH 78/89] [OP-7506] Updating docs for running edge apps for non root user --- .../enhanced-platform-awareness/openness-nonroot.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-nonroot.md b/doc/building-blocks/enhanced-platform-awareness/openness-nonroot.md index b775617e..3cf0493c 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-nonroot.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-nonroot.md @@ -7,6 +7,7 @@ Copyright (c) 2021 Intel Corporation - [Overview](#overview) - [Steps on K8s nodes](#steps-on-k8s-nodes) - [Repository modification](#repository-modification) +- [Running edge apps](#running-edge-apps) ## Overview @@ -49,3 +50,7 @@ controller ansible_ssh_user=openness ansible_host=192.168.1.10 node01 ansible_ssh_user=openness ansible_host=192.168.1.11 node02 ansible_ssh_user=openness ansible_host=192.168.1.12 ``` + +## Running edge apps + +When deployment is done using non root user, the edge apps should also be managed using the same non root user. To run edge apps some command (e.g. docker image push) require sudo privilages, those commands should be executed with sudo privilage. From 76ec92d17e296ab66f0d7ebd1960f504b898a506 Mon Sep 17 00:00:00 2001 From: Karina Murawko-Wisniewska <48431435+i-karina@users.noreply.github.com> Date: Mon, 29 Mar 2021 13:06:00 +0200 Subject: [PATCH 79/89] Update to new inventory.yml file (#440) --- .../openness-nonroot.md | 32 +++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-nonroot.md b/doc/building-blocks/enhanced-platform-awareness/openness-nonroot.md index b775617e..8122f209 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-nonroot.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-nonroot.md @@ -10,18 +10,19 @@ Copyright (c) 2021 Intel Corporation ## Overview -OpenNESS provides a possibility to install all required files on Kubernetes a control plane and nodes with or without root rights. From security perspective it is advised to use non-root user installation of our platform where all tasks are executed with non-root user’s permissions. Tasks that require root privileges use privilege escalation property "become". +OpenNESS provides a possibility to install all required files on a Kubernetes control plane and nodes with or without root user. From security perspective it is advised to use non-root user installation of the OpenNESS platform where all tasks are executed with non-root user’s permissions. Tasks that require root privileges use privilege escalation property "become". ```yml - name: Run a command as root command: whoami become: yes ``` ->**NOTE**: For more about privileges escalation in ansible please refer to https://docs.ansible.com/ansible/latest/user_guide/become.html# + +>**NOTE**: For more about privileges escalation in Ansible please refer to https://docs.ansible.com/ansible/latest/user_guide/become.html# ## Steps on K8s nodes -Before ansible installation is started a non-root user needs to be created on the machines marked in Ansible's inventory. To create a user `openness` a command can be executed: +Before Ansible installation is started a non-root user needs to be created on the machines defined in `inventory.yml` . To create a user `openness` execute the command: ```bash adduser "openness" @@ -41,11 +42,24 @@ echo "openness ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/openness ## Repository modification -To be able to start ansible as a non-root user a modification in inventory is required. Replacement of root user in variable `ansible_ssh_user` to already created non-root user will cause an execution of all tasks as non-root user specified. +To run Ansible as a non-root user a modification in `inventory.yml` is required. Setting a user in variable `ansible_user` to already created non-root user will cause an execution of all tasks as non-root user specified. -```ini -[all] -controller ansible_ssh_user=openness ansible_host=192.168.1.10 -node01 ansible_ssh_user=openness ansible_host=192.168.1.11 -node02 ansible_ssh_user=openness ansible_host=192.168.1.12 +```yaml +--- +all: + vars: + cluster_name: minimal_cluster + flavor: minimal + single_node_deployment: false + limit: +controller_group: + hosts: + ctrl.openness.org: + ansible_host: 172.16.0.1 + ansible_user: openness +edgenode_group: + hosts: + node01.openness.org: + ansible_host: 172.16.0.2 + ansible_user: openness ``` From 432c68f155ce0204eb0bcc4259999c444a9f05da Mon Sep 17 00:00:00 2001 From: Patryk Matuszak <47594217+patrykxmatuszak@users.noreply.github.com> Date: Mon, 29 Mar 2021 16:08:37 +0200 Subject: [PATCH 80/89] OP-7560 Update Single Node inventory configuration (#442) --- .../network-edge/controller-edge-node-setup.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/getting-started/network-edge/controller-edge-node-setup.md b/doc/getting-started/network-edge/controller-edge-node-setup.md index 846e36df..33997a7a 100644 --- a/doc/getting-started/network-edge/controller-edge-node-setup.md +++ b/doc/getting-started/network-edge/controller-edge-node-setup.md @@ -205,12 +205,12 @@ To deploy Network Edge in a single-node cluster scenario, follow the steps below limit: controller_group: hosts: - node.openness.org: + controller: ansible_host: 10.102.227.234 ansible_user: openness edgenode_group: hosts: - node.openness.org: + node01: ansible_host: 10.102.227.234 ansible_user: openness edgenode_vca_group: From 7f19d0c7583ac216148538a254f27692eff65c0b Mon Sep 17 00:00:00 2001 From: Nishat-Zaman Date: Tue, 30 Mar 2021 12:37:37 +0530 Subject: [PATCH 81/89] non root user changes added --- doc/reference-architectures/core-network/openness_upf.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/reference-architectures/core-network/openness_upf.md b/doc/reference-architectures/core-network/openness_upf.md index 19033fb7..3877a5eb 100644 --- a/doc/reference-architectures/core-network/openness_upf.md +++ b/doc/reference-architectures/core-network/openness_upf.md @@ -287,7 +287,7 @@ helm install \ \ \ Date: Tue, 30 Mar 2021 11:22:30 +0100 Subject: [PATCH 82/89] Re-organize getting started section (#438) * Re-organize getting started section * Update getting-started.yml * update * update * updates * typos --- README.md | 10 +- _data/navbars/building-blocks.yml | 5 - _data/navbars/getting-started.yml | 33 ++- .../network-edge-applications-onboarding.md | 11 +- .../using-openness-cnca.md | 8 +- doc/building-blocks/emco/openness-emco.md | 2 +- .../openness-qat.md | 6 +- doc/building-blocks/index.html | 2 +- doc/flavors.md | 12 +- doc/getting-started/harbor-registry.md | 206 ++++++++++++++++ doc/getting-started/index.html | 2 +- .../kubernetes-dashboard.md} | 0 .../dashboard-login.png | Bin 44227 -> 0 bytes .../harbor_proxy_setup.png | Bin 24784 -> 0 bytes doc/getting-started/network-edge/index.html | 14 -- .../offline-images/offline-copy.png | Bin 35821 -> 0 bytes .../offline-images/offline-flow.png | Bin 46342 -> 0 bytes .../offline-images/offline-ssh.png | Bin 30053 -> 0 bytes .../network-edge/supported-epa.md | 27 --- .../non-root-user.md} | 0 .../harbor_ui.png | Bin ...ode-setup.md => openness-cluster-setup.md} | 223 +----------------- 22 files changed, 261 insertions(+), 300 deletions(-) create mode 100644 doc/getting-started/harbor-registry.md rename doc/{building-blocks/enhanced-platform-awareness/openness-kubernetes-dashboard.md => getting-started/kubernetes-dashboard.md} (100%) delete mode 100644 doc/getting-started/network-edge/controller-edge-node-setup-images/dashboard-login.png delete mode 100644 doc/getting-started/network-edge/controller-edge-node-setup-images/harbor_proxy_setup.png delete mode 100644 doc/getting-started/network-edge/index.html delete mode 100644 doc/getting-started/network-edge/offline-images/offline-copy.png delete mode 100644 doc/getting-started/network-edge/offline-images/offline-flow.png delete mode 100644 doc/getting-started/network-edge/offline-images/offline-ssh.png delete mode 100644 doc/getting-started/network-edge/supported-epa.md rename doc/{building-blocks/enhanced-platform-awareness/openness-nonroot.md => getting-started/non-root-user.md} (100%) rename doc/getting-started/{network-edge/controller-edge-node-setup-images => openness-cluster-setup-images}/harbor_ui.png (100%) rename doc/getting-started/{network-edge/controller-edge-node-setup.md => openness-cluster-setup.md} (69%) diff --git a/README.md b/README.md index c631b8f2..59f8cecf 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Copyright (c) 2019-2020 Intel Corporation # OpenNESS Quick Start ## Network Edge - ### Step 1. Get Hardware ► Step 2. [Getting started](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/controller-edge-node-setup.md) ► Step 3. [Applications Onboarding](https://github.com/otcshare/specs/blob/master/doc/applications-onboard/network-edge-applications-onboarding.md) + ### Step 1. Get Hardware ► Step 2. [Getting started](https://github.com/otcshare/specs/blob/master/doc/getting-started/openness-cluster-setup.md) ► Step 3. [Applications Onboarding](https://github.com/otcshare/specs/blob/master/doc/applications-onboard/network-edge-applications-onboarding.md) # OpenNESS solution documentation index @@ -21,10 +21,11 @@ Below is the complete list of OpenNESS solution documentation ## Getting Started - Setup * [getting-started: Folder containing how to get started with installing and trying OpenNESS Network Edge solutions](https://github.com/otcshare/specs/blob/master/doc/getting-started) + * [openness-cluster-setup.md: Getting started here for installing and trying OpenNESS Network Edge](https://github.com/otcshare/specs/blob/master/doc/getting-started/openness-cluster-setup.md) * [converged-edge-experience-kits.md: Overview of the Converged Edge Experience Kits that are used to install the Network Edge solutions](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md) - * [network-edge: Folder containing how to get started with installing and trying OpenNESS Network Edge](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge) - * [controller-edge-node-setup.md: Started here for installing and trying OpenNESS Network Edge](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/controller-edge-node-setup.md) - * [supported-epa.md: List of Silicon and Software EPA that are features that are supported in OpenNESS Network Edge](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/supported-epa.md) + * [non-root-user.md: Using the non-root user on the OpenNESS Platform](https://github.com/otcshare/specs/blob/master/doc/getting-started/non-root-user.md) + * [harbor-registry.md: Enabling Harbor Registry service in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/getting-started/harbor-registry.md) + * [kubernetes-dashboard.md: Installing Kubernetes Dashboard for OpenNESS Network Edge cluster](https://github.com/otcshare/specs/blob/master/doc/getting-started/kubernetes-dashboard.md) ## Application onboarding - Deployment @@ -62,7 +63,6 @@ Below is the complete list of OpenNESS solution documentation * [openness_hddl.md: Using Intel® Movidius™ Myriad™ X High Density Deep Learning (HDDL) solution in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness_hddl.md) * [openness-topology-manager.md: Resource Locality awareness support through Topology manager in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-topology-manager.md) * [openness-vca.md: Visual Compute Accelerator Card - Analytics (VCAC-A)](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md) - * [openness-kubernetes-dashboard.md: Kubernetes Dashboard in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-kubernetes-dashboard.md) * [openness-rmd.md: Cache Allocation using Resource Management Daemon(RMD) in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-rmd.md) * [openness-telemetry: Telemetry Support in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md) diff --git a/_data/navbars/building-blocks.yml b/_data/navbars/building-blocks.yml index 24f98dc9..b9871cd6 100644 --- a/_data/navbars/building-blocks.yml +++ b/_data/navbars/building-blocks.yml @@ -91,11 +91,6 @@ section: meta_title: Telemetry support in OpenNESS meta_description: OpenNESS supports platform and application telemetry allowing users to retrieve information about the platform, the underlying hardware, cluster and applications deployed. - - title: Kubernetes Dashboard in OpenNESS - path: /doc/building-blocks/enhanced-platform-awareness/openness-kubernetes-dashboard - meta_title: Kubernetes Dashboard in OpenNESS - meta_description: OpenNESS supports Kubernetes Dashboard that can be used to inspect and manage Kubernetes cluster. - - title: Multi-Cluster Orchestration path: section: diff --git a/_data/navbars/getting-started.yml b/_data/navbars/getting-started.yml index 7307c878..61dea6e4 100644 --- a/_data/navbars/getting-started.yml +++ b/_data/navbars/getting-started.yml @@ -5,20 +5,27 @@ title: "Getting Started" path: /getting-started/ order: 1 section: - - title: OpenNESS Experience Kits - path: /doc/getting-started/openness-experience-kits + - title: OpenNESS Cluster Setup + path: /doc/getting-started/openness-cluster-setup + meta_title: Controller and Edge Node Setup + meta_description: OpenNESS Network Edge Controller and Edge nodes must be set up on different machines and provided in the inventory may reboot during the installation. + + - title: Converged Edge Experience Kits + path: /doc/getting-started/converged-edge-experience-kits meta_title: OpenNESS Experience Kits Easy Setup of OpenNESS in Network Edge meta_description: OpenNESS Experience Kits repository contains easy setup of OpenNESS in Network Edge mode. - - title: Network Edge - path: - section: - - title: Controller & Edge Node Setup - path: /doc/getting-started/network-edge/controller-edge-node-setup - meta_title: Controller and Edge Node Setup - meta_description: OpenNESS Network Edge Controller and Edge nodes must be set up on different machines and provided in the inventory may reboot during the installation. + - title: Non-root User in OpenNESS + path: /doc/getting-started/non-root-user + meta_title: The non-root user on the OpenNESS Platform + meta_description: OpenNESS provides a possibility to install all required files on Kubernetes a control plane and nodes with or without root rights. + + - title: Harbor Registry Service + path: /doc/getting-started/harbor-registry + meta_title: Harbor Registry Service in OpenNESS + meta_description: Enabling Harbor registry service in OpenNESS - - title: Enhanced Platform Awareness Features Supported - path: /doc/getting-started/network-edge/supported-epa - meta_title: OpenNESS Network Edge - Enhanced Platform Awareness Features Supported - meta_description: Enhanced Platform Awareness features supported for network edge is to expose capability to edge cloud orchestrator for better performance, consistency, and reliability. + - title: Kubernetes Dashboard in OpenNESS + path: /doc/getting-started/kubernetes-dashboard + meta_title: Kubernetes Dashboard in OpenNESS + meta_description: OpenNESS supports Kubernetes Dashboard that can be used to inspect and manage Kubernetes cluster. diff --git a/doc/applications-onboard/network-edge-applications-onboarding.md b/doc/applications-onboard/network-edge-applications-onboarding.md index 19ad3510..8c79e386 100644 --- a/doc/applications-onboard/network-edge-applications-onboarding.md +++ b/doc/applications-onboard/network-edge-applications-onboarding.md @@ -35,7 +35,7 @@ Copyright (c) 2019-2020 Intel Corporation This document aims to familiarize users with the Open Network Edge Services Software (OpenNESS) application on-boarding process for the Network Edge. This document provides instructions on how to deploy an application from the Edge Controller to Edge Nodes in the cluster; it also provides sample deployment scenarios and traffic configuration for the application. The applications will be deployed from the Edge Controller via the Kubernetes `kubectl` command-line utility. Sample specification files for application onboarding are also provided. # Installing OpenNESS -The following application onboarding steps assume that OpenNESS was installed through [OpenNESS playbooks](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/controller-edge-node-setup.md). +The following application onboarding steps assume that OpenNESS was installed through [OpenNESS playbooks](../getting-started/openness-cluster-setup.md). # Building applications Users must provide the application to be deployed on the OpenNESS platform for Network Edge. The application must be provided in a Docker\* image format that is available either from an external Docker repository (Docker Hub) or a locally built Docker image. The image must be available on the Edge Node, which the application will be deployed on. @@ -722,15 +722,16 @@ kubectl interfaceservice get ## Inter application communication The IAC is available via the default overlay network used by Kubernetes - Kube-OVN. -For more information on Kube-OVN, refer to the Kube-OVN support in OpenNESS [documentation](https://github.com/otcshare/specs/blob/master/doc/building-blocks/dataplane/openness-interapp.md#interapp-communication-support-in-openness-network-edge) + +For more information on Kube-OVN, refer to the Kube-OVN support in OpenNESS [documentation](../building-blocks/dataplane/openness-interapp.md#interapp-communication-support-in-openness-network-edge) # Enhanced Platform Awareness -Enhanced platform awareness (EPA) is supported in OpenNESS via the use of the Kubernetes NFD plugin. This plugin is enabled in OpenNESS for Network Edge by default. Refer to the [NFD whitepaper](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-node-feature-discovery.md) for information on how to make your application pods aware of the supported platform capabilities. +Enhanced platform awareness (EPA) is supported in OpenNESS via the use of the Kubernetes NFD plugin. This plugin is enabled in OpenNESS for Network Edge by default. Refer to the [NFD whitepaper](../building-blocks/enhanced-platform-awareness/openness-node-feature-discovery.md) for information on how to make your application pods aware of the supported platform capabilities. -Refer to [supported-epa.md](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/supported-epa.md) for the list of supported EPA features on OpenNESS network edge. +Refer to Building Blocks / Enhanced Platform Awareness section for the list of supported EPA features on OpenNESS network edge. # VM support for Network Edge -Support for VM deployment on OpenNESS for Network Edge is available and enabled by default, where certain configuration and prerequisites may need to be fulfilled to use all capabilities. For information on application deployment in VM, see [openness-network-edge-vm-support.md](https://github.com/otcshare/specs/blob/master/doc/applications-onboard/openness-network-edge-vm-support.md). +Support for VM deployment on OpenNESS for Network Edge is available and enabled by default, where certain configuration and prerequisites may need to be fulfilled to use all capabilities. For information on application deployment in VM, see [VM support in OpenNESS for Network Edge](../applications-onboard/openness-network-edge-vm-support.md) section. # Troubleshooting This section covers steps for debugging edge applications in Network Edge. diff --git a/doc/applications-onboard/using-openness-cnca.md b/doc/applications-onboard/using-openness-cnca.md index 3d1bb36a..7c250f3f 100644 --- a/doc/applications-onboard/using-openness-cnca.md +++ b/doc/applications-onboard/using-openness-cnca.md @@ -117,11 +117,11 @@ OpenNESS provides ansible scripts for setting up NGC components for two scenario ### Bring-up of NGC components in Network Edge mode -1. If the Edge controller is not yet deployed through openness-experience-kit then: - Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `inventory/default/group_vars/all/10-default.yml` before running `deploy.py` as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/network-edge/controller-edge-node-setup.md) document, **otherwise skip this step.** +1. If the Edge controller is not yet deployed through converged-edge-experience-kits then: + Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `inventory/default/group_vars/all/10-default.yml` before running `deploy.py` as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/openness-cluster-setup.md) document, **otherwise skip this step.** 2. If Edge-controller is already deployed (but without enabling ngc role) and at a later stage you want to enable NGC components on edge-controller then, - Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `inventory/default/group_vars/all/10-default.yml` and then re-run `deploy.py` with `limit` set to `controller_group` in `inventory.yml` (define only one cluster on which the role should be enabled) as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/network-edge/controller-edge-node-setup.md) document. + Enable the role for ngc by changing `ne_ngc_test_enable` variable to `true` in `inventory/default/group_vars/all/10-default.yml` and then re-run `deploy.py` with `limit` set to `controller_group` in `inventory.yml` (define only one cluster on which the role should be enabled) as described in [OpenNESS Network Edge: Controller and Edge node setup](../getting-started/openness-cluster-setup.md) document. **NOTE:** In addition to the OpenNESS controller bringup, by enabling the ngc rule the playbook scripts performs: Clone epcforedge repo from github, builds AF, NEF and OAM micro services, generates certificate files, creates docker images and starts PODs. @@ -165,7 +165,7 @@ OpenNESS provides ansible scripts for setting up NGC components for two scenario For Network Edge mode, the CNCA provides a kubectl plugin to configure the 5G Core network. Kubernetes adopted plugin concepts to extend its functionality. The `kube-cnca` plugin executes CNCA related functions within the Kubernetes ecosystem. The plugin performs remote callouts against NGC OAM and AF microservice on the controller itself. -The `kube-cnca` plugin is installed automatically on the control plane during the installation phase of the [Converged Edge Experience Kits](https://github.com/otcshare/specs/blob/master/doc/getting-started/network-edge/controller-edge-node-setup.md) +The `kube-cnca` plugin is installed automatically on the control plane during the installation phase of the [Converged Edge Experience Kits](https://github.com/otcshare/specs/blob/master/doc/getting-started/openness-cluster-setup.md) #### Edge Node services operations with 5G Core (through OAM interface) diff --git a/doc/building-blocks/emco/openness-emco.md b/doc/building-blocks/emco/openness-emco.md index d64b3c8a..f248b11f 100644 --- a/doc/building-blocks/emco/openness-emco.md +++ b/doc/building-blocks/emco/openness-emco.md @@ -302,7 +302,7 @@ Steps for EMCO Authentication and Authorization Setup: ### EMCO Installation With OpenNESS Flavor EMCO supports [multiple deployment options](https://github.com/otcshare/EMCO/tree/main/deployments). [Converged Edge Experience Kits](../../getting-started/converged-edge-experience-kits.md) offers the `central_orchestrator` flavor to automate EMCO build and deployment as mentioned below. -- The first step is to prepare one server environment which needs to fulfill the [preconditions](../../getting-started/network-edge/controller-edge-node-setup.md#preconditions). +- The first step is to prepare one server environment which needs to fulfill the [preconditions](../../getting-started/openness-cluster-setup.md#preconditions). - Place the EMCO server hostname in `controller_group/hosts/ctrl.openness.org:` dictionary in `inventory.yml` file of converged-edge-experience-kit. - Update the `inventory.yaml` file by setting the deployment flavor as `central_orchestrator` ```yaml diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-qat.md b/doc/building-blocks/enhanced-platform-awareness/openness-qat.md index e88d0113..6e65e8a7 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-qat.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-qat.md @@ -71,12 +71,8 @@ kubernetes_cnis: - - sriov ``` ---- -**NOTE** -`sriov` cannot be the primary CNI. - ---- +> **NOTE**: `sriov` cannot be the primary CNI. Intel® QuickAssist Adapter Device Plugin is enabled by default in the `cera_5g_on_prem` flavor: diff --git a/doc/building-blocks/index.html b/doc/building-blocks/index.html index f1499d27..4acbbda9 100644 --- a/doc/building-blocks/index.html +++ b/doc/building-blocks/index.html @@ -10,5 +10,5 @@ ---

You are being redirected to the OpenNESS Docs.

diff --git a/doc/flavors.md b/doc/flavors.md index a8da43cd..985e46c2 100644 --- a/doc/flavors.md +++ b/doc/flavors.md @@ -24,7 +24,7 @@ This document introduces the supported deployment flavors that are deployable th The pre-defined *minimal* deployment flavor provisions the minimal set of configurations for bringing up the OpenNESS network edge deployment. The following are steps to install this flavor: -1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). +1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/openness-cluster-setup.md). 2. Update the `inventory.yaml` file by setting the deployment flavor as `minimal` ```yaml --- @@ -55,7 +55,7 @@ Available in Intel Distribution of OpenNESS The pre-defined *media-analytics* deployment flavor provisions an optimized system configuration for media analytics workloads on Intel® Xeon® platforms. It also provisions a set of video analytics services based on the [Video Analytics Serving](https://github.com/intel/video-analytics-serving) for analytics pipeline management and execution. The following are steps to install this flavor: -1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). +1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/openness-cluster-setup.md). 2. Update the `inventory.yaml` file by setting the deployment flavor as `media-analytics` ```yaml --- @@ -87,7 +87,7 @@ This deployment flavor enables the following ingredients: The pre-defined *media-analytics-vca* deployment flavor provisions an optimized system configuration for media analytics workloads leveraging Visual Cloud Accelerator Card for Analytics (VCAC-A) acceleration. It also provisions a set of video analytics services based on the [Video Analytics Serving](https://github.com/intel/video-analytics-serving) for analytics pipeline management and execution. The following are steps to install this flavor: -1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). +1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/openness-cluster-setup.md). 2. Add the VCA host name in the `edgenode_vca_group:` group in `inventory.yml` file of the CEEK, e.g: ```yaml edgenode_vca_group: @@ -129,7 +129,7 @@ This deployment flavor enables the following ingredients: The pre-defined *cdn-transcode* deployment flavor provisions an optimized system configuration for Content Delivery Network (CDN) transcode sample workloads on Intel® Xeon® platforms. The following are steps to install this flavor: -1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). +1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/openness-cluster-setup.md). 2. Update the `inventory.yaml` file by setting the deployment flavor as `cdn-transcode` ```yaml --- @@ -154,7 +154,7 @@ This deployment flavor enables the following ingredients: The pre-defined *cdn-caching* deployment flavor provisions an optimized system configuration for CDN content delivery workloads on Intel® Xeon® platforms. The following are steps to install this flavor: -1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). +1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/openness-cluster-setup.md). 2. Update the `inventory.yaml` file by setting the deployment flavor as `cdn-caching` ```yaml --- @@ -202,7 +202,7 @@ Central Orchestrator Flavor is used to deploy EMCO. The pre-defined *orchestration* deployment flavor provisions an optimized system configuration for emco (central orchestrator) workloads on Intel Xeon servers. It also provisions a set of central orchestrator services for [edge, multiple clusters orchestration](building-blocks/emco/openness-emco.md). The following are steps to install this flavor: -1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/network-edge/controller-edge-node-setup.md). +1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/openness-cluster-setup.md). 2. Update the `inventory.yaml` file by setting the deployment flavor as `central_orchestrator` ```yaml --- diff --git a/doc/getting-started/harbor-registry.md b/doc/getting-started/harbor-registry.md new file mode 100644 index 00000000..11469d84 --- /dev/null +++ b/doc/getting-started/harbor-registry.md @@ -0,0 +1,206 @@ +```text +SPDX-License-Identifier: Apache-2.0 +Copyright (c) 2019-2021 Intel Corporation +``` + +# Harbor Registry Service in OpenNESS +- [Deploy Harbor registry](#deploy-harbor-registry) + - [System Prerequisite](#system-prerequisite) + - [Ansible Playbooks](#ansible-playbooks) + - [Projects](#projects) +- [Harbor login](#harbor-login) +- [Harbor registry image push](#harbor-registry-image-push) +- [Harbor registry image pull](#harbor-registry-image-pull) +- [Harbor UI](#harbor-ui) +- [Harbor CLI](#harbor-cli) + - [CLI - List Project](#cli---list-project) + - [CLI - List Image Repositories](#cli---list-image-repositories) + - [CLI - Delete Image](#cli---delete-image) + +Harbor registry is an open source cloud native registry which can support images and relevant artifacts with extended functionalities as described in [Harbor](https://goharbor.io/). On the OpenNESS environment, Harbor registry service is installed on Control plane Node by Harbor Helm Chart [github](https://github.com/goharbor/harbor-helm/releases/tag/v1.5.1). Harbor registry authentication enabled with self-signed certificates as well as all nodes and control plane will have access to the Harbor registry. + +## Deploy Harbor registry + +### System Prerequisite +* The available system disk should be reserved at least 20G for Harbor PV/PVC usage. The defaut disk PV/PVC total size is 20G. The values can be configured in the ```roles/harbor_registry/controlplane/defaults/main.yaml```. +* If huge pages enabled, need 1G(hugepage size 1G) or 300M(hugepage size 2M) to be reserved for Harbor usage. + +### Ansible Playbooks +Ansible `harbor_registry` roles created in Converged Edge Experience Kits. For deploying a Harbor registry on Kubernetes, control plane roles are enabled in the main `network_edge.yml` playbook file. + +```ini +role: harbor_registry/controlplane +role: harbor_registry/node +``` + +The following steps are processed by converged-edge-experience-kits during the Harbor registry installation on the OpenNESS control plane node. + +* Download Harbor Helm Charts on the Kubernetes Control plane Node. +* Check whether huge pages is enabled and templates values.yaml file accordingly. +* Create namespace and disk PV for Harbor Services (The default disk PV/PVC total size is 20G. The values can be configured in the `roles/kubernetes/harbor_registry/controlplane/defaults/main.yaml`). +* Install Harbor on the control plane node using the Helm Charts (The CA crt will be generated by Harbor itself). +* Create the new project - ```intel``` for OpenNESS microservices, Kurbernetes enhanced add-on images storage. +* Docker login the Harbor Registry, thus enable pulling, pushing and tag images with the Harbor Registry + + +On the OpenNESS edge nodes, converged-edge-experience-kits will conduct the following steps: +* Get harbor.crt from the OpenNESS control plane node and save into the host location + /etc/docker/certs.d/ +* Docker login the Harbor Registry, thus enable pulling, pushing and tag images with the Harbor Registry +* After above steps, the Node and Ansible host can access the private Harbor registry. +* The IP address of the Harbor registry will be: "Kubernetes_Control_Plane_IP" +* The port number of the Harbor registry will be: 30003 + + +### Projects +Two Harbor projects will be created by CEEK as below: +- ```library``` The registry project can be used by edge application developer as default images registries. +- ```intel``` The registry project contains the registries for the OpenNESS microservices and relevant kubernetes addon images. Can also be used for OpenNESS sample application images. + +## Harbor login +For the nodes inside of the OpenNESS cluster, converged-edge-experience-kits ansible playbooks automatically login and prepare harbor CA certifications to access Harbor services. + +For the external host outside of the OpenNESS cluster, can use following commands to access the Harbor Registry: + +```shell +# create directory for harbor's CA crt +mkdir /etc/docker/certs.d/${Kubernetes_Control_Plane_IP}:${port}/ + +# get EMCO harbor CA.crt +set -o pipefail && echo -n | openssl s_client -showcerts -connect ${Kubernetes_Control_Plane_IP}:${port} 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /etc/docker/certs.d/${Kubernetes_Control_Plane_IP}:${port}/harbor.crt + +# docker login harobr registry +docker login ${Kubernetes_Control_Plane_IP}:${port} -uadmin -p${harborAdminPassword} +``` +The default access configuration for the Harbor Registry is: + ```ini +Kubernetes_Control_Plane_IP: 30003(default) +harborAdminPassword: Harbor12345(default) + ``` + +## Harbor registry image push +Use the Docker tag to create an alias of the image with the fully qualified path to your Harbor registry after the tag successfully pushes the image to the Harbor registry. + + ```shell + docker tag nginx:latest {Kubernetes_Control_Plane_IP}:30003/intel/nginx:latest + docker push {Kubernetes_Control_Plane_IP}:30003/intel/nginx:latest + ``` +Now image the tag with the fully qualified path to your private registry. You can push the image to the registry using the Docker push command. + +## Harbor registry image pull +Use the `docker pull` command to pull the image from Harbor registry: + + ```shell + docker pull {Kubernetes_Control_Plane_IP}:30003/intel/nginx:latest + ``` + +## Harbor UI +Open the https://{Kubernetes_Control_Plane_IP}:30003 with login username ```admin``` and password ```Harbor12345```: +![](openness-cluster-setup-images/harbor_ui.png) + +You could see two projects: ```intel``` and ```library``` on the Web UI. For more details about Harbor usage, can refer to [Harbor docs](https://goharbor.io/docs/2.1.0/working-with-projects/). + +## Harbor CLI +Apart for Harbor UI, you can also use ```curl``` to check Harbor projects and images. The examples will be shown as below. +```text +In the examples, 10.240.224.172 is IP address of {Kubernetes_Control_Plane_IP} +If there is proxy connection issue with ```curl``` command, can add ```--proxy``` into the command options. +``` + +### CLI - List Project +Use following example commands to check projects list: + ```shell + # curl -X GET "https://10.240.224.172:30003/api/v2.0/projects" -H "accept: application/json" -k --cacert /etc/docker/certs.d/10.240.224.172:30003/harbor.crt -u "admin:Harbor12345 | jq" + [ + { + "creation_time": "2020-11-26T08:47:31.626Z", + "current_user_role_id": 1, + "current_user_role_ids": [ + 1 + ], + "cve_allowlist": { + "creation_time": "2020-11-26T08:47:31.628Z", + "id": 1, + "items": [], + "project_id": 2, + "update_time": "2020-11-26T08:47:31.628Z" + }, + "metadata": { + "public": "true" + }, + "name": "intel", + "owner_id": 1, + "owner_name": "admin", + "project_id": 2, + "repo_count": 3, + "update_time": "2020-11-26T08:47:31.626Z" + }, + { + "creation_time": "2020-11-26T08:39:13.707Z", + "current_user_role_id": 1, + "current_user_role_ids": [ + 1 + ], + "cve_allowlist": { + "creation_time": "0001-01-01T00:00:00.000Z", + "items": [], + "project_id": 1, + "update_time": "0001-01-01T00:00:00.000Z" + }, + "metadata": { + "public": "true" + }, + "name": "library", + "owner_id": 1, + "owner_name": "admin", + "project_id": 1, + "update_time": "2020-11-26T08:39:13.707Z" + } + ] + + ``` + +### CLI - List Image Repositories +Use following example commands to check images repository list of project - ```intel```: + ```shell + # curl -X GET "https://10.240.224.172:30003/api/v2.0/projects/intel/repositories" -H "accept: application/json" -k --cacert /etc/docker/certs.d/10.240.224.172:30003/harbor.crt -u "admin:Harbor12345" | jq + [ + { + "artifact_count": 1, + "creation_time": "2020-11-26T08:57:43.690Z", + "id": 3, + "name": "intel/sriov-device-plugin", + "project_id": 2, + "pull_count": 1, + "update_time": "2020-11-26T08:57:55.240Z" + }, + { + "artifact_count": 1, + "creation_time": "2020-11-26T08:56:16.565Z", + "id": 2, + "name": "intel/sriov-cni", + "project_id": 2, + "update_time": "2020-11-26T08:56:16.565Z" + }, + { + "artifact_count": 1, + "creation_time": "2020-11-26T08:49:25.453Z", + "id": 1, + "name": "intel/multus", + "project_id": 2, + "update_time": "2020-11-26T08:49:25.453Z" + } + ] + + ``` + +### CLI - Delete Image +Use following example commands to delete the image repository of project - ```intel```, for example: + ```shell + # curl -X DELETE "https://10.240.224.172:30003/api/v2.0/projects/intel/repositories/nginx" -H "accept: application/json" -k --cacert /etc/docker/certs.d/10.240.224.172:30003/harbor.crt -u "admin:Harbor12345" + ``` + +Use following example commands to delete a specific image version: + ```sh + # curl -X DELETE "https://10.240.224.172:30003/api/v2.0/projects/intel/repositories/nginx/artifacts/1.14.2" -H "accept: application/json" -k --cacert /etc/docker/certs.d/10.240.224.172:30003/harbor.crt -u "admin:Harbor12345" + ``` diff --git a/doc/getting-started/index.html b/doc/getting-started/index.html index c4b6d93b..35875c79 100644 --- a/doc/getting-started/index.html +++ b/doc/getting-started/index.html @@ -10,5 +10,5 @@ ---

You are being redirected to the OpenNESS Docs.

diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-kubernetes-dashboard.md b/doc/getting-started/kubernetes-dashboard.md similarity index 100% rename from doc/building-blocks/enhanced-platform-awareness/openness-kubernetes-dashboard.md rename to doc/getting-started/kubernetes-dashboard.md diff --git a/doc/getting-started/network-edge/controller-edge-node-setup-images/dashboard-login.png b/doc/getting-started/network-edge/controller-edge-node-setup-images/dashboard-login.png deleted file mode 100644 index 4cdcc314cbf5c1f5e5685bbe3ad8254bc49cb3dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44227 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

SYaf)S-xyY^!i^riXfQF$P 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 - ---- -title: OpenNESS Documentation -description: Home -layout: openness ---- -

You are being redirected to the OpenNESS Docs.

- diff --git a/doc/getting-started/network-edge/offline-images/offline-copy.png b/doc/getting-started/network-edge/offline-images/offline-copy.png deleted file mode 100644 index 35df385b9b74634c18bda7c12d294f5c26593e53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35821 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

P>E(DRp?X78j!#Kwi$JYr6(D`c9c@ zngUoN)l$dADql<5&0j2r1MDRRVCzPDVR7Gcy3-wGi;_a{2CyxytS&yZ@Eu%UUIt2{ zY}&HUVRgT$v+*DCBiRH3&oz~k$V$t{F%-~l&6c!HcS2H?$_(iYVzom>ufaxbcel}L zhhkMCDoK@xc_-f$+)9z@celAbRnm{gi&bWYt&LNaX~Ah8Sq39bB5$SBCYzJb#;vQX8y~Ok7WTmw2@twy zfjf1V8f)JaO$uL8v=3;%So%;furudzZB0;UVLEs?s$@rqioDQO2_PdSX^XlN^A0R- zJbflye`CmDQ2~j3lWO0Z8#l9e1oWs{4IdfuEw8RJ?w-;2alag@)23c9z`70#t$C-w z>(ANw?I@kGbJK=43mmCiNxz$0TEG=q){UAeOrq$}2iThbe?6|=0W}q~g5qMXrML z^Prl4$Rq&Ks_J>f0-p@*PIZ|jdAVHxd-YLm#wte?%vy*%Q2aFG+ zL(H%0{)R-`VfXeZV$!OEy6?rId|HT}@C*Q~6O$UhSLAK&B zUw-GmmqP_YpC3-!kT3GG|CYlbSu*|?e1PGx2p&Pv?+ZiB!oVC60lrZ8rcXvgx9%d@ z`xCd&cXyU!{dlGD7hRUk(0i#PN?8tt8S~naKdB;H8?;_Ce|vXyN8g41RlM+yH0w^% zM_5hX+}d6d$Ch-v4otBn*e6m%gbYEG424q3hp|hWaw4DgXB5$9dg3k|ju{-Q2H$LH zl#x^j8P{oMNb2XXT}LPbsAb?GEj5H^BhxG_d0iFm3o|G=RnEK8zdEz`bA zfVf)1oJyDcsLO0HT4!&%aV|3BY5K108_0a&S-nhV1vzgrdwd9pXYsb|nn1s9slCOF z4}^is23JGa8p zo!e=p4#eAOG!9NkCHbw%cx)*((-i*WK!DfCUBz-}DZ%Az_PO_71p74@{rrLpgzjz<@W{4>I z_udnv0uyY6NAdL3F*gNy_c6(>$QWN480H2S@PTQ-afyOMwcI%VPb8PXpujPdo z6$8>5`xWsqP)mTw4wua3QE)aIGj?Ch=XT`(W zq=#(E*ywV%T3y^xlxU$MS2=oM;d*vcvArlQj{4`jQ`c6{?kpY1erre^!0Y~)ojrDs zECuPB!n9i+I}iNAvHWbC(Js6|KPye^_JM4Dq1e+VTNAgp7ZnErl-gZRSGg0WFFaw+ z4tw~PdBH$MIAELlpYK9_Y!u&hmxOf;?;uV$5S7h#VjIiWOhbJ4EN|Z z(lk>=E6SvE(0x>0dyq{%`O3?A{X~otTV>?WzPJ4Y0}*A%!5jj%PuKzs3z4w;v^?|l z(o3cN`=Klxw|cs#v_u^SHn#f=Uyd>)=19O-XMG zbsZT<3M$S2XMaj?tp$le>;d=?$)_M6s$*HaxI12^bNB8#h;U&f$vn7xWa*df?Cx_3 W@cb-n9qo+#^9|WMGMQ5Mef|%6hVuyk diff --git a/doc/getting-started/network-edge/offline-images/offline-flow.png b/doc/getting-started/network-edge/offline-images/offline-flow.png deleted file mode 100644 index 0b01a301c484c13a7b74c7859446543122b1fda9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46342 zcmeFYcT`hfw=RsLLBI&2SO`r7>7WS2LJ_QeCK?B+%fJS-yP%480y&Wz1N;=uDND;=Ch)V479*( zJZwx%OkkL{h6xkXAyy`)gF#0Q0{?Tu8j%kCbKsGQ)=j38pS%me#i6@u`f5x}pJUl6 zj)#G3R&Q;qM@&pyj~Ras;9Ld#n3yWlU>a&>e)cQWi3*vKV0`2P-a*s6Jwi5U#q1>) z{Kv5QRhSHl-LgZDTkepM#M=b3{H&<+t>U-aBP4%rr$f|brNAODg{tMXI9+VcC!qY4 zo}RoJ=+M!?&u8-K(U}L%N>9&u4S@VW%^(h@X+i9O`_|$X$)?a!b>FIc71upyich^- z7l8dm2va z(GsYI`4}qQK&*Z5?8MVzX&+_jn}+8f-w0kXq%Rc0_Z6V+OmZc(G5CJ3DyJDCggxs~HpLlkx5KHAi(xPQU`t-{KryT>rV`(wSnSJCu$GOKhFngf_ z4Uij$StsqO9|d-3sucAjd`5ElYoH|!bR(UBpm!g?Rz$17k_9Hg$2f3ITbwwi#YwOc z#}wFt{mz=06%ql|7Dy>RU};NKC02eF6zo3P-O8kdw{JCCtR%+R&y% znAjDIKkqG$MWgg}%UB*YL5fbH4=kQT ztDRo`4tW#3o{DlNmn%SD+0(+{072$Amd&$=xNyQ8aU=VkFcS|WY$!NdxFst4r zV*R^g=k4K0gmJkWY`fyy(%5O&-RjcMU<<$Sfro(a$d?TwZPaz6YwGvb+~Jhbl`4uQ zOZG}nZWQN zV*T~^iw`kDyL;gr_Sp4Xs3m*(DmFx!5ktm@2#3|FcG=lTRMi0FnMRBD&gQgaw%$57 zR~H^#CpJ>4SUaSR+BJWRzoHMgjZQUm=%IKnBZEGbgd&XYhgw&d65sYF=^GrzB}`%# zY4k1E5oQlIenKT7XhA4TVRl`}^mXK#XVtBqklMv2$m1z~bYn`vUE4y-QhV%%0cw3G zbu=9MN6l6hP(Ny*fZl$Hod70d7VIK3Cm{6JMzRU=gB4L`y}AmnCy}c2Sm6Va@cla| z@&U1^0+BZcT*3u`;U=%rCCS!zbhEdGt%M%Pv9v2lGS;OJf(GV|Azuhy3$^0&Gr&eQMvxm z2;BKbv51p4DR_*vm1fLb1=E;PpIF4D>C1}=NGeh;&rO~LpJGEWJsDg8XTgsOFUu%d zI_Nc#?e)d0+_$-k_7Ale7)iGWg?(+kA%t$cUmFcQg1p4ZAsFh4YS1~@wbrr8ANo6$ zz&u|To0G|@5Wu{vRbC*&y5xB)KANe? zodiNpQ4eG%GPdfrYDz7(O+aY6HM+|h-57iXSljJwkjhKXS6koi`jBgo!BuQd!STe8 zetE(<=AsCPM@cWG-To@kF$X8;cj26s%hujXb=L-~%3D9yUGhG$8a=6fkSdN)_$XqG>2&=Narmlt^@!2;mur>kBsf??FXfzpIk!0n7Lv9q8}D%vgcn z;2%pmEB5E_hm`p4EeP(sZ$$fQpTwm*r`(QN$Lv3nc?(-O;f!lQ4{1xqZ2t%sx3V}K ze95(CKf}*l)79BST5-k~p6V-RhfNT+i2{tqMfJ}f?$t+&IObrB(&<0fl2WkJJ>K(Y zXYndV$(sTpE73`iCurfA?9H>-t@jApPiVa@R;0y(Z(FG7npIL~US)fbfQ$c|ACj;P zu_CCIc}kZEYE`sQVpP^LdJSZEyAImMe>F}U8ti=4Sm9*4&d)8{zS|wFMD%xk^y*MO z*}ih|n6!L+FzR-a;^QiGZ~9C~Js6m+#T>Xv;J~OVTu^P}O{X*~LeE5@c|E4x_HBsc zDwxOOEfTr4GJk-zv^Mh1w_~~11m<6WS1Qi{%ud`TrkvWdUEJ5Z?$3<$jgwcfG6&qiUu(puy=$>G zt?n!?Db?4Br<}L7|5}tTT;cysWPJwQN2@n*hGHo=_x?VB;;9refjDmF##e#UN2a+cBX zniS{@`zI2|&iQwn)MEP(hlSd=0tMa($TvlpjCL#^09^m_95`eS0{@cWX{;yyxjZAM zT^j0>d8paZL)!6cY!asbsm;mU#5l5~EYc>7=$)CE+d@`RGpUMAE7nooGT*rkH?b(6 zT~ObxBE>qJ+nJoW?Yitv_RQ?O$4xK0IN%q|CqqsRxfDmjhg`SbYJnuwiH(04V5Dso z*ASCfJ<2{@$HH9rcx|VMPW?Tf#5r)Pg%!+OAp25iJv>QS>KyPgC-d4s^+$7A+?%5< zT#`=?F*bDwt|1Z|eRFtioiH2ET=xrJkwQ}E;H2qgg2rj5nZ?gt;>g%*5?!)vU6GK5 z@$Q{kKNDi!>sqKZSo+wsza8>|G9NXI-@@NUZ+HH2w}3OrDkSZ8DG{KjBa8#TO1wg| zi@b4PfjO*Hyz2S{VJ=j*nMcb1difqCUCqly9W&3Wq1q>iULCAp`DZr1SrG!qC0%S& zpugu#JUf7=8p}oZ5V;QB_&)oJ2e*%FaP2fUU%PFQ(v$=EO21% zb7{AvNnr`(oWdZPJ;xq<(aM|*GRYSmmvTAcNb1TCkQO9Y`GdYP*V*H*)fo%(#HG z%CnP^FqaN3H%utv%Kuz{Xk10Nx9=9h$T%m>q*OpemX*4c26(zBfPmf^fX|((#y#ZH z6`Vrs93d74uf}GSi^f;WUad35W|hf19iQKjIfYhZCa+~iP#JR9Y!rZX>s9QC}O26CsM=<;Jn}6h-z52{(Dn@x3I z!p?Q$$Z@7&LYB$El=97X31jg=4#X`sfuYq!a8dT`Y#vj*27USfDlv1r)0_+Uft|bn zmKY^tu9>px3K3Dcws-7~IUdz8eG6lUAfavdeLLCD7CR>yCKoLV{}rf8c!TxS*{2;6 zvKhIR=;Z3+aII6o2J~oyJger8=%hC3;B+MLl)iJ1Wh|;D;My< zkBWRtqVNc2(mg%^i)rf@E>rXqa?fzRK#shMRYiBICd!H)N&MDU!*ydW^`XC09LBUN zYx`7c^VS@gLgZhc)Tq8%CH@0v$gnwk1SeYXo<&daZej4L+D6DTx8L~8#P&IiFJp`F zVHzWKanS+TNmHj^#T)ffUC%DN~qWDYoHE;78C1YK=48i<6M05N5sbw(z`}?mp zA27TPx+eN)4*BqI zL=u|2%DFTB7&qwW#iFx8~$SXfw!&pkI^66Ediz?rgR>OV*)K=EU zWM<)?)T?J_(^t(7gzZ0;7LVnXi4W*BWKmh%N&oKy6o)jKQe+MH*YV5T*Q!HiHbj?nc5e-Teu!dri*>9W^CLDhE`Pt_f~Zk z3KXlkBCux?>#w0*5Dpf>2&ICyHz$`v&%TVv2%nb*GW(G+$crZOaM03qyqS|b>tHZi zQlj=qMuS9@m5BBh$M*}+lUBP`CL!(oZ4VV1s?KWO-!GPMvj#Hy$6867zpF%Nz1E>e=#k8~u%4*|((R^;a z{-U8obOi9 zxq1ar-Wd3lt5wJSln;SbJ>2Bt$VBtivbd-S7aA`z5bWQd23sP@??8gY-Yvz?} z&vX9zku6Zx{N2!(UU1>F>Tk~k=)Ems8vy3m_Hm7B;Xlx)0VLy_Q=+I>WHH9PK0-NR zdT)O!>$j^Pj0%!tB_uS+n~7*AnZxdwJ8F9pES~`5T|6b5gW%OOeq(n{q(ll9r=3N2 z-rVjS_!A!*Av;XL?M{uEiJb7P#VO-ZagxlT#tYAX%64~ht%RhB%M9s6H?7b9%pyp? zTkN&>c3wTghW}9TMXNXQM{K`L;p-iF0Et^H8iBmfYYTxaKge9x+^mfzObtaOFiJW7 zYO=HOPDmlz_MkDLBy+9(r4c^Z&7yeO?GR%Ib-)aodFz+u5)Y-o{ddQb%EmhKs>P|2 zQRwE2KTeSVG(ryhq*W)(!72xL=Dc*J+rzO*LT9_~n!+G)qM8(yV^Z~XjV10YsV7d* zzRKL^M4}hlsO%6>KHFWXhh9ni0lsX}SsJ06T<4513*iN`zY^L{HR zBi0tp%kM}0&rfN_Dqwl=rS}ES_>t{4?(Tfa8lc|;s^9-%L@rIZmkf-z>C~&xBS1m6 z2Kp2U)QpD_PXmDJ`7pXMz}fz$#IZ&^d{!iR@;m$1L~bGX|AXFk>Y&v+qcwW|&fvcQ zyTGjj0SKM0SA{jRR1D_|I!A3I`m@6q%J&wN+oIq?5_x)U6lBvGc$R< znlcsuJ^B|?&if0pv$R=@O0?VBBXlnOSlq$|nueX0{efCqVjvH2Kh6ovY>4Oeav&zm z*`q^i&ydY3# zva}QrljDb*2L8d;Zc9g_8;87FO?TfJ%;qtp)nGtm<;4M5ocIGzVXLjhq>RB^q`Mh` zuDKE&P`Rsg!4;()WlaJqM)J&9GT>=TJ%NgVX>mLcy0h9j1c0Qy#9)WyS9N(k!DHe1 zBL9d_MgPIvSR*8LBDj7t$2lp9^)*#9*q9|y@bDff!JJ%j z3$f<#4C?oZl7Od>=+pEyOWGiwo`>K0Em?g}7QhQBv=o$i*8J;_3>=K#>L0Z5%9RYt zcO->K$%j*}XVC7h5`#y&A#JKC^CN&JA5Y!GH7sti2-G-dEiE~(@KycZfgqSTm|2g9 z?1&<_wN$qsscyE?r!%OJuzRxgB!%ib=iE0K!E_w`pWrxeZ`uzVEF~OCk);o}hOBBK zr|;tS3h8({ZSOqr%0Jy1Ucko-1+M+P-ac9ffM@(uV19{duwLR?A9nMjDz%!{W=NsL z(q`d%zO;T>8WkS6Y5}ddi4c_QhWyC68fFUt@CTl zt&r)vw0`>j1df)+0}V8+A~R@Wy#$%WD9c4 zcX`x=A$%y*dv7Y1x+Sn*Q{fx5zk!)k{ zEgVWqtWNFWmgz-@?gp!qURKTtZF@}t``8f$yVHK>5$x(z_}Q#5%S!_875<(%_~6~W z?e7?+FQL#YS8xzNYEK3wg1*p7@4!;mv6b_vb=qB5!!?ldX` z?*@v*sGyl|5mBo+CgWkUv$r-(D2b-Z=3u z#n&^x8A8EeHwx*qP^?GzcjS6fX*;%gxSn4qTz+Vi(p-aTkb#-S z+I|BGqYmnFaPG^K5aM{c8+UyK%61@!08j8}fn=z#1Imml3z_9qR(L^@@7>@MCvYbX+~AD zBjrQaf>y}lX_VNxL`?3^ydjOSr|`WhF#JkPZLU{}P4NC`_Q`hDCPGfv6nrl_`Z1ElF9ny2Yc&Y8Y=iXCf20j_IMWg}}v|b_c zny7An&Y&_(-5JWUS^etKnN{f`)zYA6fiHvf=sksaeG6EPn`IPfcvL3kYt#I=J!Knd z4cmM-Tg7Iov%*NsWJ^i`%rcdSw0EfX5+@+$H^m!VV?#pz?ZX$&Vo-@DZnsOtC~CJV zegA4x7I$M-RPCWLzKDc9qdm)m7j^Q=TmS5F>ihH43qWQVl$r`HLwyaCH@;V5&4X2x z-Cgx$M_%$<7utPkTWJwZ%&W3sulr&~pGIz$(tpL$cLiuW3CR5!y_#-`mJTphca(j!50bSzjO8=87px&VNW^g@JIp*{LiZFCdZT6t5Jwu+^xBj26x zR&E=&xgBi3djxmmpf8kA?$_U1$`$pzvv^s86}F-(eC(L=(~~YKW9A{XDOffc5#irc zjD}39b(g#42wE{lTJ7kKhnHgw-v)+<%Qxt7MG`u_cg@@5tVc=}3R#;yh7BV4YIXlA z4}tp-htr_@)PC}2#;hMzRHH069+*a8b+R$H+Q*+b4c(u3N8%raXnZsA<7re~-_SB5-Z%5mqhe*&qTuAuXP-DZRNZB# z#)7Or_kAEFt7jqWbWT>|-ATf&0ozOnZ)|~5DLMlhcg9#q*Bs{TMo>3rRi@q)7>{IE zAE~n7O26Q)nW-EX2elPBUJTDsggL9vDwVd)aSt%x$&gwHv3NWk^>s_KOWT)si|Q`C z#u8t{jxV^bXwD6khlLv;npXJ3tEQ>5YGKR);Z6JI-yjcB=0e!THJsp%w1{o`y_dv_ z?K;A!L}9>CG8^LQO+vS1X%|F$d1(&Wu4E=p&|f`BiYKGo=U{F<)SHK$E*9oL%Z{Ke zhPXy*B*4E0$Cr>)c@iVtbt(`QDL~Va3mAYn2bM5Fn#9fbv7}6&SZ*5e?knNWZ~UCZ z5g+{7f_Br7AbKq00)3!Krn&&HJ(D1Un=}H8ZP|gk@?aLbaBd#i4gBZ)0!9PmJ#?-5 zXcE!mQf%+2{DU`v+K9N~@&d~#OK}lA&~0*z%6PARlJ+>RgeQeKRF%^N`CvP>(Ltol zVILwG@alw(!5vm%3Rqx@ic=xC8jd8ijitPs$cG!>PQ3)8E$;IPEtmaBCRqF~*7ETT zxr~BxC*dW7wwvr=ET?e}<|s#Uwn(MUtZh}JmshT-z(%-qZ7a0-M2&TGeirrD& z^`%qj%SifV{LZF;!NIzcRJ5Are!b;g2}jthU2mdpQRlf=q4y*%yE)DfK~^hX{^vd> z6_MIe=0JIWJM&N8K;J=bWCT;_GFY5={VPsWxOCV&ikKUz&m5{2tKU`m!7pPt+c$gM z8vvk0^gRcR(V?Fb%PW=4bW;KBA#R8Rx%^&Wf4G~vM&FjDwW@BwJ97n&DUtWkq0M!0 z0oC7I1J(M6@M{FQp2y@M&B!efdq&vp(VGb(LD^UQ?NG>XCbX)^GIwd~Y0p)l^UJfT zuDTViy1kx}aDYBy82nQOF3j7I(rkNJ-|L_^>3pW!?VZP!p+t0ShWF6rQA#C2Pir$`zqG1&+>!5n64^Ca?1g#QNW zM3PBza^!tjA3%R7msO#Ej-@Ws7wMap^q+b3k!tM5#8lkO?YZlElBuhh<56{GvLrI8 z@YoVK``IskGXd-2j}bbz;*Xk@3kP-@^((k#Qmib~_P^Gxfykc(c28vNomX|VH`z3$ zPvxP=DAv|Z(A2(n(KV_Urwk>gG{k^bB#A9;znfCkUZ8PbXSW)TD?M%Rj_ft+dZ<+ycECMIS>tr&Wv04;&u2;W~v(h-zABtal#|2m#ZruWfxXr4*3YLH$!iN5nlb?{Sl)Y$4Qq>$Zjh{wQjJJJU;La@07jDm|F9g5`36RQ_*E7~HQtY0(l;hQ1u zNtEiOjuu=GU{<|1Fr|Rk{n9RhhYlA4x>;linOqzS@qBYfXW%|hw^MN42Ti$r=lfvO zqsP8w_%EeALO38Ho84#Yvdv%r1`GRC`+GJl;-kbRBC;!3HFAiMom|EGSk?G0$O`^oy9K!`i+fAO^=+G$$YEmWvu}hmA4wD33YHM5Ay%JicL_Z{Cwka#RI1Z9={k{h(2f3NR=(I84=#n)JR5*_|o zK_P=l7CHuNgai~2;~#!eECoq??n~7E!KZS-gMM5KcLA~US`c=@$~j7#Hub2=pShv~ ztENo?S?-a&GIwEW!E9HJDY_9!;&{t124_Eym_*8O5_0kdwAhJ{ z3+_#UbpzQE09ewF2=T|_K_|91Koz71cNeT2Wr@7A0__rYw!%~SvHFklfqr*;f$--7 zN(%&gU-4u~-ty?v0G=pfaG0&!C@d!s`X>=)*#Jc}3~5uIUWp{*BqNFoe%Pr`5!Q@M zJ`{CiI34q<0V0dsflB>k{999d0)guV3G~AS+K4f9;>O!3z{56sRK0n1d8|KmB0a33=4$LgYPiMUsP%D+yy z7;IsB&Q~%ofdNqN0I9Yd^v7*!>?s+mRTRc}#a!=F@Rpr=LSeqj)r$ky#jFB(8JMLI z!rQrafe(H<1!+^&ns1@<(Y$>7$k$TPi@LQWMf)xCLNTg}!FqF~;+Q;*8Q}i^h|J%X zPTK(8JMmxeYWFyfC|7hSmiTE;p;CcC5Bq=P(TzOv7%j2=^wgnEbR*ebq|k!VhWQs> z{~!3YyV2(D4RQ;)aFhk)g;PL2M@U)&wHAX)_urnCG~OiqMm3-FXgu@cKO^z~0hbqP z{T9id=A=+H?eDO9!9Nid?TQ&JuP)pNs%F+b&;K%mKVUv^i^qi<&HclN1VW~_R=lNeBo&QflAP6+7`-Va z55!v4n0sJN98$OttwI?+O*Pik3xmtNZjwbl2qvU_JOyBVPoYLnyb)_a3*wc*Z_y(R z!DFEpu^c<^F;08;3nvYx3BDh)m#STo3QM3Dn zqkc?iplF27I+o2A?pJ{!<%^jNhhs4fwx{D*Lh$l?+f|sPwh7yl^fz&{b``HAhaD=2 z44qtcK?piheQA?pij6>n0cs_QiYQ;S!SA|yF*S1!zshpv=K3S)m9RAs6RZ0gs7Drr z4>bS!V17%BSSLSL3yOt4t$NUbyAc*rXTf{3{60Wd{tDFL4G>;6Kjx>;0?7 z5~zJtV>|Sj^HeH8%cy!#j%z68aw=;LR{O6n?2|!L6B-<=#!l!1MKOJwAOPN?r0?ub z+-)+CX@c|vdHzA%hwLFD7V$86O|5)Rhcy^fPShp;TUO;SoE>j#f4ca201>qHs9prW_Y;Z)S~|GyI1lYV zu0ZGEf+hl!R06b>hDuxd?g9-1ajUgQYA}^`<`aybM+G!aaG3Z!Fu1wlE|gw>%--EK ziOP9NxiU^y@8%Q?WLjRN-y8X|SaSz>$uU6I2~wVz&@7y2eI@r2-Rn#wj?vjM-2hE( zw8DO6bY3_S91v9P#&}qzPCMvDsZ9Ld=0-T9xBzU45|RXLvW%T(=c53b0n0iJ2em{P z>!cM)W$c8qGUC_>J>^; zn0_RM_KAMXSV|1EiNHMtOnh(}yp8#yoFpiLBs=W&e4sFYPjt;Reo(8iI|GgZ@H+kT zR@@yF9*2bB{cCnEDK<&1Q}-CQaAF;#qIbGW#dVTU0VIV%VTQp|3GD?evOu3~4J5Mr zUU~~8+uG;6%Y6%AI5Dwuv_i~u-*}xZpd17^qjsrMq>@eo*UAbwXhS7H)rwn!vLI-u zAcIZ0{^C#ja)IJCnIV5=lnA1Y-CyyVZT!>0R)fi4#MVK?!_Y~c&tPA`1u}8*zlMHN z@ft%FU3%S3c(g(U2eA&MC`9ClJV{E%rvTBE@EF~gSHA|MFR9I7Xo{cjsRDiZJ6tek zgTGplS@i%%& z4-P64$@cjpk`bL;SVb!W_XNp|s5zpU_|HNd!i4UGwy_m@LCh%J^6R%W@XWfMhM&E$vTl84F#5b8`k0&8c;EzuiKwbR|}=f}3L5?#7-l zI|(A+A6xW2q&d>LH7H%nb$sn^{rLVc}S|HlBb;Q7g~lCa+9_zZ3wI zI6=@gPPOr)Hu^nU+j>&2BcHUrS_jNYoDr6Mfy&rxzPh*miG$QL?6$x&tZ7N@o8dQX zX{52CoQo4^Vfn(~0wK6aG3oouN<}^QB{KW&L-}y$SD}V$6DjT1@irnr7LsJT4Vq@5 zq-Ux4O%DAAraDAxu}r#@C}onL+JlwMr&WH-Wq@Pt{^4J7A%Pv!r=Q~*kUM&8L34ag z+!_chUy{JdY3^XIDJoh2DhY2{igM<-#YoRV2*H>3hnz)pmxq`&94XRlLi=u0MNsXK z51i@`sjp|{Q071*{=T}cnX?^mfI)ZXRXH_s5!_S~yjh>GO-sXEPzVBQUbgB|GZg(f z_}9Dedpb{{PbKn}!5UnH`|k<9_3H#@ph@w3hZd}r1+-YdpB}O#;fa*S>J@AH)aCp= z;JA}EYgQ)*@;ekJjNI$xfAhzpHQ4Mg$xG{nK-W6Wfpa{Dyd67{!h{dPBR~`b7*EZR z7pW?OfR13x*NgAJi0a#^%chhE-!Zre1E{k{OfYKmu!AD)8XH}bXPA2uL5yV_2e4BX z4iub;@(?)o1UF%K8PZ91_RmU=E&Y?S1DT-Mv)}n)-Hg%+wDMZ1Fx!*h zV%nWamyo+_F0ZXn@_&`b4>Z@SH?=<%gQlxxNomWPrqefny=ya{iUzx=+8TYG5bG9M zh$NR7;69wJ(fyV2SR(Mvu#V0f{wv2sMyhOz(aEpX5sbR(+ct={`kn#}HKLt<+I(}z z@_n*O_!^K81@RQFDW3bxlDWPHe01kDGvj=dK{I6Y*JJf~O7$+QQ;P0Mo7XHC0AsUC z0`~uLH0Fs`zv%G$4uQlXX}6AYw0ShiAZo0)R3G5clgcoS51fgoxss%w*-3`npw(?Q z5@LYT{_r32)1S2Zh7Hi-`1j#Y@W0Q&{=0}(X5?)D=T1j=BdJ5k8SIX1{SK4{N*ySr zEaU5UHs~(pocViQhQW&&_V!<4ptyC20A&VG*)j}XAEE=#)zJs=w6uqbKa)S&GN9;M z7|4D45xr|Jy`JuC9Q{)^WD7xCEEQ&tFF@|l`tW;m-4nufqWmAAJ3oEvH;z}X!)YJs ztE#&ZvR_plUIS+^ff3>w=~QUIWL_C$k$M9_;8wSU8mF=?w7K74bFD*g=GM?K2>1Zw2Lc9S{LTP_F@6q!WQ^Za zfPa0g1Tmq?ww!LS9I#Pww|hJz@G|_Tt?rlRin-pAR>Qlk+q*MRRY`FH%r1pADt!oe z&3jz;asR0n-gf}Nk#_m?yO?X(Yk>h3kKCoLQlX{%8LCK!RQ9MQRo9W(EioybU5n&vs_imms5_&~wlsxBZX{)x9@qfbrs{CxU$3IHOW zQ@P9|+UI}8DnY(mAY+U*1yOvC;B#<%qHIOLZoCGo@Ol=^V_h!7<5SSdemVb(1FKiY z8`ccodc%}2rU;(^$&Ac|g93PZt?gXqS-($@YT5+fU-cBhZ!rX`0R$WCWcL;J58{uM zC;OMYJ@$NLa?HE{`bJ1b6lsRW?Oy4Us$ReCXPc_;t-9=gVMTzCo5#m+zY`#f$h$3H zj5v?VJ8PRSH&vMknY#jX94}!_J;f$lAbz8UnDzyI%)EmbcTLlg-OQH+b7JvF07)6&x3|Zo3scYfwWV}cNZ`EG)7eJy?cF@ zl*$bE)@q!Q(phWw=^lSn7@J`*wDRL-g>i9K+9F$Pn4hKD7fh|(eMzp5vIkxUJbk@5 zAb`0iaaRZdlUFGz(M+p%J5&iJ|Ykk2`*vwDxdG z<7wH>-f+bFSa*awv|b#%@;I-h+_cn3?93PA0Edy5U>9$qJm^$pv}ys%=j%Ndq;Fdw zyRfs@ZNKA0STd%%*Eg>zUf@s#-Ot>(A`1E5dK9^_^5SkKDQddenL1K6qp6d4h1E_NT5m0?=#nIT*qA ze9Pcoh4-2G+!w0vm$t6*IYHOHmr;MNFy~tjwK$XTQzhY&M6k0Qc)=w%weI-1(i&8H z*uK9`k#d$-f82n(x>anv%l3@3YeUS)`{&N`6l_}_0zGS z+~hmE#+Sn$)DMrSq@um5S;Nri>j&!Y)_vx!UisM)?B<%rrruuOktpypk~%7G#-ir7 zD1nHGwQ9__R6aSJx$WdGeaC@4t?a}H!ky5NS0(QcMp(117yVq0`_5mOclP?2Fh2gA z+B&c6y({61=TE#FI~a5Q=D2J$*PGXbPM@O&?fTn+uAI3jGMm&b*96TjBlUNjs#1=H zy#igMw`5@-T`oDzL%li)!j8roBJ*4PXY0bBnJ5zYhl}C-C4Q~E&ztzhB&QO ztAWki|IlI0Ssg_E8mb1lv2w&Q{Y;TaMi=Dg2p*S<9Y`}{<_HDyuJJkrGh>!Sz`8|>ej z-p1dEbo2j8%oYv|^${x@yEpFpn@#HCNufx$U4-*7YR^ZXS6|XhcyiwzjCjlSyr3_C z_*bh=!uV&*6z`xPXy8_h7th8svQdP4@5uL`Pm~sho_gMv4^Vu2U4+B)%;;rz>|C|3 z8L6p3=tFvucr)wgVm2XW~Zf7rkzoq<+h}blK6w@7;qu&GQvDgpbfPLDywhvxo`b z<$`&!l=q1dxev;8dzHOtCzVdBBq_mD?2X^v+)FkXk>7gieQpKU@a2MOW!3hDw-GZT zX};#AKV4!k1UP+5yu=sl>&U8TWs&>-{lbIGKfO5A8-2RIj2P7zen@`HONf-8dJGk2 zx9NaI+1&ZnayK{b)$Z{Z#vPWa@hkjceEu0yM1z;*&@UdQL+L@USB4B?JUA0`OHPgL zXbgaRUMRjfUJ-dPt$}0NBlPg{^Pksq^q7K?De`KCEv6qX+BC%pezIJ+DIYnPR_SoR zJ=ybWc#E{W^TyRNc{l9Q@9JuAdRO&tnO^p25$~c1evM<$A|@N3y`mb?f~ZyCO%c`8`hJj)V&zIyogT}jlbNHlDOO-VliyE(@V2%Ndh22Lye z{4>pM;|X}2u@YN~73 zf8=KHA+J{a$oZtmw)phX2;tv@)z;ee&@Y~SChhxGeHX7E@i(=M_Pn3lVpo0(&3zKp zm9i>6q8T}IkbVAygH*B4D;fQZy6UX{1F-BX!e{PU>L#>E70+GF+&#Kj)^#NCy>yS9 zM60Cq$hgcG2hM)bA@+^epFXwg_!qh?&b;l)O779^&9>Tf{qatYSNC@~?&HTh*OTTs z^~;@Z^Op!)^hDnIEqJQKJUb~teROy%KZdYCOx$hEYE)D`SZ7>i^jG7OAIg!u?(=o~KDClK?@)Ym=UZj3cJW#A6u5>lLVL*}rEn7Yi=qRNGjT`5_ycP-2q7Sk&g z09Xv?=OC4N#aGl>DKPxf92{tv56m@Sm@_2l4^F*nVojXhSt8Cw^ zRfqOAA!5ZHsS|)Q{C;MHB{Zci@~q2py-_{uGV!kTQ{1{25SW{e;~i5?bevj6l>DUM z_KnumZRp$%OZ{Q~p096XIV8&30DV!V>N?7;;2ryA>ke3ZTAo5p4Rik)sE+lA@-fMn z{?tpSITODCmSS4<*HS9nIKM8_C(4xBp1eu!{(*6%^o4@S%|~q zea=-`5bg;3iuNA;@&4Pgu}kCGey2IgTHiC|DSsbJl`-21H~s*;hCPr zfv;8FDw6A816>iRVv(}&k3JP;5|B?{9vIElmLp`wgO6I-o!g^v8)^SC>S4GV6U48m zWUEg(>v+xAu4AaHo}%vZo7Jm+r@fAPZXEGp|Ng{nq_sUb*Q=?<+tT&d`D)>`Tq}Wa zQ65MqtgSBp$#`-?>~p7arv!1YJfgR!9B*h)Mx_%s)WrRHxvIv2&~(XLBajKPfoiw> zS?cJB{1GpPBaD2xjK5gR^L$@BpZ323+53HuV}JWQ zzI}Z6e=O#{*E&~TbzX~h3mYebwlAmHos&Y>I!a+;yIIZL@Y=A9rQ7Cu>IoUD`KY=^ ztoD`vssSN0rM?A>0rhCUEhn${bKM;h5E7A9t`rGD`YOgByld! zJoC1`ANFFCAYc;+!a2y$zU> zkgM*t30)=|4CMWF{MP-se1sxr*@WlcSP|ZD9IBJZ6Vt#IGRpvC{##P%Pv%ixwG;ll ziM4*dOW`gm)s#=`>=g@)!F9oj@Zzaq@r&G45#%$X4%<-e-aq;U!_P^vCpsL>DQ;~o zF=o%)^|ZvEGWrcnm|+a|J<>Id5EHl2(#>5r|LefN0e;`b^mj{ydPgMtSL3JKYL?H# z&j$Giek2*@#G9fD$d&cN2ehoDc5$i3&E!1nb-C$A_!&h)`>gFlUQN8I z?uodp-`?+;>l7$h~UqI1g6i+%rhV8G19u6d@J0P2;f-IVZ{1=`-acwVlYHAdP5tH&-R?KOSCdXNq|}iL zV;STf*}i|T8ODKF?>My(Q0|!VsMZ4IVgs*7M_vHtkio>IU;bNS9!JmC*JM6Of1FrkZj%-GPm}Q>I#yk-X1BCkOyf@v_6CCK7)vzLspKpSsV15VFl z|H+M)#rP^XgC`q&++tHAc{?G%uU&t8IG=_Q@H<=CnmS5gG7^pA3;DETm5zpeoc~J< zz5>xMMVOQkw~Mf>%f%Q-*GN%~5^jf8I1Z_{p=M>3ylp+U%vlESs6vQDna+tV$=I+DY-dkjqzA*rT4ef1nD;5OB4fgr_n}uK1uE1`60P3BGO9xnQ!T#hPvySm72<_1 z{E&D|Mp1S9sPr#nQu~Eff{_aVIKXCs=t!4@i!UeXV{?j6FM@L4>P$Z<*GurZP3v}% zBBQMuo2>=E+F{2ofke409?aTC=E2tBx99h|v+ur4y3RrvIY`7}|IeY5^r2q$9NHao zmB|NX|F#cfPqo<*D2^P8s-TW4-c`0(RCI%Q(Uh!eYbv`vZ-hNZIXW*a?OC?y`QHpa zhAndwNs037FEn_Oo8ifIYIR@Eknr9(hjU((bO_>A2RUOLYRKX@e#Urh)bumHYy*d( zHgw*zY=TOh4}F756)DAy)9_5AJ>NIUt#>OKzn1D5I=>3zwOTgsx3@l1#pPSyl5=tT zsl2~00y!|-kSHxkt^`ldtKzAXEAe{xQ{?zTi_17-rhKf(!po5CtVhzQs}>tx>v=cF z*B0Bf&80$!#$QO^6e1*|F<=9O`jVeRF>^-Rjm_*i-{A=gg^mv*fyi zVgLN%3E0!&J>k1?b+~Q-Qq6Wo=6*AYnG!EVJ8M19@984 zCi`4mav{y?J_09N;rP(Xy0_r2#YyfJiBq(UImo2XUv*J7J`;?&T8Uqx@lc2qpyg8w zc+#86RTKo9o-ic*_@;=jaB4c7wWVuCHvFNkESwc)Vv)vOwKhrds_(wGX~IUJK9mOY_S-Y9)++gW${GI~HeX1K=L z)QdxHB-rCSL0(0Y<*7!t#nSh2+;NQG_U{lV5^WQ6)cbM2^x7@YX>LLElfwuyqs$oT zKm2X~(QeIU@ikCU=0gLB?$Lo9k5XN$F-c%(hDO?WtN7^_R8QztU0AL35sz0x3i%BR zY<>UT_8N2Y5p`8mgVOhF914r5#xH#97A=(4tgt?&FS;+jX~;V>@W$#{S$vTHOkrOD z<8gX{r)T9Xs}CJhd?C6xA~Y+^e~$}CqzYST%hhem^fbPWG|w}}Qa@i<8=<1FaJI8e zOTaL_l#X!lVyVXN9zy;V57R+sZ2Ciy@p^X_J*eKtuFWMbCu(@Ih}3o>W|*QZ62YYQ zHg*5LrKpy%4f|mYwJkYFSzAjSuS3BozbDvZUs~CF$+iFZ7k$cgLM?(b=-n(vTCnS! zA{4A6hJysPd(gWFr+Fsg{C{H2d0s{-ksf*H&1gz0lZ`uclIt><{tFjs!~eel)4>`T za-et4{=|{LNt@EY)Tnx1UE>(jt~7US^v7&LQ=T1zxf5IH`|0T$VHIrjHgi1#*F#Hd z1mVr`$X$f*0I}9K_zf4VC*GtYrsFG#&`%m&Imc@47p5-q5&0zwE&?tCqe4Wv@ZV;C zBlv_}IsY_N(z^9TH*^Se&j`W-}`FE&k@_9=JQwML*+{#&x5o5Xt^*Cp==I!Mnm z9_9uW$4>$({)qa)pM5(;pQ6IX@>M1qy8;=hhY75@^D2bL^Atg}atj)MX=4$4HMD&X z3ukDUM0)u58l#SQ0ee16fxD3;TLZc!W0>3?ML`mhVt;n}P=`vn_F#v82Hn!9J6uc* z7c=0Q&F28tL7S^pm~H%fvX@!WRV*hPy1e7F!LYm z+}A}|j5vu}Rsvgd*azqWWQt#GN=}3WhmU!`$g|mA%k|7z-|VKUF4+`;yL1iq<*NtJ z`ai8&cuva@n#P%~+2nqjSOx2GM-GQ|tSmj5WiG{|7Xr`|oA zK6-DXz$?b{VoHp->eAPIws9%Wf|1Hh1{>$~N*fgFQZQuO&8ibJA^_|im6P>4WB%h2 zV}S|7qa^av%)GxV*!`{vH97pI!Ds*jmEm`e8cj!$v*ub!w@~%cq?;`yYA=sUMzQtM1M?5mXVQGbf zMr(t#jqY>vRVnX7#7Wf;q^*2YH56+dBCw5a$Z5qiDlj7YUl7d01mSIaNOGMKd3k=`<&_`z}I0}X{M?~xn_|URndWtw2CWuKWG(yg8p8j z%ZjFWaFV3*lOyAF)Lp%gN>QG}n++E<@4C!`Xlr9jBQM(WJyKWZMeyRO)<4Y!!40%o zu6^jlWoz*uQ0W`~WpFw1^k>aObilowLzbhX-=tSqb zOv)Xf$!j*(0cmqf`~xPj`D0Miqp3D==jtlE+L4c*-`wOMF@AgSL?Z*_s&@Xj6qk0uRTfFi0YBf7_e_a?5%Ut;y;`f(b@d!I z&%!=Yp2Fu;Z-!710BNj^r0<8WY&VEOB24@4Fzutj!%@6MPj5Wjwsb^xj)TA3&1PQ# zGHAnMLsNOb2a?zKm!!jk>`^PLtFMFuIb+QX$)d!1fE#!z9a-1-%eQfA zQ)5HZLK$9;cGnlLtRinNgXO8G zp^chbVteeF;Stw2(+Y(|Qp|()3F~5I;|La(+&!SN(mXtPmb<$lN(3f8TWrX>9mw9} z?Yl$oFt%L#Ng^!i{^EH<^JDAhe-v(Lwd*P1rH^ncS@@!m5uERA{89Mu((p4^G)FeO z`cixPTvKPneu^Ine|f4{Kp(vPNfm}jztUApgo9prC&`u3(V|W9IG?Dl$s4mCGB4pC zi(5O2lD#T-sQ*rynzlU5xhzM=+?|>3!bebY!aegnkZ08M`9GLqxUsVQS#GyZ)#N&p zCp(JAemK@<*tKh=2E{I|3?mx|l(6NaKF&|y{16s3|4?`Ch%ADxAGxrt&o_u09kV?D zGxxeB#)QdnM*!P{1EeXU1>J|?QdbjxGcgy+Ns zX3-4k=bQ8g!rh==Q%U9$yux#V3$S1a;WTbn#+G%}emmzzMn*=fy@^m5NAFh~AzS7T z(j5{gH*Nj>`+#&ciSyHN8xmqTEmQ3JV~!E3O8N(#XEy5>rSm13d%cfyW3CB4gEo71 z60J|x+q%iCqF2&PYAafot`%7P3)O+0^_nl>D)0#5ACr|iq8~?FXS)spXBh9LDEBby zs1XG(s?=)%)FH{MEAIusG4pVf4WlI-fv?ATZw`H~kd-Cw3M(-zbRM0Pms3c?Hdvx= zkUsH`w)RjSxw>VZk(OhIg0R)yao808xfan*jd0;r5g|flh62eJ7@vAu`QxkQr_#@h z;OSCb$Mx^?4z)>&|LL;K?~hj0qbTkE*4^TyaOp-(2OH1a8ko!86X8}ZQK9b~qPJ>1 ztMZ|E(idSjxEHZWWNXsrG#%KYxQ{XuVT_42xkz1H&QKi5?(?gCIpXQD_3fDTXmV}Y zlP#8kaceSx#V-uommL!<+V|3X*VF_%5FsfvmDre-$T8pMZ{${Cmm{mgv1mA%j_Vwk zo)SN^RoJs0hp!x5^B5b)@9&kwePYtmY;aMM$U4QPppco-5p0h&q{wW1ioqk`&T*fW zlxtzV!+4`Eh8wpM`YwtkMHR`$3M;>s>9_6c0ISygUhYujPH^~{XyRp%-K*>+8qywO z;jH;gQYR8riE60``i! zcjXgwFP;T3GfKqwTB#OU9LD7USjDp0D7KRkWvj|d?;!ilrReZ9YOa+cZYq|(%6Qpx zKtF!GHZx-wW{nYnKBRRKm)YF{w0y{4R<+?WMLH%duoYO1)>krsO+18HbkDtW2 z)-(p5tbrBF(fDRp+MXSxO*RiWc{dr)7PbQfrNJj9R`zW1=b?b(Y_coz%<@lU00LbO zQQK0MT{hJ&UNI?o2UN?3Cx=aNJc$ z!q+!{O(v27psZDfVn@24m{XXyic+A?>cqt~jZdK@{m8qXKnvLgeruj`4W)1|89m`| z6LQGLm$y){{a^G4n!3t+*^Ntd+o_Vca_oGp?0O6T!l!+k8JTp2`#qUIFscYeTBqHE zVJy&ji%6ZL1YCTo!lRp5zw?CczDWPQXnWev58b=vV$5B7Kvkq4lm~X!8r8!-bHMTY z1)ELSgJjsLSWyb-x7#CY%tN7Tyg@GXq;U%gY#TXKyzbv%ns3yFgxsWrOQWwSJqH}4Yuj%CeA;6iT#R5D3D0*Ji+q;4B1suh5WgwuXM!=GZh!`zmcHX zRAaO<*Za(YmbRwYxhh-1;$@Q5t4BCPcI#h_0F=z z#-!MqU6qE>cVgQ7Nj}(8xs;5cY2jm?KN;(b#fhc;EH*+X^edo5JUEPDg^NjSx#?wX zee0;r_^GL3SFW|hJCmwP1H8c~lDpUbWAlWlP0sqmjNr>imNpOr8I?gJ7j?@3dJ z+aXEfe5bZTH5`689e5+Z`pfij_oQmD-i&0CZ53o5=&^Hk}f8oWx`Z4D|oFTqi zsC~GD(!oQX~VPbVddpUjqUV0`@3bX9Jc+|hJQ~QYl%RYO=D@s>pCDa zBcqAn;}!Fe-lD~RilbXNmZfLMY4la}!As2zBMlSR<5EJ7SvUQ#TZ8rUlIf}1ZJ1-k zxK+qNs1WUm4L>i@%wQ#saF%M9Th!p-`yw}b?eAV&Qq{*uZXU7ng~k##efNOn4tL^jz`OV)fn8ODqq z-uGx%G^5&XOJg-5cicqg__h0neqYm*+1-|v!iCz2eFWmff?NW#Z|#XG@`IpdBHCyz zd+We;R0?y?Pi7Tn8_ObHG2TyGzwi;W2QSW2YLn%*xjmwWCcQUti1^=O{W+%oWN+DO zHW;g!NSE7`PqO^+Tm7wVsZ~d!fN4;eBXl;ji>sC^?MT}5?c1>~GL?h?HC65@|BT&K zamenxzVjl|V#nTs`gbY)DB?D&QfH;or2m6NA|yzk>c^z9Me!wXh022I*{`IzgdYC3 zNtv0TzdpSoGgRVTgQ)l}_zZm7WGyUa3jPHu$5Nb@Y#mRS)8`=HBaB^QC)_xWqolfBA2*#hLqv$8 zI-SP9H$r!>0CE%PsnS&*F31kJ^oTCQjcrT+obW69_uPQ`J|4{KM3U#Q^?#M;okse3=n7$^Yo3) z(H7ojhg^O0q4vVbT>srvZz){F{bYN0`D*HF?7?Q?@pm$JMHg^;VSK20iSG_miU*aF zAEK8Eq4vP+9Kl?Z-{`BqIEb}z?JIZoyC()gE-qTvwC3MYTezy2YChR5jKif#;(lbv zw+N1DlJ$H6n})zFag(o|Iw4Kze@ig4sDO;EpaLM+_=(bT0g!r+;t-${3Sxp2N&j29 zVZH!Ri;;Ov{4WxWdU>%E^wunao8hy*_;@C02*M(WXf__{aejLgw=BI!Ou?VQvpxsyY02-oRs zBuP}>yt9KAgv1!jpZB93d{?9f7XP~|OA*@f5^l(-64saF;oC{F{-@j}SwEQ2RsrdO z;=xvgn4Z5CaG?rAsvvsOZER~&yVcb8C@8UFllK%5E0d7mGxRAAgv1A9jSyigJI&U! zeg;Rre*Uwq>bmLeWy;F3JCj$@&8n9D%b}F!C5>Dd-)Oa6RT33BrQpRczY@trQ2wS+ zwn@^JdZD3w^z&UgHMA~za8dFRXurir>1(TaZ}RVqjB*(o!9hNBye+o{cAT(md5JWi zcqK{t9dVgEI^0fE9|0Am-lO_@v|525Jymsjf|QjkKe|Ur2&qZ3iNqpG$XD)5t%Qlh zLT<_GPEa{m2>7$aGK-rNauagor0EcHsQJZHBYvN7XK`b0T@Qyi!FNKhEA3OrK52=z zvpjA+S44!H_VlL)1C5gDf%dRNh3?urx%dcV?vsT3UT=I!?BL@lsiJ+t-HVXh`bAzv zq_k|OH{IYfXBeLmSS`>>ffe*|Jw7qCc}p)|VuD^s}o!V^7l%FQirx}#aGhtQ3>t7Mv z=%8vyz?-}LTo@n0Ax3S-NRo|$o$Kh!%e?s)_%ejpSrUK5Wzk(b7y^PJg;ulr8rlx!SV$&f9|Fh+gM2lSR9S`R0dCZOXf=egq!ATI&_fo&D6pgB{He^=9u&I1R-aWsc(rQ>p|)RwVGLaM%jn6LhXnildTJ9M;ErUQ50)7Kg2o#4C7dadBW3+TRK1C^C>Ri>OKfD6%E#njmF&k z-o$yCcL%FP`L3XY2iYH|%9th>T0yI7`Xz7R{3802q~CF!*TO&8PtkSSZ+>&@h7AIw zjP28n;SZf<@iK-((0(d{fQia>jE>#K*G!!Qy^vlPIhHAukbxFv%wn|&FPxK|*RiK@ zZLoI{2z>U~BV7>_YNQ$(Ck-eyA-~aC0QmUM9;nYVosV^pS(SAz%*vGm4ETlG$H{#E zh{+%9i2=InwP4l5=2iDP)(x$WZf5qVixjk2OtE=tfoFU!|5#jAE@A6k)he$AUf|XA z?c&rX*!-anI@tUo1u3EfHo#AW)|4OB#v4tOU_=6q*e5j#DL0v&Ox<3_N7PalG*<0S zcsWxiYK5ES&F!sbqznJ@O;x1%o=hp0mIwap(=9vLF~uqHyA%vC(%ED4?B*YX1aSfc z@2-5~j=wBF-+MRVnczsp00u>ILmGTk_M$W#USqyaYFlyzXvV;$w56#6_&W7WpeC$A zJY$SDDw!H*45xn+RtnOq1WHNnYnbt#{?7uW0I4nE?}cRSe{tUcDq8r6y4 z%m3?x^uJD8L$ygbnZa!J+kX*ea68=_n)kQHbQ)(SZg$olof$}5)RF1JIr*4D~yjq6R%D&$xACJt*@1=#jViAv&0XE2r@6O-%=) zT4T>YBPK?q%Ey>-Ws5&9mZXF92mRsh1jpnPz}{!?ZGNMZ{5e^)!JffxdA*l0kDiC_ zsTg}MYgzH-mKO33w_)F*tQEB(qxnWdVtPjcc?Q%VxdpCI#|+T~o6zVkbe zxea6KR2E8W#=W!jsq0Hn)60jZ@368&dDvto(d2AR{BBKBJVGCQDttthd@%cpK6FOD zP9y=X)qqf6q4I<-0o}xBg@^f7-A*Fo0C8{33(E5Ez?U05lFfHV7h5U%lqfqe7PGW~ z%svy3I}6-39pp6dr0OgNsPS^o#Q}L>nffkz#2fsyq9Bmpn6x}jr5Y0uyk+6Hz1rFba7VSdJ<-69A8b~r*Uh*2!3rYv8v`t= z2{y8H9(RTLpRt+0-EHf4zuhn!VkB+mYWq)eab`m<$Kr9o5i^ z=uUq99QV)kw0;~ZaYnMf4uprOm}F+$THcGN!FucpzeJk8%_wsG^7LJ5mTEbxuq_a)te-F(FPq=radC2|qw$<|383MqZoHhXc4=0cGkv9m zlPDN+vyvZ8K@aosmHqK^)uw8|x>?)!da(CgC7 z9mPTRv*dI;X6)V;^R@8w$ z;O`|bM<<8J=t%%-x8h9|;*c4(+3oy&nUM7hBaHRiE5_?{wr%_J+44+!o~ z)rsJBBi7YaQxiq~DN}vk5iEY?_bafaa+lfUr-uIUuT^EE)Sqcjg@e;^d9o1xu@?H} zSKY$>)k7OttVSD&LiY7~G~;#Wj60$6%(l2j6L4?|w-P|asSl-jx9+oh5I1{F@tTu~frf4>Fh&8fkxsM7HNZOdW;|skfs85^`hnJFlQkN(g^yeFJEO;Ycsc z4CMN^uo<$6v3z-``9{m4$Hs0q^h>LbP=}wSsb7lS`KUL-`3q4C71F+^ULwjay=BJ6#lI$1FtO!FM z`m#l_;6&Cb5{BK|i)XW`>&Lmjrpl$%V7$6%p&{ClvJtz_trA}8_v0^5%}>UCkD)UA zB!H8Tz*o76Myd3~@zcmgnn5?)BeabYi$a!ERCQ#kOQ9mVwXBv6{knWJSw{mk8jqTM z&B60D*cKSezQ0nWgnwXc3@z0gTfRMJ=$xWaG%@LAON`)BZIJG!t#-N}*C{5_ z-8ZzypS~{O<$F1aPrG&=jBVpw8w0eRLx1h3A#oiWceKf%d4xVIV|>9D1C?zy=EgkC zhxvLo^a4{fq+CSsO-&`Yijk`7w-`}N8oBXV($-`S3!G0qc`;)6=~8)Ce}=(2`!}QB zbczYtMI?^;af69$lRuebsfa5~b9!17O4yK!$58TzC8UQst`m3YzF>084PL*r9C#;D zPRmQCBrkq_{Hw|{$;K+U;hNxHiuxk&3_pp#Ba`|LiHa5$9E-@3MON_hNez604pf(h z+oQ8h7~FlUGZC=NFwH#hn=@V0wrJgiCgRpf^hNf*$jhXDv@Dw86@~d~#gGbjPXO)3 zrB8f=GtIm&dWLC8h|u5~jy9>tUV_*ltPZu%9_p|Vv=V6!-IFZBrgcX?)%{hRo`H&~ zaMF(3sx(8%iuK(Bdp(*t%K&7RarDs{FAo*51ccKdpB&e7X<&Tq75qwYW|(vhGm*jo z;?DNOUgDek=>UeQ46(CN3H@tkmYSmcXMQo(eM;z_vs&jRQWe_?*Oe77EosBvR|wT7 znf}fKwyn552_CEYrWbL$G>)5&!t<|AN#*;5&3N~!2pwejD?H<}#jpKE|KihITLsVc z9e4?uwEVGWntURs#-{UUI41T+j1QPa=Gv3kMcB^)6b%{P{|!USaS;v(FBCBFd(1vl z974TKSYgOJu*v-NZ8@XsYY-y!`y85h0hjGhy&T{FVN^(KdfP z)k0R?q$^Y2c*-6P+ax7h{4Ih!3>*98t;<1+AWwj?zP$fe`SWz_rROxM9amIzAG&nN zBdNCQu~4$tovo}GO?zi06;7@-FjZ-*B#Ls{ieFeLsmbfqvi6=$ zbI;Hjl{^6a`N`GysDf?-bTXReQJ~{Qm}Q7JxIRey$5&bCXeKj}Nl-BK6P>iw9;sEB z@7T(&rwNR9pUqXd^NDKMx`)2-%NdQSfqM-`PyPd%c1=$+{9> zY1V{XO0IFT80=p-xtq>>S^c>~F{Uwbfo#Qf27H3BwZ0DCazX1^kVH7vZO3$8QIC5S z_K>|#Dop1>P~%)ru8P%T5m(0C?$L)#W~8Cx`Xuq;bM%P&U8(A z5|upyuRR^)O<~g~UU%P%vyK=XWd^wp0%9cQ$R{a6tixj6r@eqD)y8kt!t{2w8{^~?Co`)(d+A(Duh37s_CgXek$nOke%>y1NlPQ&D=*C_nNNNF zZ4PJKL+#TP9t(rt=xyaW(@M@zyxNMhh^2~($(n<1m2)mw_rM~*$2<&TJm97Mo2O@j zCJ41{m6nv8!v4W35tZ4#Oy=%07R=I^M9b6_YA0l}INfkJE9lsmt&x-Q|w>SYXfpET?CH@h2RKMpfyQ&2T_7Yy>tNXITn!3 zhFj0Xx_0#$s1#8>IRxbS0__8Lc!5Bt{y~(AfTe12zWISmUicU&oE856BYCf0kKbiB zr5gzM?G!vn--gMHU>tsflCMZYIH;5Wp`7|QhH`xKYVE9)>GXUcrRO)mPM^KU66$R> z3Yz{sr`0iJu|Rq2fX8Rd1_EX#2 zN9~H2x`%e@TyKwNlj7T2)AfXS<_rwW7X*pgA1zXwv~<*HhSbZ|ku-U4wZ zV{@HA=N2aOx%mdsZoaLmdXCrZV)T6wKSZj`6674)rXau`XiCGktVjp z{OP)C-Qc}dQcC=;su(m_)nOV@+^Y30u_w2m?g><<=aIKIY?DHE?(4|hlxo${eMW1k z2CQDU*pbrJD}U#`5GwA=tllnD78mOuJN)QfDT#()0_Q*TI;}-Qo>xz{7o!4{EXhPY zDuVf_vcDv@dcEFDvhLy)t212P%g#s(i{PRtOESgDG`eV4>ML-zp|L_B&g3k-fH8G4 zlALd%xc_#d?Oyg--lViAv-&e`zN{Q1Q~H8whIgO0F!@;v_u60E7`j}WI?h@~zDu_E zmaG^c@=4K|ko5(9OhIJ&QmHQe4csBkuJZ|@A~XMd4Q`!=mCzr#Fdo_oVMtj`&~yHE zY&>z)qgFp05B+zt$OS*&bW;J$u^uM18w=gUiZ*?#c&tLaW+CdIJDFJuk$j)y-yWQCb80=rdh z4U>@SQ3ZF;Uv`Sm7k%ualiL~mM8n@Z^SCtk7Sp13LwU0It5Ez(j%3n%l`J$pQYGP9 zTbgCb`^pl-1Vu?)e{qAll`zO8gu22zw9D7W>WGtTjtewjpXh=?X%LoU^eLZm;>Iu{ z+|Db9G3e!pf_k-qIq^sshP7ipY&dd>U?{w>i~?jSJyR6nD}gACLmsU(*25R0_eZ;y z%xGkh8-8d-re}*Wl+273F+?|F0!}R%LnC27`(A0l19d{jMTCvJIQ{8NCI{<3PWTg> z&+yi{^Yz@$fdvrx5yTHz;Q-tRADI`{uh2xxbPYr@MP+qI6+C zy{ypB{K+1OdLm<1CkRw~RN5e3AtD%sSJPt6uex-tDlBX>Ks5^iW;&u` z&Wa%dDg8{}OBpAXIN4)=M1*cz{_wYSo;_1Ob@e(PE?Yn|uVO=GwnSbwbo2ZA5DNvr zuC#*Ym(_zYNRUm<9L7J0$Cp?ee3aeNIMD4&8xJV2&nC zwL*xNRbTw`GU51+3h@UQj-l*gwP*MuAi_Nos7I&E8O}K|T`Qo)?bLF+`2uU!rR`&d zLloMXPQ7@U@QEW1FnHGP#6n{IwZ0~2o2-+s%srWzMYqiGIyEh>@?WygMw2B8%|@&a z!V;5Hp5}I5>hzE)_VhyWK%;5QLV~89SoCiSRl{bYEC=={MwE&u3t{Ac2B|V5R5;ie zrCDm+$;?od`*~XANq!QHqtYd%DCf3yos8&AQ;`$_CLDNq*GKYoQqVhr@zXk=FO_;* zPZ85YZcS94eMbUb5=jn|l>wS&HagX!ywV|MCFenSebBKfJ|xP)e|kgN1C%CZ*ma*s z&9ciLLq%90@<%90?0FixTMFP@>GXl-_Cvz`BKEa-J(g&iDOp-tc4Af6b$4_LaFotd zGL{FQ1xXD6&NOH6tMNgChNKmD-wJD6*G%)+Vgt8-w@L${{OhkEI1&(6*^k_qwwROaK+jF&4IIeK8Y{i*{2wC^Afo|F zlkij6N~cbO6bwc0F4TF9?pJKqhe)Jxz_PGjzFJ!|lKmnOA0E;UKev^M08(bDGAz|PBRw>EQN zG#q*1X)b;Ew%?3?$Z3`^=%C0!??@i3UJxG%dJxFz!MjxYTu}Wn=$*xXD>kQm@DiCn z9LE1He>g$^E6oe=7x4UFF`7zk0ACVS!_^ehVt?Rf^~VCkOv!{?v2|k>&=^ACq@Uz> z^+iPJoexNF)FtZzpU=ew+JFMjrzHc1F0j|b3B3PzFY;tS%>Cpl`-Tt%(!lzkzqo+_ z38q0!{6G_%P|c7EAU_Vs`_02wiK}8sG{Y96-kl)B0Q!B_|fE*&8A4lV2n z{N)@FS|}z(;-^~vq^r`;MJtZBkKR>(*|;SsV$An*;2V&$@Nk7On3i zR6Nouxg?g{%WN9@E&oRIPD(9FP}7&cCH&0gjz$ucX!lPCsdsus^?CK13G0!*Ib`xy z?9~XkWoqR0bt*M=<)_w`)7MsYhooW3AdraGLrW;jf7n^XnjYB_=vu_aBR@auaA*mZ zDCX*mGem{|h4Av4U+~s^G_cfdm=I#C@uv?I_z|PEd(5=nUpyEF%}7zAYCVe|jDh7DUYUgWi0I zXSl|>ZBif=<=g<1LrhXgV}b*>MH5cYZE7OWcT}s{M1W&60!5C zB=f{!Z^Cn+&|m^;#^;_AB`*>j=)vqCmR91b-|}IJCaW}v&vY@1(7z)RH%M|$E~=jk&8#6L^2gs3^j_$N#_D0MX|AAP9~nbydhyy^%(I=b8fCDLrG%9l8j zKOm4=f^y7G5G=>dXLmKi4aw@Dkd;^gSmAGhQtJ_b5LwFc?`3@s7LpLWoc(?v;Y2Fk zHH6`=DDvC0&80~)<`>w`pEi)M60@=yf{6@yMu@ZUX3%|fa3`roPuBPBT-RT!R?rJ( zv6+mso^G|E_K*JRuTrjG`Eg{aIt5QGe7b>&Z1@PM1vJTi9*glXPXzzvPM>7mR$Kp1 z3qX_1=jf$19t9v!8o(R{fnY>8rQ*j{>cCsn4}SyC|3iYTf0h4#+c}%wxSrn*B?4D` zosQpWFT1lhi$=Jlm#ICwS(^@;8!344Mf*yN@~wKw1fM&|4)bBgh$1EgEH)UJ?EjNO zi$(N2v&QGt)IY1Kb1jMz`UBgB>3q}EWf#TwO`!S}0I?eW@E)5j2ZtX1KbN;xQ+}J< zWkFj2&$I3W+BifH4E<)hF~Fh!SUSIHr7ee$ZQfAkWOKRWu7UrUz1L~`ysHMsxmNNJ zeSg3fSf&3;I)?flA_*Af*T2+dTT4=YN58MC2*27y0{0y*RnBtSOH6 zCH48vA&jxCn!Fn_{f5eHAU1e6i~V&Q5z|reYdiP*nf2dz zk`fc#%SToJP(`gqV7hAUlbd_k*oq(vOag=!*FDP)&KFvv@=lqki{oQ3kq|TSlD?K> zR}>&^Cq9S@7#-~iWuu#RwAk1ACp7|gk7h}`dx`U2Q3jXHnXlnIPZ_qZ6Y2LL z!)UW-Z&=m&#?|8Zg~FQRzI0OjusNHJ_6J`NFG6J7xsfhI#p6Upy)MQG`9#fFK!ZrK zN}D@>uD!2V)UTth#-G(BflK_$%#^8G!c`3KKu3pxW(N{bH6{fgI+2y1w~MG<;3mEO z<8%I~qX%0sdG64rR?emcs!5}eGT~(w>(BBJ&BmbwNn7+7N7?fDtbxlyl^w22$>>HX zx9$i`U5{pndO$|H_3PGY-f+b_6`7p*5MuPr;UJ#Kp$qzbot};t%S%>J*-(BJD6OBt z#J{V5kSl=d>AIan;ETRIHyc@->t3zNEyi7qb&WN=7fZ8~0W3L~vUoot*UcM4 z=GHWPe)1vbAYnp1lnVa>NGShXjeS37pGkdk=kS^O*{_9PYm^fKEt%3uV2PpWO3;^E zjKEpm#M@&Ivq_hbys~rW?qm>(8yBZ9Be)Haj%Tt}IBPzx6X1JV|P zPSbjX6>L`3e;C4cBc8f_f`{LY4t^sj%YGg~j2X(ty3jI8AoiPn#z00HSt+roRjis$ z@M?d|{tJ_c-!{3wvD<_mY4VeDZ71DH1+VbA1+`azMHyv9S}^FyfBInLg?8OaL3hq> zUHO4ot_x&Rd^p178Mc4E^13*VnS93U>dUqK%e2eo*PqX~><&~RH5!V~Khn~meAH(z zPemnpmNE^>v0nyQ7_A)I%A|tdtK>T|UNcm%F=LN|J)G+~iCz`2L1m^zh{lSuFOOWl z-q71S?GQ`R*F7T^=u#?OvPo%Fm~ptdp02T%@t|w#BG=*mqe|`}Dx6ZZ25Rbf*cefm zZz*5=@n!;BC)E3dWh?ls>psb8TI&4Hgo8!)3U$PH$Zs$D0TJvxCD2wE6Xv5Yf2qYZ zB@K0h37q#g(7dg){)--K%W3nuA_j84bHLC>O<CjgyV9o1N8!?XG zu-p`UJ;A@fQz@ZKZlwrx09(PfyC7txueO@pwq%iiZJ7BJAk0};!-7SqGaZ-OZNJHWF2r;hdUcD@F7&FKI85Z`W@(?|uFQ{Oi zvY0BbKkj<2=JF%wP#N}c#ly3<->zD->Lv9FOmEFnt<=60CrB30`5sHIl4M)&4nPlDgcTiPi{mOh2{$T0#zU#+O zg@U436VEsiBcvpE(py@H1|1l1J?HN6-Xix8H*S_}=3O2Xg8RAEjGm%igUZ~CFr;*P zQJhZwdf6D_91MoIs>UWML%cDD?#TBQ*tCbNXZgC8J5E8^y9`-eJHF?lP$YI{DV`hp8@LPN4D4cy4 z-5#k9Ta%%QcyQGfM+?)9xwrp{w{hhvWm?5&m*{{aZ|3i)swW|O%CA~cv==;ZL9KYv z7}y$-Dw_?0K5k_iGF~!190rr+x#8u=k&K^u$au?kDv{P#{j0l0#z*e1_3k9vm?guU zxq~Y$94};1on@1-&d!iCP-Kd9}yEA0OSS$&}*v@|G znGmP`(0sc+Jkx*6_Zz(FaNf1a-F)33F3Y6vw5h(xpOTQz45%KM{E~ZSlW343*_fF% z7w$7lkY_L%tb9jbF1HPx@uej!HFgkMW0Fc_8m+0HOAjvL&xS+4UD0`Xa}Ht#bjXC5 zDcF?B@T}`_XuwpbFWWS#zWbrYuCPaK;bji36tzmn@~T;%Ea9)x zkRz%ghC-`(i;W3P1#=+As=c0(KW}%q9^-XAQ22DA(W0V4N*-ox?Ox#f!4#o~7BwQN zF*Hu|iVc&rgp5-&rW^-}-$^_+4IdryRhUO|oy!DmDcnBp&yjgQBxhWRI7tBe0J*%#P^M43>B>ww z{4UzD-q$|eQ57sQWOJ;9qoQnn)Q`zCWQ|iLX1Tm=g>tuC-Q%^pzFvl8-Xa-GLU-b#uXxU;0C+q9P zCAs2gofaCuPtq>WOo;5U)V$Pc_FIM_>qIk;gx19i%rBJjv!rpyBe%2hu~N4XH8n)WpE2D%d%64EM4OkWwWRRX zzOvQEciYhT<*Ef$;Td75-8@%0CYyV8NX|i5&r?-+;crcO2uF0Sty8EHima*%KhX>V z#5eKrvY_$@%ZsJw-pfwV&%riouJ&e00h;>iFHN0NWla6~vbEsIvY(6E&Cy-%3P@YuUT2oT!atw`V( zP>^oy)dvHDVd7LIIuE-v7qY;>;P^Nf&_DBkQ*SrHADrvz@K#B3E=p*+!^?X z|EFMDl~H`^A?we*Eejev+(6jUicjyI?w8KT(wZ?J-P z%iN~r1L|{!P};kB3ylC^_y&F~O=b5xBCd`BNiTp5i0<Kxb^2{HYkx=xFq&WZ|njLEMceishRC}RM3(8pd3L5Hg4VVyDLtT&l>^A>1?-S&>T zwf#59)WQaOcKzDC+)2(LEsnMUj56Et{O{?c5^IGbWSvd`bJz0RR?4b1XT-BoJd(cE zVWI?nNd7+iHh6!BRPlpGet18UQT)Zh^#erMi|BK0q?B5}dzW7NyG)UBuQ{b%{X)ux|2|C zA9D?Lr13_LSZWxPCYy?8j_ZV8TX-v$f~*-_P_M3=Ha`goTn5%O5T;d?%^&yJp>bSnu8?GFbLzDjn z04K6Keqmkp26EK;;|}6~ymuIs?-rH57s`K;IKQAS^rMq$v}@!hKhUz5SL;sA!_^&N z(mab21Okpo0Nepk0``cc5i-ACxnF{9yL~^r%8$Gf0e1c9vES}6z5C9o0MkU8ob~(m z!b}3bzwLO&$vGLkec18s7Xd`d^-7$|mhU{r1^&#zh2=Szud%Fg8mCbIK4xjSYK~;~ z;@`@k*s5jud3T|N9RsJy zT>l4t_q9~*OA;RKc5XoYTvkKX7{Sj6EQ9YOv>5aJMdxE z2g{_NPDg4DV^Kx8b;Un?pS$x>DGRy26YohQ@+~;!tXYX0rXy7{#5%O10;aDLD5+37 zhMUVvof=zax?kIjIxl|dm$cdQl@knQ?}>%)n1j?v?@EORE2rh zQP_#=!PRLGKnDatMFx-mu_^;p{r|r|Fe@;gs0?6x1!xZd#W&wy{jeZogI?BBdir0K zezo$n`|g%Xs>javLu$xn&=(P!0f2RBEL2S6xX#_(@#BwwA%@;$Me6yu)kwRG12#gc z=N`QvU_gM#*Y&mPeO!t6I$%9OzU_a4O%+iMLb#^rQa&!)LXufzfBip^rhV9qJ93~J zh=DoNfaG~kyPE_s7~`jGLO9T8eYl<_WuR&$2(UGQprtgbH;sO_igYg!!vwC}Uue@d6}sFR(PRQ38S4gx zU55mQqe!tbb(yy5*)bnEkX*P3sR;tuB&ki}7DE}({&;+d(J0ecoz-K#?VZng&f_;p=AJKdi zAFJ;K5ECmn(X9B)?=EV-%pAA2M?c;i5iEcyiHW~pvOn8=7H+fp7OR-P6r(~g+xYRV z*gQWzU4(u{glo>Sf#`)}6Tj~Wyk9f$(dvp`>V4v07(pP0k{XhE>U*o}7_NJXi##-= z_Hat@D);h~<({9}gM{dx*n~8|gHDB*QA$;{GELW)OQg^8^ZQd3+|>xIGDBTsF9ae(JCpo>@zABdwaE}i*y-+X<86x-NDo#9<_ zD=h3ndwjZC8yfz?`T0tdF|fp-IG7g&-OHL?Aj{gk)C`Ty^F6Vf4K$9IxPcKkj}_Fk zrs9pR=(*j?IMJ4QD$F}oB=Nx_j7exYPTh13>N1*u&>$Q3+|jn;C^WQs?qK5}mf-Fn zQfMm$*j#*_8n|lQ;iAhqT_Rix7hHr&`5{uufHFAiqX9$hNvdtO-sx0sc#F`nB-~6P zWTsoHaZhSstj(uy8$V68LKjq++9del8p7O=Lg%IXwp_yHbxH}1>uw6F&&O79wDU$y zJk~X(2B|FX2&Ui#7u2zpyCRro%@j@szp5D+q!u8X1X5ar#N1IXEM`V#2}B65IHEbX z=**uSGx>Dl^;GSfZ+HD>5DWwc{kj(jO@yu0>1|U?Lu8cDR62V(jxvjx#{>~_x>q}Eg@-7(Pg0$WL0=Z#^i~$zrmteXw3Dk zF1t)TGLF3zBGit}5(wS6@`qh=bAbPPr_M5a70;KcAZUI%Ix_#e-!8Yv z5_?^Fx3k*yjk^!vG@FzegL&sqK`sM>A0XacbL?5j6@gG4m!ON>hDX6PpPvYP1*UZXNXU$=62P`z#Z1wt@xBfby(VsibftMw5})Yf;ApBxlubJ* z@E)|_i>#)zw#^Nhqmc0jKo6xC?PD-^QOV3`4<^ts=F%R67j>oWQeV zXOO=W^H0jm1MIL^((NwVd@G6jVZSG@1yE|kD_>JxvrRiQiSr2RkNV7HFPC=J%P#k8 zB1$@7cz=Xg-gNJZ`X*Ve%wL_d|GY6xKZZZlLX3ywirpGi-V1MJn1}I|G0f49rS&OG zMlmqyN}$5!+XCVB>PKS-PZOB`Uf{`}Kg}-!9#;nRmr@`A3(*JPPT&XdM4&Dp-2ZwS zbeR8bmMlD*B@|%7zZ<-oCKG^`$IF>hpM#ag0FY7T z0i(`d%6d0YerfGqbW%Du{z8C3Yq==DgaMNFz@*49}_ zc&z@m78L?Ef_-R_*J?b``c2Iu1s(ZGW~S*zfdA{QJl^4yruc)I>|S+Q@%9>vUk$l7 zZ`z0^$ok*-laQZaZXOv*T(Wz-0(Qz#(3Cx;kJOaryja2=6pf$0tLPAk4BbcZjd1j& z{B+Jp$B44wnBDZl+WTWi!?r0^43xeC#R@9iS+rSp0s+=op1dZ8om{Ik z8?*%gdPd^r!5t)n>cT!Uq*e}T`9V00gU7zb&?^cAU=c^T(o!^~;1X zf_OPYxM{jDI*k^GIeA3l#br@+?)P#%FOn@*vNNy$)DB`^s( zVMpCkk1a_A@*IVFNohp~I?tD2;+~Pe_yV9ZX3Pj#KA8c2kzm zk^3)^_jjNlDOfHU9@Z1QcplQ+f3TXP{ZO^IDTB?WWLG!dlU-L=~iXD7N>G?v>Un8mLK*A7%NQdd|k7Khq?;CpO_Vp*^7xCX6 zTRLpxjC|O>YsiVm*iu8Bd5*saO{H6@S8eQoX*gN5eM#;Kl$g=L7Agb)pFlng?~{P1A@q3ysBXIzI>%?KikQ>na9XO6auLa+soi~TOS zA2*ksNA`C36u0*MA2t9Iry=;l7dAq4el*wVZB4iD)v$VJ2E zY;K8F>Atr>2_CSC@wNHV|Eqtv7n^?xWi2cB=~J6RswD%?BVN7rNAjQ}u(j4Z-rOk@ z>lk!oD}kMe$LvnaFNULvTV--c*)S8lXGjCx_8-_#GBCvH2Mu7WZ&fiof~8mgTu?sW zZsg=FnMr-VB618d#IgS2Gz85Et`7Dqg6*ZccSy`k1evdhdKH&H(5EVKnI~&{g0JIF)A=Y5><<7EQShqyXQ6tK0& z*b}`%HN44Ax{4=ehlawwQWKyC7fRE^nor8vc=}xT3LI${ak=faC_f~1J01g1%=^=? zk5s+Igcy)be33=HP_QGfY#@*;_^|a6LUS}&pd?m#+GjUgRPYsJo=E1|5Nj3OFe4;T z9n@`r>(m+xOa^%v(EHwt%lH!?Rab~%>C1V^Kk~1NrA-!II;Q&X=>!jos1AH{^UY27 zI`C0k)EspExHJ(sESORR^qxtyEF;y9|Il0E` zKIPhUO`KGVYHB*n35#aw9ZJ_j%0Ox{pkxCV+4ds_391hQJ7$50Y)K31j2V`{?=zg0 zLxd0YC9>=VxjBd8?Mj&i)4dio0q#r z!vrC)6rP~5wFaGeN>mQ#I&h#?3t7R6739DdSjFg9E;_0iJ~L;-Gc~1GV6u20wvu4{ zmic16Dd|0v)|e+GGqm={5(vZ|%)nyhh;g!~nlXex-A|+xp&=FF?Sk8JBT z30t!mNqgH9O_u2}cop(|(pW+wlTl=0>BvJe%&P2tlP0=OYX}p14xNL7AAPqH_*^aJUw*9BXKa`44wV5WygZzMq{oG;O_VPQOHz>YuAfw44&>_Y&jY)c}9v2$l=sbKX*##pe^eL8x z?Q||TdB7*Vv@jl3u0TmHd#|$hh`^mZS`73rig90zpz#Zv=9It!`3)Fo9t0hiqiw>6 z7AvTIBenO`_G|Im-<#ggXN<@a0=10dx$PhS5 zFtF78QX2*V0D2I5aNA|}gy)P9VDQ;!0U@ZZEG(mRk){ED1^G|4xrMvs5gvH(V=#IE nkN+DV>VNeOYlo`=NBc(s9-npRPuWLnf&Z+msBs4;Zx;L?{NKUQ diff --git a/doc/getting-started/network-edge/offline-images/offline-ssh.png b/doc/getting-started/network-edge/offline-images/offline-ssh.png deleted file mode 100644 index c6efe0a6f60a0b98e0d27a46d2de7fbd70f1ae17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30053 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 C!a_6v diff --git a/doc/getting-started/network-edge/supported-epa.md b/doc/getting-started/network-edge/supported-epa.md deleted file mode 100644 index 26647ad3..00000000 --- a/doc/getting-started/network-edge/supported-epa.md +++ /dev/null @@ -1,27 +0,0 @@ -```text -SPDX-License-Identifier: Apache-2.0 -Copyright (c) 2019 Intel Corporation -``` - -# OpenNESS Network Edge - Enhanced Platform Awareness Features Supported -- [Overview](#overview) -- [Features](#features) - -## Overview -Enhanced Platform Awareness (EPA) features are supported in on-premises using Kubernetes\* infrastructure. Some of the EPA features are supported as Kubernetes jobs, some as daemon sets, some as normal pods, and some as Kubernetes device plugins. The overall objective of EPA for network edge is to expose the platform capability to the edge cloud orchestrator for better performance, consistency, and reliability. - -## Features -The following EPA features are supported in Open Network Edge Services Software (OpenNESS) Network Edge: -* [**openness-hugepage.md**: Hugepages support for edge applications and network functions](../../building-blocks/enhanced-platform-awareness/openness-hugepage.md) -* [**openness-node-feature-discovery.md**: Edge node hardware and software feature discovery support in OpenNESS](../../building-blocks/enhanced-platform-awareness/openness-node-feature-discovery.md) -* [**openness-sriov-multiple-interfaces.md**: Dedicated physical network interface allocation support for edge applications and network functions](../../building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md) -* [**openness-dedicated-core.md**: Dedicated CPU core allocation support for edge applications and network functions](../../building-blocks/enhanced-platform-awareness/openness-dedicated-core.md) -* [**openness-bios.md**: Edge platform BIOS and firmware and configuration support in OpenNESS](../../building-blocks/enhanced-platform-awareness/openness-bios.md) -* [**openness-qat.md**: Resource allocation & configuration of Intel® QuickAssist Adapter](../../building-blocks/enhanced-platform-awareness/openness-qat.md) -* [**openness-fpga.md**: Dedicated FPGA IP resource allocation support for edge applications and network functions](../../building-blocks/enhanced-platform-awareness/openness-fpga.md) -* [**openness-topology-manager.md**: Resource locality awareness support through topology manager in OpenNESS](../../building-blocks/enhanced-platform-awareness/openness-topology-manager.md) -* [**openness_hddl.md**: Intel® Movidius™ Myriad™ X High Density Deep Learning (HDDL) solution](../../building-blocks/enhanced-platform-awareness/openness_hddl.md) -* [**openness-telemetry.md**: Telemetry Support in OpenNESS](../../building-blocks/enhanced-platform-awareness/openness-telemetry.md) -* [**openness-acc100.md**: Resource allocation & configuration of Intel® vRAN Dedicated Accelerator ACC100](../../building-blocks/enhanced-platform-awareness/openness-acc100.md) -* [**openness-rmd.md**: Cache Allocation for Containers with Resource Management Daemon (RMD)](../../building-blocks/enhanced-platform-awareness/openness-rmd.md) -* [**openness-vcac-a.md**: Visual Compute Accelerator Card - Analytics (VCAC-A)](../../building-blocks/enhanced-platform-awareness/openness-vcac-a.md) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-nonroot.md b/doc/getting-started/non-root-user.md similarity index 100% rename from doc/building-blocks/enhanced-platform-awareness/openness-nonroot.md rename to doc/getting-started/non-root-user.md diff --git a/doc/getting-started/network-edge/controller-edge-node-setup-images/harbor_ui.png b/doc/getting-started/openness-cluster-setup-images/harbor_ui.png similarity index 100% rename from doc/getting-started/network-edge/controller-edge-node-setup-images/harbor_ui.png rename to doc/getting-started/openness-cluster-setup-images/harbor_ui.png diff --git a/doc/getting-started/network-edge/controller-edge-node-setup.md b/doc/getting-started/openness-cluster-setup.md similarity index 69% rename from doc/getting-started/network-edge/controller-edge-node-setup.md rename to doc/getting-started/openness-cluster-setup.md index 33997a7a..a5db2eda 100644 --- a/doc/getting-started/network-edge/controller-edge-node-setup.md +++ b/doc/getting-started/openness-cluster-setup.md @@ -3,7 +3,7 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) 2019-2021 Intel Corporation ``` -# OpenNESS Network Edge: Controller and Edge node setup +# OpenNESS Cluster Setup - [Quickstart](#quickstart) - [Preconditions](#preconditions) - [Running playbooks](#running-playbooks) @@ -14,19 +14,6 @@ Copyright (c) 2019-2021 Intel Corporation - [VM support for Network Edge](#vm-support-for-network-edge) - [Application on-boarding](#application-on-boarding) - [Single-node Network Edge cluster](#single-node-network-edge-cluster) - - [Harbor registry](#harbor-registry) - - [Deploy Harbor registry](#deploy-harbor-registry) - - [System Prerequisite](#system-prerequisite) - - [Ansible Playbooks](#ansible-playbooks) - - [Projects](#projects) - - [Harbor login](#harbor-login) - - [Harbor registry image push](#harbor-registry-image-push) - - [Harbor registry image pull](#harbor-registry-image-pull) - - [Harbor UI](#harbor-ui) - - [Harbor CLI](#harbor-cli) - - [CLI - List Project](#cli---list-project) - - [CLI - List Image Repositories](#cli---list-image-repositories) - - [CLI - Delete Image](#cli---delete-image) - [Kubernetes cluster networking plugins (Network Edge)](#kubernetes-cluster-networking-plugins-network-edge) - [Selecting cluster networking plugins (CNI)](#selecting-cluster-networking-plugins-cni) - [Adding additional interfaces to pods](#adding-additional-interfaces-to-pods) @@ -125,7 +112,7 @@ To get started with deploying an OpenNESS edge cluster using the Converged Edge > **NOTE**: To deploy multiple clusters in one command run, append the same set of YAML specs separated by `---` -3. Additional configurations should be applied to the default group_vars file: `inventory/default/group_vars/all/10-default.yml`. More details on the default values is explained in the [Getting Started Guide](../converged-edge-experience-kits.md#default-values). +3. Additional configurations should be applied to the default group_vars file: `inventory/default/group_vars/all/10-default.yml`. More details on the default values is explained in the [Getting Started Guide](./converged-edge-experience-kits.md#default-values). 4. Get the deployment started by executing the deploy script @@ -172,14 +159,14 @@ $ python3 deploy.py --clean ### Supported EPA features -Several enhanced platform capabilities and features are available in OpenNESS for Network Edge. For the full list of supported features, see [Enhanced Platform Awareness Features](./supported-epa.md). The documents referenced in this list provide a detailed description of the features, and step-by-step instructions for enabling them. Users should become familiar with available features before executing the deployment playbooks. +Several enhanced platform capabilities and features are available in OpenNESS for Network Edge. For the full list of supported features, refer to Building Blocks / Enhanced Platform Awareness section. The documents referenced in this list provide a detailed description of the features, and step-by-step instructions for enabling them. Users should become familiar with available features before executing the deployment playbooks. ### VM support for Network Edge -Support for VM deployment on OpenNESS for Network Edge is available and enabled by default. Certain configurations and prerequisites may need to be satisfied to use all VM capabilities. The user is advised to become familiar with the VM support documentation before executing the deployment playbooks. See [openness-network-edge-vm-support](../../applications-onboard/openness-network-edge-vm-support.md) for more information. +Support for VM deployment on OpenNESS for Network Edge is available and enabled by default. Certain configurations and prerequisites may need to be satisfied to use all VM capabilities. The user is advised to become familiar with the VM support documentation before executing the deployment playbooks. See [VM support in OpenNESS for Network Edge](../applications-onboard/openness-network-edge-vm-support.md) for more information. ### Application on-boarding -Refer to the [network-edge-applications-onboarding](../../applications-onboard/network-edge-applications-onboarding.md) document for instructions on how to deploy edge applications for OpenNESS Network Edge. +Refer to the [network-edge-applications-onboarding](../applications-onboard/network-edge-applications-onboarding.md) document for instructions on how to deploy edge applications for OpenNESS Network Edge. ### Single-node Network Edge cluster @@ -232,196 +219,6 @@ To deploy Network Edge in a single-node cluster scenario, follow the steps below $ python3 deploy.py ``` -## Harbor registry - -Harbor registry is an open source cloud native registry which can support images and relevant artifacts with extended functionalities as described in [Harbor](https://goharbor.io/). On the OpenNESS environment, Harbor registry service is installed on Control plane Node by Harbor Helm Chart [github](https://github.com/goharbor/harbor-helm/releases/tag/v1.5.1). Harbor registry authentication enabled with self-signed certificates as well as all nodes and control plane will have access to the Harbor registry. - -### Deploy Harbor registry - -#### System Prerequisite -* The available system disk should be reserved at least 20G for Harbor PV/PVC usage. The defaut disk PV/PVC total size is 20G. The values can be configured in the ```roles/harbor_registry/controlplane/defaults/main.yaml```. -* If huge pages enabled, need 1G(hugepage size 1G) or 300M(hugepage size 2M) to be reserved for Harbor usage. - -#### Ansible Playbooks -Ansible `harbor_registry` roles created in Converged Edge Experience Kits. For deploying a Harbor registry on Kubernetes, control plane roles are enabled in the main `network_edge.yml` playbook file. - -```ini -role: harbor_registry/controlplane -role: harbor_registry/node -``` - -The following steps are processed by converged-edge-experience-kits during the Harbor registry installation on the OpenNESS control plane node. - -* Download Harbor Helm Charts on the Kubernetes Control plane Node. -* Check whether huge pages is enabled and templates values.yaml file accordingly. -* Create namespace and disk PV for Harbor Services (The default disk PV/PVC total size is 20G. The values can be configured in the `roles/kubernetes/harbor_registry/controlplane/defaults/main.yaml`). -* Install Harbor on the control plane node using the Helm Charts (The CA crt will be generated by Harbor itself). -* Create the new project - ```intel``` for OpenNESS microservices, Kurbernetes enhanced add-on images storage. -* Docker login the Harbor Registry, thus enable pulling, pushing and tag images with the Harbor Registry - - -On the OpenNESS edge nodes, converged-edge-experience-kits will conduct the following steps: -* Get harbor.crt from the OpenNESS control plane node and save into the host location - /etc/docker/certs.d/ -* Docker login the Harbor Registry, thus enable pulling, pushing and tag images with the Harbor Registry -* After above steps, the Node and Ansible host can access the private Harbor registry. -* The IP address of the Harbor registry will be: "Kubernetes_Control_Plane_IP" -* The port number of the Harbor registry will be: 30003 - - -#### Projects -Two Harbor projects will be created by CEEK as below: -- ```library``` The registry project can be used by edge application developer as default images registries. -- ```intel``` The registry project contains the registries for the OpenNESS microservices and relevant kubernetes addon images. Can also be used for OpenNESS sample application images. - -### Harbor login -For the nodes inside of the OpenNESS cluster, converged-edge-experience-kits ansible playbooks automatically login and prepare harbor CA certifications to access Harbor services. - -For the external host outside of the OpenNESS cluster, can use following commands to access the Harbor Registry: - -```shell -# create directory for harbor's CA crt -mkdir /etc/docker/certs.d/${Kubernetes_Control_Plane_IP}:${port}/ - -# get EMCO harbor CA.crt -set -o pipefail && echo -n | openssl s_client -showcerts -connect ${Kubernetes_Control_Plane_IP}:${port} 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /etc/docker/certs.d/${Kubernetes_Control_Plane_IP}:${port}/harbor.crt - -# docker login harobr registry -docker login ${Kubernetes_Control_Plane_IP}:${port} -uadmin -p${harborAdminPassword} -``` -The default access configuration for the Harbor Registry is: - ```ini -Kubernetes_Control_Plane_IP: 30003(default) -harborAdminPassword: Harbor12345(default) - ``` - -### Harbor registry image push -Use the Docker tag to create an alias of the image with the fully qualified path to your Harbor registry after the tag successfully pushes the image to the Harbor registry. - - ```shell - docker tag nginx:latest {Kubernetes_Control_Plane_IP}:30003/intel/nginx:latest - docker push {Kubernetes_Control_Plane_IP}:30003/intel/nginx:latest - ``` -Now image the tag with the fully qualified path to your private registry. You can push the image to the registry using the Docker push command. - -### Harbor registry image pull -Use the `docker pull` command to pull the image from Harbor registry: - - ```shell - docker pull {Kubernetes_Control_Plane_IP}:30003/intel/nginx:latest - ``` - -### Harbor UI -Open the https://{Kubernetes_Control_Plane_IP}:30003 with login username ```admin``` and password ```Harbor12345```: -![](controller-edge-node-setup-images/harbor_ui.png) - -You could see two projects: ```intel``` and ```library``` on the Web UI. For more details about Harbor usage, can refer to [Harbor docs](https://goharbor.io/docs/2.1.0/working-with-projects/). - -### Harbor CLI -Apart for Harbor UI, you can also use ```curl``` to check Harbor projects and images. The examples will be shown as below. -```text -In the examples, 10.240.224.172 is IP address of {Kubernetes_Control_Plane_IP} -If there is proxy connection issue with ```curl``` command, can add ```--proxy``` into the command options. -``` - -#### CLI - List Project -Use following example commands to check projects list: - ```shell - # curl -X GET "https://10.240.224.172:30003/api/v2.0/projects" -H "accept: application/json" -k --cacert /etc/docker/certs.d/10.240.224.172:30003/harbor.crt -u "admin:Harbor12345 | jq" - [ - { - "creation_time": "2020-11-26T08:47:31.626Z", - "current_user_role_id": 1, - "current_user_role_ids": [ - 1 - ], - "cve_allowlist": { - "creation_time": "2020-11-26T08:47:31.628Z", - "id": 1, - "items": [], - "project_id": 2, - "update_time": "2020-11-26T08:47:31.628Z" - }, - "metadata": { - "public": "true" - }, - "name": "intel", - "owner_id": 1, - "owner_name": "admin", - "project_id": 2, - "repo_count": 3, - "update_time": "2020-11-26T08:47:31.626Z" - }, - { - "creation_time": "2020-11-26T08:39:13.707Z", - "current_user_role_id": 1, - "current_user_role_ids": [ - 1 - ], - "cve_allowlist": { - "creation_time": "0001-01-01T00:00:00.000Z", - "items": [], - "project_id": 1, - "update_time": "0001-01-01T00:00:00.000Z" - }, - "metadata": { - "public": "true" - }, - "name": "library", - "owner_id": 1, - "owner_name": "admin", - "project_id": 1, - "update_time": "2020-11-26T08:39:13.707Z" - } - ] - - ``` - -#### CLI - List Image Repositories -Use following example commands to check images repository list of project - ```intel```: - ```shell - # curl -X GET "https://10.240.224.172:30003/api/v2.0/projects/intel/repositories" -H "accept: application/json" -k --cacert /etc/docker/certs.d/10.240.224.172:30003/harbor.crt -u "admin:Harbor12345" | jq - [ - { - "artifact_count": 1, - "creation_time": "2020-11-26T08:57:43.690Z", - "id": 3, - "name": "intel/sriov-device-plugin", - "project_id": 2, - "pull_count": 1, - "update_time": "2020-11-26T08:57:55.240Z" - }, - { - "artifact_count": 1, - "creation_time": "2020-11-26T08:56:16.565Z", - "id": 2, - "name": "intel/sriov-cni", - "project_id": 2, - "update_time": "2020-11-26T08:56:16.565Z" - }, - { - "artifact_count": 1, - "creation_time": "2020-11-26T08:49:25.453Z", - "id": 1, - "name": "intel/multus", - "project_id": 2, - "update_time": "2020-11-26T08:49:25.453Z" - } - ] - - ``` - -#### CLI - Delete Image -Use following example commands to delete the image repository of project - ```intel```, for example: - ```shell - # curl -X DELETE "https://10.240.224.172:30003/api/v2.0/projects/intel/repositories/nginx" -H "accept: application/json" -k --cacert /etc/docker/certs.d/10.240.224.172:30003/harbor.crt -u "admin:Harbor12345" - ``` - -Use following example commands to delete a specific image version: - ```sh - # curl -X DELETE "https://10.240.224.172:30003/api/v2.0/projects/intel/repositories/nginx/artifacts/1.14.2" -H "accept: application/json" -k --cacert /etc/docker/certs.d/10.240.224.172:30003/harbor.crt -u "admin:Harbor12345" - ``` - ## Kubernetes cluster networking plugins (Network Edge) Kubernetes uses 3rd party networking plugins to provide [cluster networking](https://kubernetes.io/docs/concepts/cluster-administration/networking/). @@ -444,12 +241,12 @@ The following CNIs are currently supported: * Network attachment definition: openness-flannel * [weavenet](https://github.com/weaveworks/weave) * CIDR: 10.32.0.0/12 -* [SR-IOV](https://github.com/intel/sriov-cni) (cannot be used as a standalone or primary CNI - [sriov setup](../../building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md)) -* [Userspace](https://github.com/intel/userspace-cni-network-plugin) (cannot be used as a standalone or primary CNI - [Userspace CNI setup](../../building-blocks/dataplane/openness-userspace-cni.md) +* [SR-IOV](https://github.com/intel/sriov-cni) (cannot be used as a standalone or primary CNI - [sriov setup](../building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md)) +* [Userspace](https://github.com/intel/userspace-cni-network-plugin) (cannot be used as a standalone or primary CNI - [Userspace CNI setup](../building-blocks/dataplane/openness-userspace-cni.md) Multiple CNIs can be requested to be set up for the cluster. To provide such functionality [the Multus CNI](https://github.com/intel/multus-cni) is used. ->**NOTE**: For a guide on how to add new a CNI role to the Converged Edge Experience Kits, refer to [the Converged Edge Experience Kits guide](../../getting-started/converged-edge-experience-kits.md#adding-new-cni-plugins-for-kubernetes-network-edge). +>**NOTE**: For a guide on how to add new a CNI role to the Converged Edge Experience Kits, refer to [the Converged Edge Experience Kits guide](./converged-edge-experience-kits.md#adding-new-cni-plugins-for-kubernetes-network-edge). ### Selecting cluster networking plugins (CNI) @@ -658,7 +455,7 @@ and check to make sure that only the key(s) you wanted were added. To make sure the key is copied successfully, try to SSH into the host: `ssh 'root@host'`. It should not ask for the password. >**NOTE**: Where non-root user is used for example `openness` the command should be replaced to `ssh openness@host`. For more information about non-root user please refer to: -[The non-root user on the OpenNESS Platform](../../building-blocks/enhanced-platform-awareness/openness-nonroot.md) +[The non-root user on the OpenNESS Platform](../getting-started/non-root-user.md) ## Setting proxy If a proxy is required to connect to the Internet, it is configured via the following steps: @@ -716,5 +513,5 @@ git_repo_branch: openness-20.03 ## Customization of kernel, grub parameters, and tuned profile -Converged Edge Experience Kits provide an easy way to customize the kernel version, grub parameters, and tuned profile. For more information, refer to the [Converged Edge Experience Kits guide](../../getting-started/converged-edge-experience-kits.md). +Converged Edge Experience Kits provide an easy way to customize the kernel version, grub parameters, and tuned profile. For more information, refer to the [Converged Edge Experience Kits guide](./converged-edge-experience-kits.md). From d31ce61952c81789f001e2b01783371c621a0ca5 Mon Sep 17 00:00:00 2001 From: Jakub Rymsza <51228427+jakubrym@users.noreply.github.com> Date: Tue, 30 Mar 2021 13:46:35 +0200 Subject: [PATCH 83/89] Added documentation for DPDK (#415) --- .../openness-topology-manager.md | 279 +++++++++++++++++- 1 file changed, 278 insertions(+), 1 deletion(-) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-topology-manager.md b/doc/building-blocks/enhanced-platform-awareness/openness-topology-manager.md index ced77c30..fdb5aef5 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-topology-manager.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-topology-manager.md @@ -8,13 +8,21 @@ Copyright (c) 2019 Intel Corporation - [Edge use case](#edge-use-case) - [Details - Topology manager support in OpenNESS](#details---topology-manager-support-in-openness) - [Usage](#usage) +- [OpenNESS NUMA and DPDK Cheat Sheet](#OpenNESS-NUMA-and-DPDK-Cheat-Sheet) + - [DPDK in OpenNESS](#DPDK-in-OpenNESS) + - [What is NUMA and Why You Care](#What-is-NUMA-and-Why-You-Care) + - [Determine NIC NUMA placement](#Determine-NIC-NUMA-placement) + - [CPU Mask Calculations](#CPU-Mask-Calculations) + - [Hugepages and NUMA](#Hugepages-and-NUMA) + - [DPDK CPU Mask Script](#DPDK-CPU-Mask-Script) + - [TuneD and DPDK CPU Bindings](#TuneD-and-DPDK-CPU-Bindings) - [Reference](#reference) ## Overview Multi-core and Multi-Socket commercial, off-the-shelf (COTS) systems are widely used for the deployment of application and network functions. COTS systems provide a variety of IO and memory features. In order to achieve determinism and high performance, mechanisms like CPU isolation, IO device locality, and socket memory allocation are critical. Cloud-native stacks such as Kubernetes\* are beginning to leverage resources such as CPU, hugepages, and I/O, but are agnostic to the Non-Uniform Memory Access (NUMA) alignment of these. Non-optimal, topology-aware NUMA resource allocation can severely impact the performance of latency-sensitive workloads. -To address this requirement, OpenNESS uses the Topology manager. The topology manager is now supported by Kubernetes. Topology Manager is a solution that permits k8s components (e.g., CPU Manager and Device Manager) to coordinate the resources allocated to a workload. +To address this requirement, OpenNESS uses the Topology manager. The topology manager is now supported by Kubernetes. Topology Manager is a solution that permits k8s components (e.g., CPU Manager and Device Manager) to coordinate the resources allocated to a workload. ### Edge use case @@ -53,6 +61,7 @@ Where `` can be `none`, `best-effort`, `restricted` or `single- You can also set `reserved_cpus` to a number that suits you best. This parameter specifies the logical CPUs that will be reserved for a Kubernetes system Pods and OS daemons. ### Usage + To use Topology Manager create a Pod with a `guaranteed` QoS class (requests equal to limits). For example: ```yaml @@ -82,6 +91,274 @@ Nov 05 09:22:52 tmanager kubelet[64340]: I1105 09:22:52.550016 64340 topology_ Nov 05 09:22:52 tmanager kubelet[64340]: I1105 09:22:52.550171 64340 topology_hints.go:60] [cpumanager] TopologyHints generated for pod 'examplePod', container 'example': [{0000000000000000000000000000000000000000000000000000000000000001 true} {0000000000000000000000000000000000000000000000000000000000000010 true} {0000000000000000000000000000000000000000000000000000000000000011 false}] Nov 05 09:22:52 tmanager kubelet[64340]: I1105 09:22:52.550204 64340 topology_manager.go:285] [topologymanager] ContainerTopologyHint: {0000000000000000000000000000000000000000000000000000000000000010 true} Nov 05 09:22:52 tmanager kubelet[64340]: I1105 09:22:52.550216 64340 topology_manager.go:329] [topologymanager] Topology Affinity for Pod: 4ad6fb37-509d-4ea6-845c-875ce41049f9 are map[example:{0000000000000000000000000000000000000000000000000000000000000010 true}] + +``` + +# OpenNESS NUMA and DPDK Cheat Sheet + +_Disclaimer: this document is not intended to serve as a comprehensive guide to DPDK, optimizing DPDK deployments, or as a replacement for the extensive DPDK documentation. This guide is intended as a supplement to the OpenNESS/CERA experience kits in order to adapt them to a platform that is different than those used in the OpenNESS development and validation labs._ + +_The examples in this document are taken from a DELL R740 server, which happens to enumerate CPUs very differently than the Intel WolfPass S2600WFQ reference platform commonly utilized within Intel labs._ + +[TOC] + + +# DPDK in OpenNESS + +When the OpenNESS is deployed with the KubeOVN CNI we include the DPDK optimizations, this is managed through the _flavor_ group_vars via the flag: + +```bash +kubeovn_dpdk: true +``` + +When the flag is set to true, then the OVS is deployed with DPDK bindings. In the case that the deployment succeeds, this can be verified with the following: + +```bash +ovs-vsctl get Open_vSwitch . dpdk_initialized +``` + +Example: + +```bash +[root@edgenode ~]# ovs-vsctl get Open_vSwitch . dpdk_initialized +true +``` + +## What is NUMA and Why You Care + +The [Wikipedia entry for NUMA](https://en.wikipedia.org/wiki/Non-uniform_memory_access#:~:text=Non-uniform%20memory%20access%20%28%20NUMA%29%20is%20a%20computer,to%20another%20processor%20or%20memory%20shared%20between%20processors%29.) states: + +> **Non-Uniform Memory Access** (**NUMA**) is a [computer memory](https://en.wikipedia.org/wiki/Computer_storage) design used in [multiprocessing](https://en.wikipedia.org/wiki/Multiprocessing), where the memory access time depends on the memory location relative to the processor. Under NUMA, a processor can access its own [local memory](https://en.wikipedia.org/wiki/Local_memory) faster than non-local memory (memory local to another processor or memory shared between processors). The benefits of NUMA are limited to particular workloads, notably on servers where the data is often associated strongly with certain tasks or users. + +So in summary, each physical CPU core has memory that is _more_ local than other memory. The latency to access the more local has lower latency, when we look at maximizing throughput, bandwith, and latency the memory access latency has increasing impact on the observed performance. This applies to the queues for networking (and NVMe storage) devices as well, in order to maximize performance you want the execution threads to have affinity to the same memory space in order to benefit from this reduced localized access. It is recommended to place the latency sensitive applications to be localized within the same NUMA node as the network interface (and storage devices) it will utilize in order to see the full capability of the hardware. + +Intel publishes various resources for [optimizing applications for NUMA](https://software.intel.com/content/www/us/en/develop/articles/optimizing-applications-for-numa.html) including a guide on assessing the effect of NUMA using [Intel® VTune™ Amplifier](https://software.intel.com/content/www/us/en/develop/videos/how-numa-affects-your-workloads-intel-vtune-amplifier.html). + +Within OpenNESS we implement [CPU management extensions](https://www.openness.org/docs/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core#details---cpu-manager-support-in-openness) to Kubernetes to allow scheduling workloads with NUMA awareness. In the context of DPDK, we bind the descriptors for dataplane to the NUMA node of the network interface(s). + +## Determine NIC NUMA placement + +While this currently focuses on the NIC, the same applies to decoding the NUMA affinity of any PCI resource, including accelerator cards. + +Find NIC's PCI address (in this example we know we are using an Intel X710 NIC but XXV710 would also be found): + +```bash +[root@edgenode ~]# lspci | grep 710 +86:00.0 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 02) +86:00.1 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 02) +``` + +The NIC PCI location can also be found by using `ethtool` against the interface name as shown in `ip link show` or `ifconfig` by using `ethtool -m `: + +```bash +[root@edgenode ~]# ethtool -i eth0 | grep bus-info +bus-info: 86:00.0 +``` + +Find NUMA node of NICs: + +```bash +[root@edgenode ~]# lspci -vmms 86:00.0 +Slot: 86:00.0 +Class: Ethernet controller +Vendor: Intel Corporation +Device: Ethernet Controller X710 for 10GbE SFP+ +SVendor: Intel Corporation +SDevice: Ethernet Converged Network Adapter X710-2 +Rev: 02 +NUMANode: 1 +``` + +`lspci` command options selected here are: + +```bash +Basic display modes: +-mm Dump PCI device data in a machine readable form for easy parsing by scripts. See below for details. + +Display options: +-v Be verbose and display detailed information about all devices. (-vv for very verbose) + +Selection of devices: +-s [[[[]:]]:][][.[]] Show only devices in the specified domain (in case your machine has several host bridges, they can either share a common bus number space or each of them can address a PCI domain of its own; domains are numbered from 0 to ffff), bus (0 to ff), device (0 to 1f) and function (0 to 7). Each component of the device address can be omitted or set to "*", both meaning "any value". All numbers are hexadecimal. E.g., "0:" means all devices on bus 0, "0" means all functions of device 0 on any bus, "0.3" selects third function of device 0 on all buses and ".4" shows only the fourth function of each device. +``` + +Alternatively to using `lspci -vmss` (as it may not work on all platforms), this can also be found by reading the PCI device properties: + +```bash +[root@edgenode ~]# cat /sys/bus/pci/devices/0000\:86\:00.0/numa_node +1 +``` + +You can also read the local CPU list of the PCI device: + +```bash +[root@edgenode ~]# cat /sys/bus/pci/devices/0000\:86\:00.0/local_cpulist +1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47 +``` + +When we proceed to selecting CPUs for the `pmd_cpu_mask` the above CPU list is critical, as we must select a CPU that is within the _same_ NUMA node as the NIC(s). + +## CPU Mask Calculations + +CPU masks are defined within `group_vars/all/10-default.yml` as `kubeovn_dpdk_pmd_cpu_mask` and `kubeovn_dpdk_lcore_mask`. + +CPU Mask is used to assign cores to DPDK. + +`numactl -H` will provide a list of CPUs, however it doesn't show which threads are "peers". On some platforms the CPU IDs are enumerated in sequential order within NUMA node 0 and then into NUMA node 1 (e.g. `0`,`1`,`2`,`3` etc would be sequentially in NUMA node 0): + +```bash +[root@edgenode ~]# numactl -H +available: 2 nodes (0-1) +node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 +node 0 size: 95128 MB +node 0 free: 71820 MB +node 1 cpus: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 +node 1 size: 96729 MB +node 1 free: 71601 MB +node distances: +node 0 1 + 0: 10 21 + 1: 21 10 +``` + +Other platforms enumerate across the NUMA nodes, where _even_ CPU IDs are within pme NUMA node while _odd_ CPU IDs are on the opposing NUMA node as shown below: + +```bash +[root@edgenode ~]# numactl -H +available: 2 nodes (0-1) +node 0 cpus: 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 +node 0 size: 96749 MB +node 0 free: 86064 MB +node 1 cpus: 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 +node 1 size: 98304 MB +node 1 free: 86713 MB +node distances: +node 0 1 + 0: 10 21 + 1: 21 10 +``` + +Within the DPDK source code there is a tool to show CPU topology, the OEK places this in `/opt/dpdk-18.11.6/usertools`. The advantage of this output is that it will show the peer threads (HyperThreading) for the same physical CPU. + +Example, CPUs `0` and `24` execute on the same physical core. + +```bash +[root@edgenode ~]# /opt/dpdk-18.11.6/usertools/cpu_layout.py +====================================================================== +Core and Socket Information (as reported by '/sys/devices/system/cpu') +====================================================================== + +cores = [0, 5, 1, 4, 2, 3, 8, 13, 9, 12, 10, 11] +sockets = [0, 1] + + Socket 0 Socket 1 + -------- -------- +Core 0 [0, 24] [1, 25] +Core 5 [2, 26] [3, 27] +Core 1 [4, 28] [5, 29] +Core 4 [6, 30] [7, 31] +Core 2 [8, 32] [9, 33] +Core 3 [10, 34] [11, 35] +Core 8 [12, 36] [13, 37] +Core 13 [14, 38] [15, 39] +Core 9 [16, 40] [17, 41] +Core 12 [18, 42] [19, 43] +Core 10 [20, 44] [21, 45] +Core 11 [22, 46] [23, 47] +``` + +CPU mask is calculated as a bitmask, where the bit location corresponds to the CPU in a numercial list. If we list CPUs values in a row: + +```bash +0 1 2 3 4 5 6 7 8 9 10 11 12... 24 25 26 27 28 29 30 31 32 33 34 35 36... +``` + +The bit placement is the position of the CPU ID, so CPU ID `2` has is the _third_ bit placement...or `0100` in binary and CPU ID 8 is the _ninth_ bit placement or `1 0000 0000` in binary. We can then convert from `bin` to `hex`. `0001` = `0x4` and `1 0000 0000` = `0x100`. + +This can also be found via: + +```bash +echo "ibase=10; obase=16; 2^($CPUID)" | bc +``` + +Example for CPU ID = `3` (as it is local to the NUMA node with the NIC above) + +```bash +[root@edgenode ~]# echo "ibase=10; obase=16; 2^(3)" | bc +8 +``` + +In this case we would set the CPU mask to `0x8`. + +A web based tool to calculate CPU mask can be found [here](https://bitsum.com/tools/cpu-affinity-calculator/). + +**Setting CPU bindings to CPU0 (`0x1`) will fail, CPU0 is reserved for system kernel.** + +## Hugepages and NUMA + +Hugepages are allocated per NUMA node, when DPDK binds to a CPU there **must be hugepages within the relative NUMA** node to support DPDK. The _first_ NUMA node cannot have `0` hugepages, so you must either be `,0` or `,` (e.g. `1024,0` or `1024,1024`). + +If there are no hugepages in the NUMA node where DPDK is set to bind it will fail with an error similar to the following within `/var/log/openvswitch/ovs-vswitchd.log`. In the case of this example, the assigned `kubeovn_dpdk_pmd_cpu_mask` resides on NUMA socket1, however the hugepages were only allocated on socket0 (--socket-mem 1024,0): + +Example error message from `ovs-vswitchd.log`: + +```ovs-vswitchd.log +2020-09-29T21:07:46.401Z|00001|vlog|INFO|opened log file /var/log/openvswitch/ovs-vswitchd.log +2020-09-29T21:07:46.415Z|00002|ovs_numa|INFO|Discovered 24 CPU cores on NUMA node 0 +2020-09-29T21:07:46.415Z|00003|ovs_numa|INFO|Discovered 24 CPU cores on NUMA node 1 +2020-09-29T21:07:46.415Z|00004|ovs_numa|INFO|Discovered 2 NUMA nodes and 48 CPU cores +2020-09-29T21:07:46.415Z|00005|reconnect|INFO|unix:/var/run/openvswitch/db.sock: connecting... +2020-09-29T21:07:46.415Z|00006|reconnect|INFO|unix:/var/run/openvswitch/db.sock: connected +2020-09-29T21:07:46.418Z|00007|dpdk|INFO|Using DPDK 18.11.6 +2020-09-29T21:07:46.418Z|00008|dpdk|INFO|DPDK Enabled - initializing... +2020-09-29T21:07:46.418Z|00009|dpdk|INFO|No vhost-sock-dir provided - defaulting to /var/run/openvswitch +2020-09-29T21:07:46.418Z|00010|dpdk|INFO|IOMMU support for vhost-user-client disabled. +2020-09-29T21:07:46.418Z|00011|dpdk|INFO|POSTCOPY support for vhost-user-client disabled. +2020-09-29T21:07:46.418Z|00012|dpdk|INFO|Per port memory for DPDK devices disabled. +2020-09-29T21:07:46.418Z|00013|dpdk|INFO|EAL ARGS: ovs-vswitchd -c 0x2 --huge-dir /hugepages --socket-mem 1024,0 --socket-limit 1024,0. +2020-09-29T21:07:46.426Z|00014|dpdk|INFO|EAL: Detected 48 lcore(s) +2020-09-29T21:07:46.426Z|00015|dpdk|INFO|EAL: Detected 2 NUMA nodes +2020-09-29T21:07:46.431Z|00016|dpdk|INFO|EAL: Multi-process socket /var/run/dpdk/rte/mp_socket +2020-09-29T21:07:46.497Z|00017|dpdk|WARN|EAL: No free hugepages reported in hugepages-1048576kB +2020-09-29T21:07:46.504Z|00018|dpdk|INFO|EAL: Probing VFIO support... +2020-09-29T21:07:46.504Z|00019|dpdk|ERR|EAL: no supported IOMMU extensions found! +2020-09-29T21:07:46.504Z|00020|dpdk|INFO|EAL: VFIO support could not be initialized +2020-09-29T21:08:05.475Z|00002|daemon_unix|ERR|fork child died before signaling startup (killed (Bus error), core dumped) +2020-09-29T21:08:05.475Z|00003|daemon_unix|EMER|could not initiate process monitoring +``` + +This error was corrected with adding the following to a ~/node_var/ node specific yaml: + +```yaml +kubeovn_dpdk_socket_mem: "1024,1024" +kubeovn_dpdk_pmd_cpu_mask: "0x8" +kubeovn_dpdk_lcore_mask: "0x20" ``` + +These bind `dpdk_pmd_cpu_mask` to CPU 3 (binary `1000`) and `dpdk_lcore_mask` to CPU 5 (binary `10 0000`). + +## Script finding CPUs in NIC NUMA Node + +This script can be executed to determine the CPUs that are local to a targeted network interface. + +```bash +echo "What network interface is the target (e.g. as output in 'ip link show' or 'nmcli dev status')" && +read interfacename && +pcibus=`ethtool -i $interfacename | grep bus-info | cut -d " " -f 2 | sed 's,:,\\\:,g'` && +echo "*** The following CPUs are NUMA adjacent to network interface $interfacename ***" && +eval cat /sys/bus/pci/devices/$pcibus/local_cpulist +``` + +# TuneD and DPDK CPU Bindings + +[TBA] + ## Reference + - [Topology Manager](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/) + +- [DPDK Programmers Guide](https://doc.dpdk.org/guides/prog_guide/index.html) + +- [DPDK Getting Started Guide for Linux](https://doc.dpdk.org/guides/linux_gsg/index.html) + +- [How to get best performance with NICs on Intel platforms](https://doc.dpdk.org/guides/linux_gsg/nic_perf_intel_platform.html#configurations-before-running-dpdk) From 83ac2d2df23a059640ac1b775715cb34209e2a57 Mon Sep 17 00:00:00 2001 From: cjnolan <47635874+cjnolan@users.noreply.github.com> Date: Tue, 30 Mar 2021 14:10:51 +0100 Subject: [PATCH 84/89] Fixed document links (#441) --- README.md | 6 ------ .../enhanced-platform-awareness/openness-acc100.md | 2 +- .../openness-dedicated-core-cmk-deprecated.md | 2 +- doc/devkits/openness-azure-devkit.md | 2 +- 4 files changed, 3 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 59f8cecf..6d56681d 100644 --- a/README.md +++ b/README.md @@ -37,12 +37,6 @@ Below is the complete list of OpenNESS solution documentation * [openness-eaa.md: Edge Application Agent: Description of Edge Application APIs and Edge Application Authentication APIs](https://github.com/otcshare/specs/blob/master/doc/applications-onboard/openness-eaa.md) * [openness-certsigner.md: Steps for issuing platform certificates](https://github.com/otcshare/specs/blob/master/doc/applications-onboard/openness-certsigner.md) -## Radio Access Network (RAN) -* [ran: Folder containing details of 4G and 5G RAN deployment support](https://github.com/otcshare/specs/tree/master/doc/reference-architectures/ran) - * [openness_ran.md: Whitepaper detailing the 4G and 5G RAN deployment support on OpenNESS for Network Edge](https://github.com/otcshare/specs/blob/master/doc/reference-architectures/ran/openness_ran.md) - * [openness_xran.md: Whitepaper detailing O-RAN Sample Application deployment support on OpenNESS](https://github.com/otcshare/specs/blob/master/doc/reference-architectures/ran/openness_xran.md) - - ## Core Network - 4G and 5G * [core-network: Folder containing details of 4G CUPS and 5G edge cloud deployment support](https://github.com/otcshare/specs/tree/master/doc/reference-architectures/core-network) diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md b/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md index 72c7f963..19fc4689 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md @@ -79,7 +79,7 @@ The full pipeline of preparing the device for workload deployment and deploying - Simple sample BBDEV application to validate the pipeline (i.e., SRIOV creation - Queue configuration - Device orchestration - Pod deployment): Script delivery and instructions to build Docker image for sample application delivered as part of Edge Apps package. ### ACC100 (FEC) Ansible Installation for OpenNESS Network Edge -To run the OpenNESS package with ACC100 (FEC) functionality, the feature needs to be enabled on both Edge Controller and Edge Node. It can be deployed via the ["flexran" flavor of OpenNESS](https://github.com/otcshare/converged-edge-experience-kits/tree/master/flavors/flexran). +To run the OpenNESS package with ACC100 (FEC) functionality, the feature needs to be enabled on both Edge Controller and Edge Node. #### Converged Edge Experience Kits To enable ACC100 support from CEEK, SRIOV must be enabled in OpenNESS: diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core-cmk-deprecated.md b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core-cmk-deprecated.md index 69172b6f..bfa98552 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core-cmk-deprecated.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core-cmk-deprecated.md @@ -52,7 +52,7 @@ CMK documentation available on GitHub\* includes: - [operator manual](https://github.com/intel/CPU-Manager-for-Kubernetes/blob/master/docs/operator.md) - [user manual](https://github.com/intel/CPU-Manager-for-Kubernetes/blob/master/docs/user.md) -CMK can be deployed using a [Helm chart](https://helm.sh/). The CMK Helm chart used in OpenNESS deployment is available on the following GitHub repository: [container-experience-kits](https://github.com/intel/container-experience-kits/tree/master/roles/cmk-install). +CMK can be deployed using a [Helm chart](https://helm.sh/). The CMK Helm chart used in OpenNESS deployment is available on the following GitHub repository: [container-experience-kits](https://github.com/intel/container-experience-kits/tree/master/roles/cmk_install). ### Setup diff --git a/doc/devkits/openness-azure-devkit.md b/doc/devkits/openness-azure-devkit.md index 213667c0..b2f0786c 100644 --- a/doc/devkits/openness-azure-devkit.md +++ b/doc/devkits/openness-azure-devkit.md @@ -14,4 +14,4 @@ for automated depoyment, and supports deployment using Porter. It enables cloud ## Getting Started Following document contains steps for quick deployment on Azure: -* [converged-edge-experience-kits/cloud/README.md: Deployment and setup guide](https://github.com/open-ness/converged-edge-experience-kits/blob/master/cloud/README.md) +* [converged-edge-experience-kits/cloud/README.md: Deployment and setup guide](https://github.com/otcshare/converged-edge-experience-kits/blob/master/cloud/README.md) From 7a7ed0d5686311bc6266ffc4aa99bc5d41c4a385 Mon Sep 17 00:00:00 2001 From: Amr Mokhtar Date: Tue, 30 Mar 2021 16:30:28 +0100 Subject: [PATCH 85/89] Add a note that VAS do not support HDDL & VCAC-A --- doc/applications/openness_service_mesh.md | 10 +++++----- doc/applications/openness_va_services.md | 10 ++++++---- .../va-services-deployment.png | Bin 30638 -> 30768 bytes doc/flavors.md | 3 +-- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/doc/applications/openness_service_mesh.md b/doc/applications/openness_service_mesh.md index d69747dc..52bf355f 100644 --- a/doc/applications/openness_service_mesh.md +++ b/doc/applications/openness_service_mesh.md @@ -164,8 +164,8 @@ _Figure - Book Info Sample Application_ > kubectl delete netpol block-all-ingress > ``` -> **NOTE**: It was observed at limited occasions that the BookInfo sample application deployment pods may end up not being successfully running, i.e. `reviews` pods (all the three versions) get stuck in `CrashLoopBack` state. A quick work-around is to create a patch file `bookinfo-patch.yaml` with the following contents: -> +> **NOTE**: A known [issue](https://github.com/istio/istio/issues/4941) when deploying the BookInfo sample application with CentOS 7.6 is that the deployment pods may end up being not successful, i.e. `reviews` pods (all the three versions) get stuck in `CrashLoopBack` state. Create a patch file `bookinfo-patch.yaml` with the following contents: +> > ```yaml > spec: > template: @@ -176,9 +176,9 @@ _Figure - Book Info Sample Application_ > - name: WLP_OUTPUT_DIR > value: /opt/output > ``` -> -> Then, apply the patch to the three deployments: `reviews-v1`, `reviews-v2` and `reviews-v3`, through the commands: -> +> +> Apply the patch to the three deployments: `reviews-v1`, `reviews-v2` and `reviews-v3`, through the commands: +> > ```shell > $ patch deployment reviews-v1 --patch "$(cat bookinfo-patch.yaml)" > $ patch deployment reviews-v2 --patch "$(cat bookinfo-patch.yaml)" diff --git a/doc/applications/openness_va_services.md b/doc/applications/openness_va_services.md index e7360140..0a6a28a7 100644 --- a/doc/applications/openness_va_services.md +++ b/doc/applications/openness_va_services.md @@ -16,12 +16,12 @@ OpenNESS furnishes the Video Analytics Services to enable third-party edge appli ## Getting Started with Video Analytics Services -To get started with deploying Video Analytics Services through Converged Edge Experience Kits (CEEK), refer to [Media Analytics Flavor](../flavors.md#media-analytics-flavor) and [Media Analytics Flavor with VCAC-A](../flavors.md#media-analytics-flavor-with-vcac-a). +To get started with deploying Video Analytics Services through Converged Edge Experience Kits (CEEK), refer to [Media Analytics Flavor](../flavors.md#media-analytics-flavor). > **NOTE**: If creating a customized flavor, the *Video Analytics Services* role can be included in the Ansible\* playbook by setting the flag `video_analytics_services_enable: true` in the flavor file. ## Video Analytics Services Deployment -Video Analytics Services are installed by the CEEK when `media-services` or `media-services-vca` flavors are deployed. These flavors include the *Video Analytics Services* role in the Ansible playbook by turning on the flag `video_analytics_services_enable: true` under the hood. When the role is included, multiple Video Analytics Services are deployed. One instance of the Video Analytics Services consists of two containers: +Video Analytics Services are installed by the CEEK when `media-services`. These flavors include the *Video Analytics Services* role in the Ansible playbook by turning on the flag `video_analytics_services_enable: true` under the hood. When the role is included, multiple Video Analytics Services are deployed. One instance of the Video Analytics Services consists of two containers: 1. Video analytics serving gateway (VAS gateway) 2. Video analytics serving sidecar (VAS sidecar) @@ -29,13 +29,15 @@ The *VAS gateway* is the artifact created when [building the VAS](https://github The *VAS sidecar* interfaces with the Edge Application Agent (EAA) to register a Video Analytics Service whereby it becomes discoverable by third-party (consumer) applications. The service registration phase provides information about the service such as: 1. Service endpoint URI, e.g., `http://analytics-ffmpeg.media:8080` -2. Acceleration used: `Xeon`, `HDDL`, or `VCAC-A` +2. Acceleration used: `Xeon`, `HDDL`\*, or `VCAC-A`\* 3. Underpinning multimedia framework: `GStreamer` or `FFmpeg` 4. Available pipelines: `emotion_recoginition`, `object_detection`, and other custom pipelines ![Video Analytics Services Deployment](va-service-images/va-services-deployment.png) -_Figure - Video Analytics Services Deployment_ +_Figure - Video Analytics Services Deployment\*_ + +> **\*NOTE**: Video Analytics Services acceleration through HDDL & VCAC-A are directional and are not currently supported in OpenNESS. Multiple instances of the Video Analytics Service can co-exist in an OpenNESS cluster depending on the available hardware resources, as depicted in the figure above. Standalone service endpoints are created for every multimedia framework and acceleration type. diff --git a/doc/applications/va-service-images/va-services-deployment.png b/doc/applications/va-service-images/va-services-deployment.png index 633201149e40a790b4787abe890841a76bee07bc..695e869c4d5057e392d0dd56dd0c8296023a62a9 100644 GIT binary patch literal 30768 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 Zl-};m{?vB{oZ#dr1({nn^QDa+{tt6D6g2<< literal 30638 zcmbTecR1DWA3shAnNjvkB0EA>L`FtrkF133b+V2XNhL&9W*J9zHpkA&9>?a8%wuM6 zzW0%Ozu%wlb$zej_4^}^b6)3l->>I% zjP4j1ZZZ$<-_vwATB&xhrO>IFuUI^^C^gP;HP8=hV+sjY}NXl10 zA5c&Am1vksa*yO9Z9svkuhx8jrbfnzxYl-mtw#55YJQK#yk?@Ps)Tu0%dF?(kq!yh z+}xV4lf_SxNi9zl${rCErI9Hgy*l>S!y;kjG=G;3HNo4$MaoT(Vz-c5@U6)CJXxWpE2f)y9JoV;|Ud_ zxm8Zsz3dQT7erI$JMdMeDUBf5VHtM-p88Q0{4nK?6^d?$&rlmJVvNB2E|tQ9LSmH| zN=!A|$PW}S0`Trj92kLA{RX^O$bz*xXnrd$a9d3{zRl1AChd1t16GvCLW;j%!!k7tF4N%Rn` zd!TF6Ybe?1ZfiSXBuT50N>@fyc21l&RXNuLPIcgi4^;_xU$St}yNbk$&BN`%%JoAX zB(!~q(&;1_PShz96+LP&5nCzteR(ahjiH1&%R0>~<1z+DKO3Ln)rA-K>_O>XZ^_yr zE1P>&#|EP_{Wq3&<5jS#xU}|y)=?g*0(}qWTsXvh3W{P!pStd`;pQTS_P9f;iN9n; zZ6wNJV5lY6LFlDO_|1M4j_hxC3K~DuCRWcO#hUE?<{Kt^?G;KtxxniRSI%bh z9%}$27wSjhaP7tQNri+*p(UI~wFw10>yx%XSBnvJhi*(BylpD8m|7e!92zU5zv+BE zu~9QSS;i?#U}VwZ#8ZdbD^Fan{$Z)b^=xy!;6b_`_M7mwg*z2Ik_FOOh$ugXFYe3I zbaZ1I^rpDXdlGOPb3{o)m4KtXt4-Tf)WJ=mf(9G!9bLYZc>5pEppSdmk#R+*Lum+e_1B3at-UNEg+K*+u& zkF}@zge#=A&Gh4E2bHwY`X1X6)lc{OVhPWp_?P3_MB^xo-8X$fY z%FcrA-$VzLjfqkYrSoYG%tmjoQ^Cxhm^K z2}`!O?%zw-Gl)*2v*}al9?9WhzoCrfQBSCYG+;>lz!5sp!h|jDGo){4*R*_v8Q1|U zET;?Bx*NO^m$$Ol7c#7ao3p7a;@aG@R&_bZ_u)>;!1tW>GU%-G_GxTX_bWanF7x8H zfQRO0Zd(+?BUY35Y`ju{Ap(78K1XJ>6T`NIShMK!KY(k)0cNu*s)5!1*<))M*drQX=*fe_$3F9kS!E6S>T*+5eBJV66C|=H4x_>(w$}JuJWZUpxB!;jXc&_?jIr zSsUK19$(L~Lg5(keT#;m4EkB_u}sI-!a>*cmxZuSqY&pRyRkTxD(jIQyOwm0o5}gN zblw-{v3?PsEcX3A(Yw=~OE##w%|77Ncgrv#BxzlgtMAsM%4%B#oMdd-Ov@Z+!u{5S zRmYhzVT@uTI_c->C66w~eS-Q2`|(Swl@GMiOtHH5nOGerQ{7m(Gq!FR5|-mLTajUx zI701%9a<(t6&!!mkxBfaPY|qNG)2F8%P`D7{<8cHcN`-E1h+&F)+hR#aXjp|+VD&p zWu{~2D-@$k>;;G#7_RK6m#iem+mx0S3t__p&At$GbW3iS8}7jU5<6~LA*=n0dRdI< zT|VZ05u7M@qIzqtJF&8*!l%LT+CEsLRc%IXC01PkT5r408%j9z(01Cst^PwHeoW#G3TJ z8tbIoD3M8y4oNsUYEV(XD)y=>IT>1oWB6gz8-9ltX_>0iG8`{R9ITT&P5J7_Rd;UX zvMnhRKi4|QJ-W!t{<8ZY3J%F&`z=pg`e(4xdhX^0G#}XLAFp)Uh&K-ugHPQU(|k==eg1^IvRJQ+97SqHgc!y=OnJ#&^@Hkv7kGS zhl(K7VOD`zev_47z*T>am#a(FTFbaLTp# z=hW|v%go|k9z8QL&Mz3eeb}6p<5n+LaqP0h!DKM0%T{+M_aeP~L%uomSY=GVBfw<0 zWig}0phpn(G0&UINob>7%mN2ya}n(Vm_5X?Jg)=zrFFxbrGp+&t(ViuIvIIb#}Ed* zQf|4?99QLiQwu5mou~-Aw5D+33Lf+q#if*&bdlASD`WbjcP$fdPrlA>kP8SUDE@hT zP@?Q@qSg1=jQh6NGsSmnVtxF;M7rdXiN!Pr?v7MhdsxQSUd(6OM&u1}@ge#C5wrA5 zl02KyVFD|)8LZEo_K%8i`_*JhT*!4yMeXkqUyst=?e+Y~Q+tC=s9@&;Lhu6&_0yKH zcgh4Y3w@f1Z**@l-BePrw5zZ^#Ulu8fD~@)bxX5IW?aa9#rQSUpQmLruRpW+K*X4yG)HVsE=SA@Xob&wb5W+Q!x@z=ZZQ{9dr zWy`5T?GrW~d2yUBn=d=umVuYYzg^DW426>1kMexp31OKiyrQS^ICz4amR7Mvt?>>d zC)sCBp*_t8m?!=EVr)BPfQvkl(5T*U$)o2IJxGKma49hpI1_Oj9&-?FfSJ^6>L<_Y zps=3X*OE@WLJmLcueuWr)Xe7aRTSmO z;a*fSm76roWH+qh^Ip}D#2TRUCF%kQg8p~dSzgY)K~X3c*T~$;uY(x=>*LpEaAjp- zqK>5Hsv{2StnkfvQA-a&GiPf=#(XCS%Ng>mGn!iTGm{}fB<9#2L^{~y2?UN55P;zQ zEa|(w=~3=rO=aEQA;0eqH`y&dLmfwhj6w3Bv}N`=%Wv)nl_%2huT6SPa&lrjYF%wocp+96AG33M@K#+4yGH=&pi(A zB&eIaG#{^L^9kd>5g$D4mwJd~?rX72bgUn)y51YAX;i{9p#M=K{S?0iNiaCKdWQzP z;=f4`Mo`RxgV?UZ=G-bnGz8GYmfRe$@=z4`<}an*yT3qPYrXT&R&mozw)hb(bo?f-9?gug|R>ELp-Z9;MhiZAL!;jR}#X}J)r z3GvCk+n>s72rj+gm&Ts|wy(q%mb_n+x;EGUj*KHMOVg%1VNoZGy}%~Jethwnqyf~< zcx|@Bx}^oCs})j$MHwVBI8iN-k$~mX+5{1MxT7AFxtY?ywYAeU_8>F*?u~=5WI5@G zoE`n{e z$oq~R{hgCwmU37;6FRT)8It0H1&Ec)CY(3+sKL?z5k3$z_TH~{Cf>vOPvFGHg&8=U z>rL+y?%(C;V(qKX<^S{r13Les{o+1gliShZ*=B7bKLFl~a6RZE3jfBD@xt;9ZvJx_ z57Fb}pQ`k2zXBrf$olMjORt}rmha{O8>JJ6GXHy_gqn$a=F9im68$ArcbRTMd<`v6W?bhhlmZ;6g@?;i48a(HfktZi;)Do z-);Es$`!Xfike0Gs^mL64XR)LvK~2UEo3VbYUAB_XK?4JuW<1JKQpt8^1H?-j&_4L z3sKr~EjGz4+y&(P$3?ez5xLRJU6!%-h5w|9Yj-BPjhMK91bn%D^Ap9uW{ zyL|)48mGZ2t@zHa*pqr~@`ES52SXd7=CN%HFM*a>p@?(|Pe~|q5PCPg)t{k)mTx?} z7JTm--;sPL(np5grQ%=m9XsTHT&Tfi|G*LV9wok!&Hz5 zejkdTcQxec)x_kCrFB$>yEM#OsBj>MNJ3RS{eG1o!*REzxT^5K&4JDVQGzRAlXkm> zPsov@Wao=jWNnds(f*qLVOWzbPEBr+w@?iYXU{dp`zlvSd7p6!j}^$-wBqOR6jX1@ z>3+EniP#Ql$`CX+$j+{c7Un6lq7FdjJbx5YX0aN%##*j@J3_1Yw&8qujHLH;faBm> z7Taj~yUZc_o+_NQftd**Pbe8hC-Dw-MAm1>%w%>3b+;swP2sHwP^O+|onU%Kh$YheTWmdv5PT`k2gjQzJ)9 zMaE|m+NPm8=B#z{@GgB;T(tE;Zqs;ZY6C4J3VIbCk&R^qcqm_fy6h6-wrbcg+fz@= z)T_O?>vA2rvDlU>tv#NSGK0ygc^%a_U&S)UHt7BduUrKjasKjbKazXGni9G zsuu52oWRoQF(V+#j1Z&MJItZq4=H~rp5EwVBNt$PC;67V{(lS`zdOA7qDeYmAfBvR zTP~GMjR;|IfpK2$QvVR0)yIVQcWBLUyNwk7?ZIp#A6aJFtukS82CyL%VE&I*K;<^6k3+Jr= zKSJU|dIm?kq%pG+%_%7TTNIXGecgSR+|I%!PBKgG%6F^u28A~Pmb};hy`0O`(QJOr z(aBN+(rhT>2Ae~x)oE!=mUTWoV=YQYNuRuAXRo&?XJ=SgLXn$W-Sk?CbCkLgJ>Hk} zu1XtJ$lgHT=Tw<1u$@YBZ_JWJw(g*u#AIW&-!h0yHKuJ@-1zZjfv^1|B4!wxS>U>` zvF$gSEn^mLt?EYdT0cT4edjPVnAwK2f4012HTmu%B{sjx=!dWT^w$wOCEEM=5jG8{ zkGngOm7?NV30O&IH2E(nVwRaEdhjNp{>A4DgKs(Bs>`-kM~mib_8PEjuJlBy`EtQ# zp1`^KAM~0=x5wmBeBJ5$@%0Nm16;dKUz8|PUzGZ-h7#|6Q;>o{W#dn(0p$**P*^aN z;{U$;PZ8u_m;OKBe825y#Gt*C$>a^`o3IdFE=+%{hoa8b3sif&?DvQpXFi zEfPi+Nnqua^}FncsC_y8S>03l@N4wla6)U;vLbkq2wpt*FDd3tcRd)i+ecAg0zsO( zZ-n+>U0?Uw=u6HwI?hvneLX7K+x=CSX)F&O0GHU7TcdkAxRoOs;~>w8I_2nueo5(B z!nUz8rtbIg-qZ9iF+R#<2^cM9k-#5pL->Ckt*C&a^SE>PJC)tVU(ej;Wd{uwD~{yY z`+e7q77W3&Br9Ajfw;2ja-Mpn>nxq@XQfB)r1yu0O%i&%s)NXEObP1*GBdT#g|#!D zZqsH*Nna0tKX)=!c`30DfRIaQ5MqIqS9ZlC^!6wVc$IAudi&F5VIkg+BIAveQlfyQ zvPWLNb_Y1dxoV_XOyJZQXQF@oqYkpfEfdqwrHF%&?R&WPvAtZCa^ZrqFcx4BXceGA z%IwU#z#lYHbFcyZjdo^00QvV-zoCrbr^|duLI7pd&`@T^l9y@w{k8bKqh*{lh6@NB z8c=D#IG1KdzMC2~^u4p?@&OUJrP2;eNrYYEHqlM*1Kv!koThh7o`mhHXpV=^w$@?(71QLU>2 z`VIrh)fffrI>pH%7ucS@`TOX3JD&q2MO?znUGr`P;Ym?5`%hcK0Z@{0HrcxuaGhdI zQqO`yJvvvyHma(~KG&2?jz<5Tv>sQ-5ZBy|pds$7ShZWDwj<*)6&ro3G`YmT==GL{ z0~soXXp0A1+ifo~sHjk~J-vzbN7U%`@`F%uGUY3n%3Q<4-EubTaYQ>XIzGxk|IF~>vPTG!<+9>qikdkzpKweb}{A@ zu;3VIC7#_m5Y;waY=u8(gL*<0JcS)0I-Jj4;8<*yZ?*SwiYUcgK6i%IS#=!hFuYiS z-+1kgXcyfJ^1__@&3{X7$sTU|tCU=xYdEkVH~T3T9veky^`Y&B0=$Q<%9Lzrga1-c zPd#rO%CkG%A`~$fn|o3adrUM$%y}EvS>r-SuOZ=P(p!@fhm~*kYzkcCP!iH$04CoK zkXoWM?U9$0bTp_fo?ECjqv)QjfMM-CDz2d@T&o!wltmg_&~j+5M3m0=?V`^B;ogm$ z#&+E^|J4njXAZ`-^pu5)yhZLuFyxr_8TO zHMoAUA;r}0K@z3#shaDze@O!1Ds{Kdn5*= zxtsOPk{pbj!LG2%^&x0v*{f$U#?=)v`?`APU-=Y-I>|0+8BC0?+4zBZoP58+Iqxtg z@A;z8*^M$N^H*0YUM|ER=dvmAMutVnR*Lj3g!GI(nqW%NS*X1-Yi15$!rAJdUZ8J< zoD6kpxmw}86B)K8D!n+9LY6Kh#^ z_0%acEjv2kQ69QP?-k4Q9RvpUD}07(7eIVcgCGQX7UC$KYVEYM*?Am9_YDDx1~I zvs+;(Q(n0QWR3}T)-$_`6Ltuh{+L(c-cfE7eVF(DQLH^_8{X7MdgC1i+gd4J@p%PK zII2`wvbwy$JeC)AUt40RA0lz~E~vF(DpN*c0B5*zN^AA=p&n|4U?y`O&dpkKTT>sD zE7aB3?@TPq!j$Gh#>5tTWz$l)Y`(9(FZV%QHf5;Rj_STYLBwC%vJ|)9psm{`9lWH(tQ9Z8z+S zbi^*J#87zGFzC3!+Bb$&CI!7cr5Sv{<$fTnC6p|JJzgr0T?N;r>*TLO2C_n8&= zh}4n=P!CoN;E6P`JWYFxu^z_*9mQL>3(UHleF}uWLpod5H&mM6WxOlc$&Gi*OdBg6 z`wnZ@cUAD9kLPLUElVJ+p>2n>=+kIRB720M@IY*z=7+q9))#o9r8lg_SWMf_(isve z7((!{lTl49m{x~_J2-dwdE+GuVO_CBs(fv|M6X{a<#y=YKFt*yRky0T!Jd3-7hGY`MIR!?v)28zLY#vIh5AeyY!RxYhX<@sW?3|at_4oFnbs&ZkV)#K zm=K595(+hIwv_V_O%R%y+b9e2wLEgcE-4jM)RwF+hcO zIAv0J;#oPlqC$BmCT2x?&)zMiBwOSUyE`x$ng~qBvvwR34a1$ci!LN|XOcE<5|`)ofhX`4>xB0G4$MBP+JX83x{c1yF#>(#wxMyhka=I)C>=F9ZF%%oZXF#S zy%;EJcW}mVRm2oA1QPcBj5T%ni2+DP2|RN7N*G0lF5B&xcIu40ru{ z{EfHN^}8iYyG^ac`iSo>QMw_BlTe%u#Sh!-Uj+BBU-^?5Fc9dp6l?(}@}0~ScYh(> zK<2>7F{f}d^FzY^aO zwc35V+qimNgVYVTQS?=Q`Gk*DcQ(TdcI;UD&q>w4>T3jmIfzamPd9hR0;f+P)9Y?- z!}CvV5#}x0qOb1I?$1#thhPg{yQ?PRzH{MUI{O*RL)~1zLogf1(s>}j!yGbl15=Cj zJ^_NYGyUt(&vgP`Taop3hL(JzbroStN1;)GLh;W5B1puqQLf3=jYg02l^2EO^)WWm z`F$u;Wu>%G>@}#iI3?3C7$7QZAX*i&d5 z6>J4ONraMqXwu{^w?!yB_n#ExgV36DV>e#-(Ez!3@yZCK+qnE_XiRiW^f1c#l5$zj z`NpKYKjsM*I9?cxH_;IMn^S0xb=0|Q|qeSSP= z(3MuGR@}OS*=zR8Ehrx-T!NbDO`z}b2ei5Iz6^N+Z^A!I z+J4{SR&^!~kCyBbo!!jF*G{6)GAHA<*fJJq4vtb~EtGVA1&N zoUe+Sl~Kls(7{Adl7m7=9ZShkQX{z8!+>x4td=K$l|h;6T=RTtkAPMVLTxkXu1 zG63aNhzO>FV)TOsNX&6w!)E2PYq+QVpCPdmuQvusSENtV*%>+8duEp!WQG9g6yP&_ zFNR)uK@e#y8zq9CE z&X~Fcs@8eugv3vJqT0leJn9;;F3uc z!K*!OmJg?N@2ddn-f;_WHOFLsF zeVnP<_KKtQV?8Bq*@~lYOEkb7uZ8mFou zw%xM3_$3U>Fu8JMvb;&?hKHNW;??CPm0LCSNVp*^;Jv#Y&b z5Z~=N;@Mp0(OG2K=_juouK(dD$ZVM?8C>{Gf#ulXG3Uu>Y}BP*;pEjj#h$Z5;0B;1 zPHaexdbXw^dbIU(psiA7t8G11qCL7M^`Cq7v_dX-pD_q{a)uJ@aBkA85g_!9&Z)Iy zW#JZ)z9c*G5hqVIU}neShWv&TbUh!IqG)|!!5~WfLvYbC2*lpdZX-X`AR8tu*pm0m z9MQbFr#=YfkEZ=UL1AGQ4Ws@Lnx!NbBACI2+k%GrBNFm7$~r)5pXmOwW?%|P^bMmi z&>(LCkoo_;0=+DVb57vq&VPv~2_p9)bQ2LwYw&7c-7CVHO(0^)5lmOyk&nxR#ebhy zZ?QDHje*1DZGKAm~c z%d~_yPHRl~5dpnSNpDRB%cGyYjHz!GJB+CB=>MoLc?25j-%6c}tr!`HKC|4!ULoQxkqpoDn4hKwSoKUF!|sJ!*WF#HV+`1ZV8(s^ACCpLce z7^o7~9&`sKAIj?_A7RdZBRFl}H$D-Fo?|;DnMm+IbiBIw60-WpRy_!9ErX zG!(-!!^C=L6J61^NwRvxJs;@a(OPZIrz>)bAxKz2egR5f21a#%rCy7nsY$^qBrz|1 ztnt=uQG*@EC!J)a1U0!XVK1vSMBz-WyynYn9^U6}qyj;mN_2$dQ z5%f$b80ECTc-;bi;lLrli}Ua?b?tHRr0dN<>KUY@;kd80=1s!nu6kO|Q%AX*?;^+C zDBoJZr_F>%L$|)0sn!YibzJVEshI8UrCaMP_<%-;#L#ATo1A6+d(<@a+=nCu&3h}G zlD}zdZRIb?6xsNsOSK@2qf45K0Q_zjjDYW|<1eTpK1J za}mOZ2fi||b(%e%G&rSS56C$^`etc36#4C!h>z2graS>f)8#9TkW>k1J>6m&b0^hJ ztB%x&D59?LuzV|`zP=`%yK)>dspHNi%!8L4M&w2^hu<0wrfh_C_L~l>mPoqduk>!$ zcwKb1BKPPmWOO@i5^dfV8Zx>tQC`__*YL@eP6#fEFiG`xW5wxOEu;I|e*Ic#D>PgN z`fg_#=j2WBv|1Xu`bg?<+DVrjKp40n&x0696PqWdFJa!Hi7jNS6u{%C!Gu_mbQljf z?2|+*a7!b9S^B|KL??B^`_Jdm%kRpnQTgeQX1js9!d92sl`2O&xtq#jf&56ZT@!e3 zIPd56G13>fm@w#PRSDc9^-5HitB=n%?UjYFqzOCJR+@YhOzy?ZX#!t;2_pT%{ZLr@?cIk%cRjh|?ORawmb9vGn3qvJ?_$9!Cbr7Woekj<%a$tO=_M<(21cap2*xei&^K6`#54mv}Jk~kx z2alDp*1_v>dfoW@C7?AvqV%g6~S81+Q~XH z+kT@EO(NZpj4She?yt06yTfrb{YG2z-@%4RKF zi5@ixcliuKe%_A0J*Ti)^-1YF>^BKmr3`^y1XB!u_??;%f;BGm@j;G2CG~Anv?i9g z-$<$st@-mXEAJi!wx6ywlRHm??$n^cFY(_MSN6{+VoeL9QKz@OX(T|F=q)-Ss*yYE zGq0Mw>fi7o--l5JoJ}H}MPW5*1nYPDR;GRFHXxS@=lwW-`M4U;rg`ua2CbgDJR44M z!SoNcu^$(BDzGw{q#^n)^3ETbWS}fE!vr68Xe%O~ORDNjf?>y}pxcA)HBcc~TUZgZ z1UxTMJcowz29{Cr5WVqkH0}n?xIeztW(9AImccr#l;4+*LvOucv`K{={F6F=VE`~$7BV&)28s@k}dtr^ldEb+2k61>j2-pqW#R| z_)53u?wTUF;-D8$fdvRzU)<{W(YH+%!w&*3ULt}f@Y$|(!&(NKH;GxWNbQ6iIq6h$CgU8h$m8^(jAj9@2Q?Ekrks9Wg?d4CLvv9@%0Ogc_KT z@z{vKZKrr%HcaI*@WeN0B@y(#)4i1vLHqu}D6!40c#g^`23YX*tDqDPwsNsQ21SMy zMIC|c7L|{Hmse(ZyC3#)dNGUgA^p(`5LXf2J3RntzP;>uaAg=6;8Fi0OyozNTi%v6 zsPC*aV&on-umlTHQj*56LwR6gA|hJJ6%+7^jV{$l>Fcf*7WVBx^8zC4JJUX=y{cUu zy(B|G&mNbkMvn$_t?UB-_xV@+M zy)du0CFXfYQ8FgkO}59d4u`QFKTA7!Ersy}a02`bzyc2h4Vys`vP}OV$!dAnXG^i_ z(9IM+dl43Yk>CT%v<*XQdGbxUS`QErUx?WMoMgoLL=*E7P(!yjjXXoJyG#K|q<9 zFy5SR1T?R(Xza`AXg*Cv=fpH4$tl^gjI{hw(X_Gl>f_1riS~x7!1dabZV0J;+|O}& z*}s#yJ36v^pXE3LUy27+mj#2kSO>D?l=NBetKE02wN6i_KUi^6J>=7> zw|@cqyER&Bnx?U?kY3UW$P8J;N8HwKZ~hho?vpm?v+ZBpzs=5#ajbZ2hs|BOTx`m%>!B&6asPQeFGL2WOMFqBo1LR<6a6n3*z2Anxi}UH-UjZ6$mZ%;!!U9UI(Gxowq=#z01|r1c3%MxLy7TvmcZR-!q*-(Hj`bWsP-^ zwH^9Y7RQx&$rRrP2)7I(v~(UD4F4@0{WnW)tc>$T3w+2Skx;O{{8Uj1N z3mmOQn=2*25r8Ni&FSV`(}S{=!%3fk^_m0%ozdY-_xttr6rT)5EU}~4YO()isn)Nq zREu%;XVV&ONq-+tB!?n*3FLKO9@6*7t~V&_uYBV%1n-JZh~X9k^^S3kQPWdO48zxuzHfgt1HNe#iG+MQ?fH1g7y~Eup|V@4H!uEb zNjgbL?fSyji^={C<;TAVm%kI7>4@Cqxr@X6526}U5PZXL7N90p#9VFGM%M+yLXNhA z$Q>jf`p19Y?KmH;<^@3sts)w&t3V=(XFHo5FR?xfk#DsJGJ#i2M~N98ewz&VGa&tU z9T3H#qthfSg7(DfvTle(+T|+b&aI-cY}FILlk}mP%GS|bV7%yw{~4S!1IGWQH?M#Q zR|3Ibtd>3nZNgjpNMJo6%CW>Gj(^?rY+y+%-QumbaBbI7qy`TbdT)Mn$R8vGY>-_+ z#|)D=G1FGGr<*bb3mEmfa!j#$TC{^(1#^sfr+UkG+`ugW4h@6ERY897Tz8XfhD z^cJr!)d6wy?am%!VWfeac9oudUos#5ZF#kG` z8%=j`Jw?PBMca7~vmW84GIV04yj;t7{_4WEfo?t~d% z5}cSLi10tDr1qX_LF6vAx_Mky78af8Qt(-sECQ6q4a(b7$VqIVlWwH zUL}OhL<*qAZ)^Wxs(ScqCshY*6vX``hsB=+Oe7%Ap}qOk>1m639VGQ98&N4zv5e=- zkS9*Ftnub(uKVS$h3|%5VPFGHfE{oT!|7fVE8FFo$?C<{O62rkSUv;0_F_`WGF zcq68DI7*+Vq^*s=p7z3f(Cq#bmgTs~rTU#EsO|@PpT2t2U#7kgYc{!MxeG5Dx5H83gA7-|Zme5zQJ?Sfe zNLhd4Z=jU21~RXn_=VTXV@wQ+DIDQ7&BRid>xw9)&h6&Z!nSP=bhSkCQ9Kl{!5mJ?H%F7CeSHga&E z0ls8ROazt�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 diff --git a/doc/flavors.md b/doc/flavors.md index 985e46c2..75088ae3 100644 --- a/doc/flavors.md +++ b/doc/flavors.md @@ -84,7 +84,7 @@ This deployment flavor enables the following ingredients: ## CERA Media Analytics Flavor with VCAC-A -The pre-defined *media-analytics-vca* deployment flavor provisions an optimized system configuration for media analytics workloads leveraging Visual Cloud Accelerator Card for Analytics (VCAC-A) acceleration. It also provisions a set of video analytics services based on the [Video Analytics Serving](https://github.com/intel/video-analytics-serving) for analytics pipeline management and execution. +The pre-defined *media-analytics-vca* deployment flavor provisions an optimized system configuration for media analytics workloads leveraging Visual Cloud Accelerator Card for Analytics (VCAC-A) acceleration. The following are steps to install this flavor: 1. Configure the CEEK as described in the [OpenNESS Getting Started Guide for Network Edge](getting-started/openness-cluster-setup.md). @@ -121,7 +121,6 @@ This deployment flavor enables the following ingredients: * VPU and GPU device plugins * HDDL daemonset * The `weavenet` Kubernetes CNI -* Video analytics services * Telemetry ## CERA CDN Transcode Flavor From 3c291bb4e611fd654e62af8238085537dd679c2c Mon Sep 17 00:00:00 2001 From: Changping Ma Date: Wed, 31 Mar 2021 17:27:45 +0800 Subject: [PATCH 86/89] add openvino app onboarding requirement for cni. --- .../network-edge-applications-onboarding.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/applications-onboard/network-edge-applications-onboarding.md b/doc/applications-onboard/network-edge-applications-onboarding.md index 8c79e386..97ce6747 100644 --- a/doc/applications-onboard/network-edge-applications-onboarding.md +++ b/doc/applications-onboard/network-edge-applications-onboarding.md @@ -442,7 +442,7 @@ This section guides users through the complete process of onboarding the OpenVIN ## Prerequisites -* OpenNESS for Network Edge is fully installed and set up. +* OpenNESS for Network Edge is fully installed and set up (kubeovn as cni to support Interfaceservice which is openness developed kubectl plugin.). * The Docker images for OpenVINO are available on the Edge Node. * A separate host used for generating traffic via Client Simulator is set up. * The Edge Node host and traffic generating host are connected point to point via unused physical network interfaces. From 41c808d30d8514be551e65fe3e71589d3d34ca10 Mon Sep 17 00:00:00 2001 From: Amr Mokhtar Date: Wed, 31 Mar 2021 12:51:15 +0100 Subject: [PATCH 87/89] Fix typo in Jekyll doc for QAT --- _data/navbars/building-blocks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/navbars/building-blocks.yml b/_data/navbars/building-blocks.yml index b9871cd6..1f3cd9a4 100644 --- a/_data/navbars/building-blocks.yml +++ b/_data/navbars/building-blocks.yml @@ -72,7 +72,7 @@ section: meta_description: The Visual Cloud Accelerator Card - Analytics (VCAC-A) equips Intel® Xeon® Scalable Processor based platforms and Intel Movidius™ VPU to enhance the video codec, computer vision, and inference capabilities. - title: Intel® QuickAssist Adapter - path: /doc/building-blocks/enhanced-platform-awareness/openness-qat.md + path: /doc/building-blocks/enhanced-platform-awareness/openness-qat meta_title: Using Intel® QuickAssist Adapter in OpenNESS - Resource Allocation, and Configuration meta_description: Intel® QuickAssist Adapter plays a key role in accelerating cryptographic operations in 5G networking. From 41e4b1e603bf799908060f2ea6a79f321bc176a9 Mon Sep 17 00:00:00 2001 From: Krishnamurthy Jambur Date: Wed, 31 Mar 2021 16:15:30 +0100 Subject: [PATCH 88/89] 2103 relnotes (#437) * Update openness_releasenotes.md --- openness_releasenotes.md | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/openness_releasenotes.md b/openness_releasenotes.md index 7fbbf997..7a627f4c 100644 --- a/openness_releasenotes.md +++ b/openness_releasenotes.md @@ -23,6 +23,7 @@ This document provides high-level system features, issues, and limitations infor - [OpenNESS - 20.06](#openness---2006-1) - [OpenNESS - 20.09](#openness---2009-1) - [OpenNESS - 20.12](#openness---2012-1) + - [OpenNESS - 21.03](#openness---2103-1) - [Fixed Issues](#fixed-issues) - [OpenNESS - 19.06](#openness---1906-2) - [OpenNESS - 19.06.01](#openness---190601-1) @@ -33,7 +34,7 @@ This document provides high-level system features, issues, and limitations infor - [OpenNESS - 20.09](#openness---2009-2) - [OpenNESS - 20.12](#openness---2012-2) - [OpenNESS - 20.12.02](#openness---201202) - - [OpenNESS - 21.03](#openness---2103-1) + - [OpenNESS - 21.03](#openness---2103-2) - [Known Issues and Limitations](#known-issues-and-limitations) - [OpenNESS - 19.06](#openness---1906-3) - [OpenNESS - 19.06.01](#openness---190601-3) @@ -44,7 +45,7 @@ This document provides high-level system features, issues, and limitations infor - [OpenNESS - 20.09](#openness---2009-3) - [OpenNESS - 20.12](#openness---2012-3) - [OpenNESS - 20.12.02](#openness---201202-1) - - [OpenNESS - 21.03](#openness---2103-2) + - [OpenNESS - 21.03](#openness---2103-3) - [Release Content](#release-content) - [OpenNESS - 19.06](#openness---1906-4) - [OpenNESS - 19.06.01](#openness---190601-4) @@ -55,6 +56,7 @@ This document provides high-level system features, issues, and limitations infor - [OpenNESS - 20.09](#openness---2009-4) - [OpenNESS - 20.12](#openness---2012-4) - [OpenNESS - 20.12.02](#openness---201202-2) + - [OpenNESS - 21.03](#openness---2103-4) - [Hardware and Software Compatibility](#hardware-and-software-compatibility) - [Intel® Xeon® D Processor](#intel-xeon-d-processor) - [2nd Generation Intel® Xeon® Scalable Processors](#2nd-generation-intel-xeon-scalable-processors) @@ -269,11 +271,15 @@ This document provides high-level system features, issues, and limitations infor - Major system Upgrades: Kubernetes 1.19.3, CentOS 7.8, Calico 3.16, and Kube-OVN 1.5.2. ## OpenNESS - 21.03 +- Edge Insights for Industrial updated to 2.4 +- Support for Intel® Ethernet Controller E810 +- Improvements to Converged Edge Reference Architecture framework including support for deploying one or more OpenNESS Kubernetes clusters +- OpenVINO upgraded to 2021.1.110 - Major system upgrades: CentOS 7.9, Kubernetes 1.20.0, Docker 20.10.2, QEMU 5.2 and Golang 1.16. - Kubernetes CNI upgrades: Calico 3.17, SR-IOV CNI 2.6, Flannel 0.13.0. - Telemetry upgrades: CAdvisor 0.37.5, Grafana 7.4.2, Prometheus 2.24.0, Prometheus Node Exporter 1.0.1. -- Set Calico as a default cni for cdn-transcode, central_orchestrator and minimal flavor. -- Intel CMK support deprecated in favour of Kubernetes native CPU Manaher +- Set Calico as a default cni for cdn-transcode, central_orchestrator, core-cplane, core-uplane, media-analytics and minimal flavor. +- Intel CMK is replaced with Kubernetes native CPU manager for core resource allocation # Changes to Existing Features @@ -303,6 +309,14 @@ There are no unsupported or discontinued features relevant to this release. ## OpenNESS - 20.12 There are no unsupported or discontinued features relevant to this release. +## OpenNESS - 21.03 +- FlexRAN/Access Edge CERA Flavor is only aviable in Intel Distribution of OpenNESS +- OpenNESS repositories have been consolidated to the following + - https://github.com/otcshare/converged-edge-experience-kits + - https://github.com/otcshare/specs + - https://github.com/otcshare/edgeapps + - https://github.com/otcshare/edgeservices + - https://github.com/otcshare/openshift-operator # Fixed Issues ## OpenNESS - 19.06 @@ -351,7 +365,7 @@ There are no non-Intel issues relevant to this release. ## OpenNESS - 21.03 - Offline deployment issues related to zlib-devel version 1.2.7-19 - +- CAdvisor resource utilization has been optimized using "--docker_only=true" which decreased CPU usage from 15-25% to 5-6% (confirmed with ‘docker stats’ and ‘top’ commands). Memory usage also decreased by around 15-20%. # Known Issues and Limitations ## OpenNESS - 19.06 There are no issues relevant to this release. @@ -403,10 +417,12 @@ There is one issue relevant to this release: it is not possible to remove the ap - Offline deployment issues related to zlib-devel version 1.2.7-19 ## OpenNESS - 21.03 -- cAdvisor CPU utilization of Edge Node is high and could cause a delay to get an interactive SSH session. A work around is to remove CAdvisor if not needed using `helm uninstall cadvisor -n telemetry` - An issue appears when the KubeVirt Containerized Data Importer (CDI) upload pod is deployed with Kube-OVN CNI, the deployed pods readiness probe fails and pod is never in ready state. Calico CNI is used by default in OpenNESS when using CDI - Telemetry deployment with PCM enabled will cause a deployment failure in single node cluster deployments due to conflict with CollectD deployment, it is advised to not use PCM and CollectD at the same time in OpenNESS at this time - +- Kafka and Zookeeper resource consumption is on the higher side. When deployed in the context of uCPE and SD-WAN users need to consider this. +- When flannel CNI is being used and worker node is being manually joined or re-joined to the cluster, then +`kubectl patch node NODE_NAME -p '{ "spec":{ "podCIDR":"10.244.0.0/24" }}` +command should be issued on controller to enable flannel CNI on that node. # Release Content ## OpenNESS - 19.06 @@ -441,6 +457,12 @@ OpenNESS Edge node, OpenNESS Controller, Common, Spec, OpenNESS Applications, an ## OpenNESS - 20.12.02 - Open Source: Edge node, Controller, Epcforedge, Common, Spec, Applications and Experience kit. - IDO: IDO Edge node, IDO Controller, IDO Epcforedge, IDO Spec and IDO Experience kit. +## OpenNESS - 21.03 + - https://github.com/otcshare/converged-edge-experience-kits + - https://github.com/otcshare/specs + - https://github.com/otcshare/edgeapps + - https://github.com/otcshare/edgeservices + - https://github.com/otcshare/openshift-operator # Hardware and Software Compatibility OpenNESS Edge Node has been tested using the following hardware specification: From 696706223c4a1920faaa41dde1a7ec3bcf65b72b Mon Sep 17 00:00:00 2001 From: Christopher Nolan Date: Wed, 31 Mar 2021 17:43:36 +0100 Subject: [PATCH 89/89] Update paths --- README.md | 98 +++++++++---------- .../network-edge-applications-onboarding.md | 12 +-- .../openness-interface-service.md | 4 +- .../openness-network-edge-vm-support.md | 2 +- .../using-openness-cnca.md | 2 +- doc/applications/openness_appguide.md | 2 +- doc/applications/openness_openvino.md | 4 +- doc/applications/openness_service_mesh.md | 4 +- doc/architecture.md | 10 +- .../dataplane/openness-interapp.md | 2 +- doc/building-blocks/emco/openness-emco.md | 22 ++--- .../openness-acc100.md | 2 +- .../openness-dedicated-core-cmk-deprecated.md | 2 +- .../openness-fpga.md | 2 +- .../openness-sriov-multiple-interfaces.md | 4 +- .../openness-telemetry.md | 6 +- .../openness-vcac-a.md | 2 +- doc/devkits/openness-azure-devkit.md | 2 +- doc/getting-started/openness-cluster-setup.md | 2 +- doc/orchestration/openness-helm.md | 18 ++-- .../core-network/openness_upf.md | 14 +-- openness_releasenotes.md | 22 ++--- schema/5goam/5goam.swagger.json | 2 +- schema/5goam/5goam.swagger.yaml | 2 +- schema/pb/auth.proto | 2 +- schema/pb/cups.proto | 2 +- schema/pb/eaa.proto | 2 +- schema/pb/eva.proto | 2 +- 28 files changed, 125 insertions(+), 125 deletions(-) diff --git a/README.md b/README.md index 6d56681d..f683ee4f 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Copyright (c) 2019-2020 Intel Corporation # OpenNESS Quick Start ## Network Edge - ### Step 1. Get Hardware ► Step 2. [Getting started](https://github.com/otcshare/specs/blob/master/doc/getting-started/openness-cluster-setup.md) ► Step 3. [Applications Onboarding](https://github.com/otcshare/specs/blob/master/doc/applications-onboard/network-edge-applications-onboarding.md) + ### Step 1. Get Hardware ► Step 2. [Getting started](https://github.com/open-ness/specs/blob/master/doc/getting-started/openness-cluster-setup.md) ► Step 3. [Applications Onboarding](https://github.com/open-ness/specs/blob/master/doc/applications-onboard/network-edge-applications-onboarding.md) # OpenNESS solution documentation index @@ -15,86 +15,86 @@ Below is the complete list of OpenNESS solution documentation ## Architecture -* [architecture.md: OpenNESS Architecture overview](https://github.com/otcshare/specs/blob/master/doc/architecture.md) -* [flavors.md: OpenNESS Deployment Flavors](https://github.com/otcshare/specs/blob/master/doc/flavors.md) +* [architecture.md: OpenNESS Architecture overview](https://github.com/open-ness/specs/blob/master/doc/architecture.md) +* [flavors.md: OpenNESS Deployment Flavors](https://github.com/open-ness/specs/blob/master/doc/flavors.md) ## Getting Started - Setup -* [getting-started: Folder containing how to get started with installing and trying OpenNESS Network Edge solutions](https://github.com/otcshare/specs/blob/master/doc/getting-started) - * [openness-cluster-setup.md: Getting started here for installing and trying OpenNESS Network Edge](https://github.com/otcshare/specs/blob/master/doc/getting-started/openness-cluster-setup.md) - * [converged-edge-experience-kits.md: Overview of the Converged Edge Experience Kits that are used to install the Network Edge solutions](https://github.com/otcshare/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md) - * [non-root-user.md: Using the non-root user on the OpenNESS Platform](https://github.com/otcshare/specs/blob/master/doc/getting-started/non-root-user.md) - * [harbor-registry.md: Enabling Harbor Registry service in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/getting-started/harbor-registry.md) - * [kubernetes-dashboard.md: Installing Kubernetes Dashboard for OpenNESS Network Edge cluster](https://github.com/otcshare/specs/blob/master/doc/getting-started/kubernetes-dashboard.md) +* [getting-started: Folder containing how to get started with installing and trying OpenNESS Network Edge solutions](https://github.com/open-ness/specs/blob/master/doc/getting-started) + * [openness-cluster-setup.md: Getting started here for installing and trying OpenNESS Network Edge](https://github.com/open-ness/specs/blob/master/doc/getting-started/openness-cluster-setup.md) + * [converged-edge-experience-kits.md: Overview of the Converged Edge Experience Kits that are used to install the Network Edge solutions](https://github.com/open-ness/specs/blob/master/doc/getting-started/converged-edge-experience-kits.md) + * [non-root-user.md: Using the non-root user on the OpenNESS Platform](https://github.com/open-ness/specs/blob/master/doc/getting-started/non-root-user.md) + * [harbor-registry.md: Enabling Harbor Registry service in OpenNESS](https://github.com/open-ness/specs/blob/master/doc/getting-started/harbor-registry.md) + * [kubernetes-dashboard.md: Installing Kubernetes Dashboard for OpenNESS Network Edge cluster](https://github.com/open-ness/specs/blob/master/doc/getting-started/kubernetes-dashboard.md) ## Application onboarding - Deployment -* [applications-onboard: Now that you have installed OpenNESS platform start in this folder to onboard sample application on OpenNESS Network Edge](https://github.com/otcshare/specs/blob/master/doc/applications-onboard) - * [network-edge-applications-onboarding.md: Steps for onboarding sample application on OpenNESS Network Edge](https://github.com/otcshare/specs/blob/master/doc/applications-onboard/network-edge-applications-onboarding.md) - * [openness-edgedns.md: Using edge DNS service](https://github.com/otcshare/specs/blob/master/doc/applications-onboard/openness-edgedns.md) - * [openness-interface-service.md: Using network interfaces management service](https://github.com/otcshare/specs/blob/master/doc/applications-onboard/openness-interface-service.md) - * [using-openness-cnca.md: Steps for configuring 4G CUPS or 5G Application Function for Edge deployment for Network Edge](https://github.com/otcshare/specs/blob/master/doc/applications-onboard/using-openness-cnca.md) - * [openness-eaa.md: Edge Application Agent: Description of Edge Application APIs and Edge Application Authentication APIs](https://github.com/otcshare/specs/blob/master/doc/applications-onboard/openness-eaa.md) - * [openness-certsigner.md: Steps for issuing platform certificates](https://github.com/otcshare/specs/blob/master/doc/applications-onboard/openness-certsigner.md) +* [applications-onboard: Now that you have installed OpenNESS platform start in this folder to onboard sample application on OpenNESS Network Edge](https://github.com/open-ness/specs/blob/master/doc/applications-onboard) + * [network-edge-applications-onboarding.md: Steps for onboarding sample application on OpenNESS Network Edge](https://github.com/open-ness/specs/blob/master/doc/applications-onboard/network-edge-applications-onboarding.md) + * [openness-edgedns.md: Using edge DNS service](https://github.com/open-ness/specs/blob/master/doc/applications-onboard/openness-edgedns.md) + * [openness-interface-service.md: Using network interfaces management service](https://github.com/open-ness/specs/blob/master/doc/applications-onboard/openness-interface-service.md) + * [using-openness-cnca.md: Steps for configuring 4G CUPS or 5G Application Function for Edge deployment for Network Edge](https://github.com/open-ness/specs/blob/master/doc/applications-onboard/using-openness-cnca.md) + * [openness-eaa.md: Edge Application Agent: Description of Edge Application APIs and Edge Application Authentication APIs](https://github.com/open-ness/specs/blob/master/doc/applications-onboard/openness-eaa.md) + * [openness-certsigner.md: Steps for issuing platform certificates](https://github.com/open-ness/specs/blob/master/doc/applications-onboard/openness-certsigner.md) ## Core Network - 4G and 5G -* [core-network: Folder containing details of 4G CUPS and 5G edge cloud deployment support](https://github.com/otcshare/specs/tree/master/doc/reference-architectures/core-network) - * [openness_epc.md: Whitepaper detailing the 4G CUPS support for Edge cloud deployment in OpenNESS for Network Edge](https://github.com/otcshare/specs/blob/master/doc/reference-architectures/core-network/openness_epc.md) - * [openness_ngc.md: Whitepaper detailing the 5G Edge Cloud deployment support in OpenNESS for Network Edge](https://github.com/otcshare/specs/blob/master/doc/reference-architectures/core-network/openness_ngc.md) - * [openness_upf.md: Whitepaper detailing the UPF, AF, NEF deployment support on OpenNESS for Network Edge](https://github.com/otcshare/specs/blob/master/doc/reference-architectures/core-network/openness_upf.md) +* [core-network: Folder containing details of 4G CUPS and 5G edge cloud deployment support](https://github.com/open-ness/specs/tree/master/doc/reference-architectures/core-network) + * [openness_epc.md: Whitepaper detailing the 4G CUPS support for Edge cloud deployment in OpenNESS for Network Edge](https://github.com/open-ness/specs/blob/master/doc/reference-architectures/core-network/openness_epc.md) + * [openness_ngc.md: Whitepaper detailing the 5G Edge Cloud deployment support in OpenNESS for Network Edge](https://github.com/open-ness/specs/blob/master/doc/reference-architectures/core-network/openness_ngc.md) + * [openness_upf.md: Whitepaper detailing the UPF, AF, NEF deployment support on OpenNESS for Network Edge](https://github.com/open-ness/specs/blob/master/doc/reference-architectures/core-network/openness_upf.md) ## Enhanced Platform Awareness -* [enhanced-platform-awareness: Folder containing individual Silicon and Software EPA that are features that are supported in OpenNESS and Network Edge](https://github.com/otcshare/specs/tree/master/doc/building-blocks/enhanced-platform-awareness) - * [openness-hugepage.md: Hugepages support for Edge Applications and Network Functions](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-hugepage.md) - * [openness-node-feature-discovery.md: Edge Node hardware and software feature discovery support in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-node-feature-discovery.md) - * [openness-sriov-multiple-interfaces.md: Dedicated Physical Network interface allocation support for Edge Applications and Network Functions](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md) - * [openness-dedicated-core.md: Dedicated CPU core allocation support for Edge Applications and Network Functions](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md) - * [openness-bios.md: Edge platform BIOS and Firmware and configuration support in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-bios.md) - * [openness-qat.md: Resource allocation & configuration of Intel® QuickAssist Adapter](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-qat.md) - * [openness-fpga.md: Dedicated FPGA IP resource allocation support for Edge Applications and Network Functions](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md) - * [openness_hddl.md: Using Intel® Movidius™ Myriad™ X High Density Deep Learning (HDDL) solution in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness_hddl.md) - * [openness-topology-manager.md: Resource Locality awareness support through Topology manager in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-topology-manager.md) - * [openness-vca.md: Visual Compute Accelerator Card - Analytics (VCAC-A)](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md) - * [openness-rmd.md: Cache Allocation using Resource Management Daemon(RMD) in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-rmd.md) - * [openness-telemetry: Telemetry Support in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md) +* [enhanced-platform-awareness: Folder containing individual Silicon and Software EPA that are features that are supported in OpenNESS and Network Edge](https://github.com/open-ness/specs/tree/master/doc/building-blocks/enhanced-platform-awareness) + * [openness-hugepage.md: Hugepages support for Edge Applications and Network Functions](https://github.com/open-ness/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-hugepage.md) + * [openness-node-feature-discovery.md: Edge Node hardware and software feature discovery support in OpenNESS](https://github.com/open-ness/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-node-feature-discovery.md) + * [openness-sriov-multiple-interfaces.md: Dedicated Physical Network interface allocation support for Edge Applications and Network Functions](https://github.com/open-ness/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md) + * [openness-dedicated-core.md: Dedicated CPU core allocation support for Edge Applications and Network Functions](https://github.com/open-ness/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core.md) + * [openness-bios.md: Edge platform BIOS and Firmware and configuration support in OpenNESS](https://github.com/open-ness/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-bios.md) + * [openness-qat.md: Resource allocation & configuration of Intel® QuickAssist Adapter](https://github.com/open-ness/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-qat.md) + * [openness-fpga.md: Dedicated FPGA IP resource allocation support for Edge Applications and Network Functions](https://github.com/open-ness/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md) + * [openness_hddl.md: Using Intel® Movidius™ Myriad™ X High Density Deep Learning (HDDL) solution in OpenNESS](https://github.com/open-ness/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness_hddl.md) + * [openness-topology-manager.md: Resource Locality awareness support through Topology manager in OpenNESS](https://github.com/open-ness/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-topology-manager.md) + * [openness-vca.md: Visual Compute Accelerator Card - Analytics (VCAC-A)](https://github.com/open-ness/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md) + * [openness-rmd.md: Cache Allocation using Resource Management Daemon(RMD) in OpenNESS](https://github.com/open-ness/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-rmd.md) + * [openness-telemetry: Telemetry Support in OpenNESS](https://github.com/open-ness/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md) ## Dataplane -* [dataplane: Folder containing Dataplane and inter-app infrastructure support in OpenNESS](https://github.com/otcshare/specs/tree/master/doc/building-blocks/dataplane) - * [openness-interapp.md: InterApp Communication support in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/dataplane/openness-interapp.md) - * [openness-ovn.md: OpenNESS Support for OVS as dataplane with OVN](https://github.com/otcshare/specs/blob/master/doc/building-blocks/dataplane/openness-ovn.md) - * [openness-userspace-cni.md: Userspace CNI - Container Network Interface Kubernetes plugin](https://github.com/otcshare/specs/blob/master/doc/building-blocks/dataplane/openness-userspace-cni.md) +* [dataplane: Folder containing Dataplane and inter-app infrastructure support in OpenNESS](https://github.com/open-ness/specs/tree/master/doc/building-blocks/dataplane) + * [openness-interapp.md: InterApp Communication support in OpenNESS](https://github.com/open-ness/specs/blob/master/doc/building-blocks/dataplane/openness-interapp.md) + * [openness-ovn.md: OpenNESS Support for OVS as dataplane with OVN](https://github.com/open-ness/specs/blob/master/doc/building-blocks/dataplane/openness-ovn.md) + * [openness-userspace-cni.md: Userspace CNI - Container Network Interface Kubernetes plugin](https://github.com/open-ness/specs/blob/master/doc/building-blocks/dataplane/openness-userspace-cni.md) ## Edge Applications -* [applications: Folder Containing resource material for Edge Application developers](https://github.com/otcshare/specs/blob/master/doc/applications) - * [openness_appguide.md: How to develop or Port existing cloud application to the Edge cloud based on OpenNESS](https://github.com/otcshare/specs/blob/master/doc/applications/openness_appguide.md) - * [openness_ovc.md: Open Visual Cloud Smart City reference Application for OpenNESS](https://github.com/otcshare/specs/blob/master/doc/applications/openness_ovc.md) - * [openness_openvino.md: AI inference reference Edge application for OpenNESS](https://github.com/otcshare/specs/blob/master/doc/applications/openness_openvino.md) - * [openness_va_services.md: Video Analytics Services for OpenNESS](https://github.com/otcshare/specs/blob/master/doc/applications/openness_va_services.md) - * [openness_service_mesh.md: Service Mesh support in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/applications/openness_service_mesh.md) +* [applications: Folder Containing resource material for Edge Application developers](https://github.com/open-ness/specs/blob/master/doc/applications) + * [openness_appguide.md: How to develop or Port existing cloud application to the Edge cloud based on OpenNESS](https://github.com/open-ness/specs/blob/master/doc/applications/openness_appguide.md) + * [openness_ovc.md: Open Visual Cloud Smart City reference Application for OpenNESS](https://github.com/open-ness/specs/blob/master/doc/applications/openness_ovc.md) + * [openness_openvino.md: AI inference reference Edge application for OpenNESS](https://github.com/open-ness/specs/blob/master/doc/applications/openness_openvino.md) + * [openness_va_services.md: Video Analytics Services for OpenNESS](https://github.com/open-ness/specs/blob/master/doc/applications/openness_va_services.md) + * [openness_service_mesh.md: Service Mesh support in OpenNESS](https://github.com/open-ness/specs/blob/master/doc/applications/openness_service_mesh.md) ## Cloud Adapters -* [cloud-adapters: How to deploy public cloud IoT gateways on OpenNESS Edge Cloud](https://github.com/otcshare/specs/blob/master/doc/cloud-adapters) - * [openness_awsgreengrass.md: Deploying single or multiple instance of Amazon Greengrass IoT gateway on OpenNESS edge cloud as an edge application](https://github.com/otcshare/specs/blob/master/doc/cloud-adapters/openness_awsgreengrass.md) - * [openness_baiducloud.md: Deploying single or multiple instance of Baidu IoT gateway on OpenNESS edge cloud as an edge application](https://github.com/otcshare/specs/blob/master/doc/cloud-adapters/openness_baiducloud.md) +* [cloud-adapters: How to deploy public cloud IoT gateways on OpenNESS Edge Cloud](https://github.com/open-ness/specs/blob/master/doc/cloud-adapters) + * [openness_awsgreengrass.md: Deploying single or multiple instance of Amazon Greengrass IoT gateway on OpenNESS edge cloud as an edge application](https://github.com/open-ness/specs/blob/master/doc/cloud-adapters/openness_awsgreengrass.md) + * [openness_baiducloud.md: Deploying single or multiple instance of Baidu IoT gateway on OpenNESS edge cloud as an edge application](https://github.com/open-ness/specs/blob/master/doc/cloud-adapters/openness_baiducloud.md) ## API and Schema * [Edge Application API: EAA](https://www.openness.org/api-documentation/?api=eaa) * [Edge Application Authentication API](https://www.openness.org/api-documentation/?api=auth) * [Core Network Configuration API](https://www.openness.org/api-documentation/?api=cups) -* [schema: Folder containing APIs protobuf or schema for varios endpoints in OpenNESS solution](https://github.com/otcshare/specs/tree/master/schema) +* [schema: Folder containing APIs protobuf or schema for varios endpoints in OpenNESS solution](https://github.com/open-ness/specs/tree/master/schema) ## Orchestration -* [openness-helm.md: Helm support in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/orchestration/openness-helm.md) +* [openness-helm.md: Helm support in OpenNESS](https://github.com/open-ness/specs/blob/master/doc/orchestration/openness-helm.md) ## Release history -* [openness_releasenotes.md: This document provides high level system features, issues and limitations information for OpenNESS](https://github.com/otcshare/specs/blob/master/openness_releasenotes.md) +* [openness_releasenotes.md: This document provides high level system features, issues and limitations information for OpenNESS](https://github.com/open-ness/specs/blob/master/openness_releasenotes.md) ## Related resources diff --git a/doc/applications-onboard/network-edge-applications-onboarding.md b/doc/applications-onboard/network-edge-applications-onboarding.md index 97ce6747..6b516bb9 100644 --- a/doc/applications-onboard/network-edge-applications-onboarding.md +++ b/doc/applications-onboard/network-edge-applications-onboarding.md @@ -42,14 +42,14 @@ Users must provide the application to be deployed on the OpenNESS platform for N > **Note**: The Harbor registry setup is out of scope for this document. If users already have a docker container image file and would like to copy it to the node manually, they can use the `docker load` command to add the image. The success of using a pre-built Docker image depends on the application dependencies that users must know. -The OpenNESS [edgeapps](https://github.com/otcshare/edgeapps) repository provides images for OpenNESS supported applications. Pull the repository to your Edge Node to build the images. +The OpenNESS [edgeapps](https://github.com/open-ness/edgeapps) repository provides images for OpenNESS supported applications. Pull the repository to your Edge Node to build the images. This document explains the build and deployment of two applications: 1. Sample application: a simple “Hello, World!” reference application for OpenNESS 2. OpenVINO™ application: A close to real-world inference application ## Building sample application images -The sample application is available in [the edgeapps repository](https://github.com/otcshare/edgeapps/tree/master/applications/sample-app); further information about the application is contained within the `Readme.md` file. +The sample application is available in [the edgeapps repository](https://github.com/open-ness/edgeapps/tree/master/applications/sample-app); further information about the application is contained within the `Readme.md` file. The following steps are required to build the sample application Docker images for testing the OpenNESS Edge Application Agent (EAA) with consumer and producer applications: @@ -64,7 +64,7 @@ The following steps are required to build the sample application Docker images f docker images | grep consumer ``` ## Building the OpenVINO application images -The OpenVINO application is available in [the EdgeApps repository](https://github.com/otcshare/edgeapps/tree/master/applications/openvino); further information about the application is contained within `Readme.md` file. +The OpenVINO application is available in [the EdgeApps repository](https://github.com/open-ness/edgeapps/tree/master/applications/openvino); further information about the application is contained within `Readme.md` file. The following steps are required to build the sample application Docker images for testing OpenVINO consumer and producer applications: @@ -491,12 +491,12 @@ This section guides users through the complete process of onboarding the OpenVIN ## Deploying the Application -1. An application `yaml` specification file for the OpenVINO producer that is used to deploy the K8s pod can be found in the Edge Apps repository at [./applications/openvino/producer/openvino-prod-app.yaml](https://github.com/otcshare/edgeapps/blob/master/applications/openvino/producer/openvino-prod-app.yaml). The pod will use the Docker image, which must be [built](#building-openvino-application-images) and available on the platform. Deploy the producer application by running: +1. An application `yaml` specification file for the OpenVINO producer that is used to deploy the K8s pod can be found in the Edge Apps repository at [./applications/openvino/producer/openvino-prod-app.yaml](https://github.com/open-ness/edgeapps/blob/master/applications/openvino/producer/openvino-prod-app.yaml). The pod will use the Docker image, which must be [built](#building-openvino-application-images) and available on the platform. Deploy the producer application by running: ``` kubectl apply -f openvino-prod-app.yaml kubectl certificate approve openvino-prod-app ``` -2. An application `yaml` specification file for the OpenVINO consumer that is used to deploy K8s pod can be found in the Edge Apps repository at [./applications/openvino/consumer/openvino-cons-app.yaml](https://github.com/otcshare/edgeapps/blob/master/applications/openvino/consumer/openvino-cons-app.yaml). The pod will use the Docker image, which must be [built](#building-openvino-application-images) and available on the platform. Deploy the consumer application by running: +2. An application `yaml` specification file for the OpenVINO consumer that is used to deploy K8s pod can be found in the Edge Apps repository at [./applications/openvino/consumer/openvino-cons-app.yaml](https://github.com/open-ness/edgeapps/blob/master/applications/openvino/consumer/openvino-cons-app.yaml). The pod will use the Docker image, which must be [built](#building-openvino-application-images) and available on the platform. Deploy the consumer application by running: ``` kubectl apply -f openvino-cons-app.yaml kubectl certificate approve openvino-cons-app @@ -593,7 +593,7 @@ The following is an example of how to set up DNS resolution for OpenVINO consume dig openvino.openness ``` 3. On the traffic generating host build the image for the [Client Simulator](#building-openvino-application-images) -4. Run the following from [edgeapps/applications/openvino/clientsim](https://github.com/otcshare/edgeapps/blob/master/applications/openvino/clientsim/run-docker.sh) to start the video traffic via the containerized Client Simulator. A graphical user environment is required to view the results of the returning augmented videos stream. +4. Run the following from [edgeapps/applications/openvino/clientsim](https://github.com/open-ness/edgeapps/blob/master/applications/openvino/clientsim/run-docker.sh) to start the video traffic via the containerized Client Simulator. A graphical user environment is required to view the results of the returning augmented videos stream. ``` ./run_docker.sh ``` diff --git a/doc/applications-onboard/openness-interface-service.md b/doc/applications-onboard/openness-interface-service.md index ca6f1c58..f0a2b1e1 100644 --- a/doc/applications-onboard/openness-interface-service.md +++ b/doc/applications-onboard/openness-interface-service.md @@ -35,7 +35,7 @@ Update the physical Ethernet interface with an IP from the `192.168.1.0/24` subn route add -net 10.16.0.0/16 gw 192.168.1.1 dev eth1 ``` -> **NOTE**: The default OpenNESS network policy applies to pods in a `default` namespace and blocks all ingress traffic. Refer to [Kubernetes NetworkPolicies](https://github.com/otcshare/specs/blob/master/doc/applications-onboard/network-edge-applications-onboarding.md#applying-kubernetes-network-policies) for an example policy allowing ingress traffic from the `192.168.1.0/24` subnet on a specific port. +> **NOTE**: The default OpenNESS network policy applies to pods in a `default` namespace and blocks all ingress traffic. Refer to [Kubernetes NetworkPolicies](https://github.com/open-ness/specs/blob/master/doc/applications-onboard/network-edge-applications-onboarding.md#applying-kubernetes-network-policies) for an example policy allowing ingress traffic from the `192.168.1.0/24` subnet on a specific port. > **NOTE**: The subnet `192.168.1.0/24` is allocated by the Ansible\* playbook to the physical interface, which is attached to the first edge node. The second edge node joined to the cluster is allocated to the next subnet `192.168.2.0/24` and so on. @@ -78,7 +78,7 @@ Currently, interface service supports the following values of the `driver` param ## Userspace (DPDK) bridge -The default DPDK-enabled bridge `br-userspace` is only available if OpenNESS is deployed with support for [Userspace CNI](https://github.com/otcshare/specs/blob/master/doc/building-blocks/dataplane/openness-userspace-cni.md) and at least one pod was deployed using the Userspace CNI. You can check if the `br-userspace` bridge exists by running the following command on your node: +The default DPDK-enabled bridge `br-userspace` is only available if OpenNESS is deployed with support for [Userspace CNI](https://github.com/open-ness/specs/blob/master/doc/building-blocks/dataplane/openness-userspace-cni.md) and at least one pod was deployed using the Userspace CNI. You can check if the `br-userspace` bridge exists by running the following command on your node: ```shell ovs-vsctl list-br diff --git a/doc/applications-onboard/openness-network-edge-vm-support.md b/doc/applications-onboard/openness-network-edge-vm-support.md index 202fdd1e..b02194a4 100644 --- a/doc/applications-onboard/openness-network-edge-vm-support.md +++ b/doc/applications-onboard/openness-network-edge-vm-support.md @@ -133,7 +133,7 @@ The KubeVirt role responsible for bringing up KubeVirt components is enabled by ## VM deployment Provided below are sample deployment instructions for different types of VMs. -Please use sample `.yaml` specification files provided in the OpenNESS Edge Controller directory, [edgeservices/edgecontroller/kubevirt/examples/](https://github.com/otcshare/edgeservices/tree/master/edgecontroller/kubevirt/examples), to deploy the workloads. Some of the files require modification to suit the environment they will be deployed in. Specific instructions on modifications are provided in the following steps: +Please use sample `.yaml` specification files provided in the OpenNESS Edge Controller directory, [edgeservices/edgecontroller/kubevirt/examples/](https://github.com/open-ness/edgeservices/tree/master/edgecontroller/kubevirt/examples), to deploy the workloads. Some of the files require modification to suit the environment they will be deployed in. Specific instructions on modifications are provided in the following steps: ### Stateless VM deployment To deploy a sample stateless VM with containerDisk storage: diff --git a/doc/applications-onboard/using-openness-cnca.md b/doc/applications-onboard/using-openness-cnca.md index 7c250f3f..0ece630d 100644 --- a/doc/applications-onboard/using-openness-cnca.md +++ b/doc/applications-onboard/using-openness-cnca.md @@ -165,7 +165,7 @@ OpenNESS provides ansible scripts for setting up NGC components for two scenario For Network Edge mode, the CNCA provides a kubectl plugin to configure the 5G Core network. Kubernetes adopted plugin concepts to extend its functionality. The `kube-cnca` plugin executes CNCA related functions within the Kubernetes ecosystem. The plugin performs remote callouts against NGC OAM and AF microservice on the controller itself. -The `kube-cnca` plugin is installed automatically on the control plane during the installation phase of the [Converged Edge Experience Kits](https://github.com/otcshare/specs/blob/master/doc/getting-started/openness-cluster-setup.md) +The `kube-cnca` plugin is installed automatically on the control plane during the installation phase of the [Converged Edge Experience Kits](https://github.com/open-ness/specs/blob/master/doc/getting-started/openness-cluster-setup.md) #### Edge Node services operations with 5G Core (through OAM interface) diff --git a/doc/applications/openness_appguide.md b/doc/applications/openness_appguide.md index e472b57e..66b14e04 100644 --- a/doc/applications/openness_appguide.md +++ b/doc/applications/openness_appguide.md @@ -35,7 +35,7 @@ This guide is targeted at the Cloud Application developers who want to - Develop applications for Edge computing that take advantage of all the capabilities exposed through Edge Compute APIs in OpenNESS. - Port the existing applications and services in the public/private cloud to the edge unmodified. -The document will describe how to develop applications from scratch using the template/example applications/services provided in the OpenNESS software release. All the OpenNESS Applications and services can be found in the [edgeapps repo](https://github.com/otcshare/edgeapps). +The document will describe how to develop applications from scratch using the template/example applications/services provided in the OpenNESS software release. All the OpenNESS Applications and services can be found in the [edgeapps repo](https://github.com/open-ness/edgeapps). ## OpenNESS Edge Node Applications OpenNESS Applications can onboard and provision on the edge nodes only through the OpenNESS Controller. The first step in Onboarding involves uploading the application image to the controller through the web interface. Both VM and Container images are supported. diff --git a/doc/applications/openness_openvino.md b/doc/applications/openness_openvino.md index a6fcfc43..6d2ee25e 100644 --- a/doc/applications/openness_openvino.md +++ b/doc/applications/openness_openvino.md @@ -100,14 +100,14 @@ For more information about CSR, refer to [OpenNESS CertSigner](../applications-o Applications are deployed on the OpenNESS Edge Node as Docker containers. Three docker containers need to be built to get the OpenVINO pipeline working: `clientsim`, `producer`, and `consumer`. The `clientsim` Docker image must be built and executed on the client simulator machine while the `producer` and `consumer` containers/pods should be onboarded on the OpenNESS Edge Node. -On the client simulator, clone the [OpenNESS edgeapps](https://github.com/otcshare/edgeapps) and execute the following command to build the `client-sim` container: +On the client simulator, clone the [OpenNESS edgeapps](https://github.com/open-ness/edgeapps) and execute the following command to build the `client-sim` container: ```shell cd /openvino/clientsim ./build-image.sh ``` -On the OpenNESS Edge Node, clone the [OpenNESS edgeapps](https://github.com/otcshare/edgeapps) and execute the following command to build the `producer` and `consumer` containers: +On the OpenNESS Edge Node, clone the [OpenNESS edgeapps](https://github.com/open-ness/edgeapps) and execute the following command to build the `producer` and `consumer` containers: ```shell cd /openvino/producer ./build-image.sh diff --git a/doc/applications/openness_service_mesh.md b/doc/applications/openness_service_mesh.md index 52bf355f..e96ef0d9 100644 --- a/doc/applications/openness_service_mesh.md +++ b/doc/applications/openness_service_mesh.md @@ -144,7 +144,7 @@ spec: methods: ["GET", "POST", "DELETE"] ``` -In this `AuthorizationPolicy`, the Istio service mesh will allow "GET", "POST", and "DELETE" requests from any authenticated applications from the `default` namespace only to be passed to the service. For example, if using the [Video Analytics sample application](https://github.com/otcshare/edgeapps/tree/master/applications/vas-sample-app), the policy will allow requests from the sample application to be received by the service as it is deployed in the `default` namespace. However, if the application is deployed in a different namespace (for example, the `openness` namespace mentioned above in the output from the Kubernetes cluster), then the policy will deny access to the service as the request is coming from an application on a different namespace. +In this `AuthorizationPolicy`, the Istio service mesh will allow "GET", "POST", and "DELETE" requests from any authenticated applications from the `default` namespace only to be passed to the service. For example, if using the [Video Analytics sample application](https://github.com/open-ness/edgeapps/tree/master/applications/vas-sample-app), the policy will allow requests from the sample application to be received by the service as it is deployed in the `default` namespace. However, if the application is deployed in a different namespace (for example, the `openness` namespace mentioned above in the output from the Kubernetes cluster), then the policy will deny access to the service as the request is coming from an application on a different namespace. > **NOTE**: The above `AuthorizationPolicy` can be tailored so that the OpenNESS service mesh *selectively* authorizes particular applications to consume premium video analytics services such as those accelerated using HDDL or VCAC-A cards. @@ -484,7 +484,7 @@ Users can change the namespace labeled with istio label using the parameter `ist * in `flavors/media-analytics/all.yml` for deployment with media-analytics flavor * in `inventory/default/group_vars/all/10-default.yml` for deployment with any flavor (and istio role enabled) -> **NOTE**: The default OpenNESS network policy applies to pods in the `default` namespace and blocks all ingress traffic. Users must remove the default policy and apply custom network policy when deploying applications in the `default` namespace. Refer to the [Kubernetes NetworkPolicies](https://github.com/otcshare/specs/blob/master/doc/applications-onboard/network-edge-applications-onboarding.md#applying-kubernetes-network-policies) for an example policy allowing ingress traffic from `192.168.1.0/24` subnet on a specific port. +> **NOTE**: The default OpenNESS network policy applies to pods in the `default` namespace and blocks all ingress traffic. Users must remove the default policy and apply custom network policy when deploying applications in the `default` namespace. Refer to the [Kubernetes NetworkPolicies](https://github.com/open-ness/specs/blob/master/doc/applications-onboard/network-edge-applications-onboarding.md#applying-kubernetes-network-policies) for an example policy allowing ingress traffic from `192.168.1.0/24` subnet on a specific port. Kiali console is accessible from a browser using `http://:30001` and credentials defined in Converged Edge Experience Kits: diff --git a/doc/architecture.md b/doc/architecture.md index dc6ce867..21405bc9 100644 --- a/doc/architecture.md +++ b/doc/architecture.md @@ -112,7 +112,7 @@ Edge Multi-Cluster Orchestration(EMCO), is a Geo-distributed application orchest ![](arch-images/openness-emco.png) -Link: [EMCO](https://github.com/otcshare/specs/blob/master/doc/building-blocks/emco/openness-emco.md) +Link: [EMCO](https://github.com/open-ness/specs/blob/master/doc/building-blocks/emco/openness-emco.md) ### Resource Management Resource Management represents a methodology which involves identification of the hardware and software resources on the edge cluster, Configuration and allocation of the resources and continuous monitoring of the resources for any changes. @@ -137,7 +137,7 @@ Resource Allocation involves configuration of the certain hardware resources lik Resource monitoring involves tracking the usage of allocated resources to the applications and services and also tracking the remaining allocatable resources. OpenNESS provides collectors, node exporters using collectd, telegraf and custom exporters as part of telemetry and monitoring of current resource usage. Resource monitoring support is provided for CPU, VPU, FPGA AND Memory. -Link: [Enhanced Platform Awareness: Documents covering Accelerators and Resource Management](https://github.com/otcshare/specs/tree/master/doc/building-blocks/enhanced-platform-awareness) +Link: [Enhanced Platform Awareness: Documents covering Accelerators and Resource Management](https://github.com/open-ness/specs/tree/master/doc/building-blocks/enhanced-platform-awareness) ### Accelerators @@ -177,13 +177,13 @@ OpenNESS supports the following CNIs: - Kube-OVN CNI: integrates the OVN-based network virtualization with Kubernetes. It offers an advanced container network fabric for enterprises with the most functions and the easiest operation. - Calico CNI/eBPF: supports applications with higher performance using eBPF and IPv4/IPv6 dual-stack -Link: [Dataplane and CNI](https://github.com/otcshare/specs/tree/master/doc/building-blocks/dataplane) +Link: [Dataplane and CNI](https://github.com/open-ness/specs/tree/master/doc/building-blocks/dataplane) ### Edge Aware Service Mesh Istio is a feature-rich, cloud-native service mesh platform that provides a collection of key capabilities such as: Traffic Management, Security and Observability uniformly across a network of services. OpenNESS integrates natively with the Istio service mesh to help reduce the complexity of large scale edge applications, services, and network functions. -Link: [Service Mesh](https://github.com/otcshare/specs/blob/master/doc/applications/openness_service_mesh.md) +Link: [Service Mesh](https://github.com/open-ness/specs/blob/master/doc/applications/openness_service_mesh.md) ### Telemetry and Monitoring @@ -293,7 +293,7 @@ The following is a subset of supported reference network functions: - gNodeB or eNodeB: 5G or 4G base station implementation on Intel architecture based on Intel’s FlexRAN. -Link: [Documents covering OpenNESS supported Reference Architectures](https://github.com/otcshare/specs/tree/master/doc/reference-architectures) +Link: [Documents covering OpenNESS supported Reference Architectures](https://github.com/open-ness/specs/tree/master/doc/reference-architectures) ## OpenNESS Optimized Commercial Applications OpenNESS Optimized Commercial applications are available at [Intel® Network Builders](https://networkbuilders.intel.com/commercial-applications) diff --git a/doc/building-blocks/dataplane/openness-interapp.md b/doc/building-blocks/dataplane/openness-interapp.md index fd41a407..4f16371a 100644 --- a/doc/building-blocks/dataplane/openness-interapp.md +++ b/doc/building-blocks/dataplane/openness-interapp.md @@ -15,7 +15,7 @@ Multi-core edge cloud platforms typically host multiple containers or virtual ma ## InterApp Communication support in OpenNESS Network Edge -InterApp communication on the OpenNESS Network Edge is supported using Open Virtual Network for Open vSwitch [OVN/OVS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/dataplane/openness-ovn.md) as the infrastructure. OVN/OVS in the network edge is supported through the Kubernetes kube-OVN Container Network Interface (CNI). +InterApp communication on the OpenNESS Network Edge is supported using Open Virtual Network for Open vSwitch [OVN/OVS](https://github.com/open-ness/specs/blob/master/doc/building-blocks/dataplane/openness-ovn.md) as the infrastructure. OVN/OVS in the network edge is supported through the Kubernetes kube-OVN Container Network Interface (CNI). >**NOTE**: The InterApps Communication also works with Calico cni. Calico is supported as a default cni in Openness from 21.03 release. diff --git a/doc/building-blocks/emco/openness-emco.md b/doc/building-blocks/emco/openness-emco.md index f248b11f..6ae27580 100644 --- a/doc/building-blocks/emco/openness-emco.md +++ b/doc/building-blocks/emco/openness-emco.md @@ -133,7 +133,7 @@ The Distributed Application Scheduler supports operations on a deployment intent - status: (may be invoked at any step) provides information on the status of the deployment intent group. - terminate: terminates the application resources of an instantiated application from all of the clusters to which it was deployed. In some cases, if a remote cluster is intermittently unreachable, the instantiate operation may still retry the instantiate operation for that cluster. The terminate operation will cause the instantiate operation to complete (i.e. fail), before the termination operation is performed. - stop: In some cases, if the remote cluster is intermittently unreachable, the Resource Synchronizer will continue retrying an instantiate or terminate operation. The stop operation can be used to force the retry operation to stop, and the instantiate or terminate operation will complete (with a failed status). In the case of terminate, this allows the deployment intent group resource to be deleted via the API, since deletion is prevented until a deployment intent group resource has reached a completed terminate operation status. -Refer to [EMCO Resource Lifecycle Operations](https://github.com/otcshare/EMCO/tree/main/docs/user/Resource_Lifecycle.md) for more details. +Refer to [EMCO Resource Lifecycle Operations](https://github.com/open-ness/EMCO/tree/main/docs/user/Resource_Lifecycle.md) for more details. #### Network Configuration Management The network configuration management (NCM) microservice: @@ -237,7 +237,7 @@ _Figure 7 - Instantiate a Deployment Intent Group_ In this initial release of EMCO, a built-in generic placement controller is provided in the `orchestrator`. As described above, the three provided action controllers are the OVN Action, Traffic and Generic Action controllers. #### Status Monitoring and Queries in EMCO -When a resource like a Deployment Intent Group is instantiated, status information about both the deployment and the deployed resources in the cluster are collected and made available for query by the API. The following diagram illustrates the key components involved. For more information about status queries see [EMCO Resource Lifecycle Operations](https://github.com/otcshare/EMCO/tree/main/docs/user/Resource_Lifecycle.md). +When a resource like a Deployment Intent Group is instantiated, status information about both the deployment and the deployed resources in the cluster are collected and made available for query by the API. The following diagram illustrates the key components involved. For more information about status queries see [EMCO Resource Lifecycle Operations](https://github.com/open-ness/EMCO/tree/main/docs/user/Resource_Lifecycle.md). ![OpenNESS EMCO](openness-emco-images/emco-status-monitoring.png) @@ -262,7 +262,7 @@ _Figure 8 - Status Monitoring and Query Sequence_ ### EMCO API -For user interaction, EMCO provides [RESTful API](https://github.com/otcshare/EMCO/blob/main/docs/emco_apis.yaml). Apart from that, EMCO also provides CLI. For the detailed usage, refer to [EMCO CLI](https://github.com/otcshare/EMCO/tree/main/src/tools/emcoctl) +For user interaction, EMCO provides [RESTful API](https://github.com/open-ness/EMCO/blob/main/docs/emco_apis.yaml). Apart from that, EMCO also provides CLI. For the detailed usage, refer to [EMCO CLI](https://github.com/open-ness/EMCO/tree/main/src/tools/emcoctl) > **NOTE**: The EMCO RESTful API is the foundation for the other interaction facilities like the EMCO CLI, EMCO GUI (available in the future) and other orchestrators. ### EMCO Authentication and Authorization @@ -287,7 +287,7 @@ The following figure shows the authentication flow with EMCO, Istio and Authserv _Figure 10 - EMCO Authenication with external OATH2 Server_ -Detailed steps for configuring EMCO with Istio can be found in [EMCO Integrity and Access Management](https://github.com/otcshare/EMCO/tree/main/docs/user/Emco_Integrity_Access_Management.md) document. +Detailed steps for configuring EMCO with Istio can be found in [EMCO Integrity and Access Management](https://github.com/open-ness/EMCO/tree/main/docs/user/Emco_Integrity_Access_Management.md) document. Steps for EMCO Authentication and Authorization Setup: - Install and Configure Keycloak Server to be used in the setup. This server runs outside the EMCO cluster @@ -301,7 +301,7 @@ Steps for EMCO Authentication and Authorization Setup: - Apply Authentication and Authorization Policies ### EMCO Installation With OpenNESS Flavor -EMCO supports [multiple deployment options](https://github.com/otcshare/EMCO/tree/main/deployments). [Converged Edge Experience Kits](../../getting-started/converged-edge-experience-kits.md) offers the `central_orchestrator` flavor to automate EMCO build and deployment as mentioned below. +EMCO supports [multiple deployment options](https://github.com/open-ness/EMCO/tree/main/deployments). [Converged Edge Experience Kits](../../getting-started/converged-edge-experience-kits.md) offers the `central_orchestrator` flavor to automate EMCO build and deployment as mentioned below. - The first step is to prepare one server environment which needs to fulfill the [preconditions](../../getting-started/openness-cluster-setup.md#preconditions). - Place the EMCO server hostname in `controller_group/hosts/ctrl.openness.org:` dictionary in `inventory.yml` file of converged-edge-experience-kit. - Update the `inventory.yaml` file by setting the deployment flavor as `central_orchestrator` @@ -348,7 +348,7 @@ emco ovnaction-5d8d4447f9-nn7l6 1/1 Running 0 14m emco rsync-99b85b4x88-ashmc 1/1 Running 0 14m ``` -Besides that, OpenNESS EMCO also provides Azure templates and supports deployment automation for EMCO cluster on Azure public cloud. More details refer to [OpenNESS Development Kit for Microsoft Azure](https://github.com/otcshare/ido-specs/blob/master/doc/devkits/openness-azure-devkit.md). +Besides that, OpenNESS EMCO also provides Azure templates and supports deployment automation for EMCO cluster on Azure public cloud. More details refer to [OpenNESS Development Kit for Microsoft Azure](https://github.com/open-ness/ido-specs/blob/master/doc/devkits/openness-azure-devkit.md). ## EMCO Example: SmartCity Deployment - The [SmartCity application](https://github.com/OpenVisualCloud/Smart-City-Sample) is a sample application that is built on top of the OpenVINO™ and Open Visual Cloud software stacks for media processing and analytics. The composite application is composed of two parts: EdgeApp + WebApp (cloud application for additional post-processing such as calculating statistics and display/visualization) @@ -375,9 +375,9 @@ Follow the guidance as [EMCO Installation With OpenNESS Flavor](#emco-installati ### Cluster Setup The step includes: - Prepare edge and cloud clusters kubeconfig files, SmartCity helm charts and relevant artifacts. -- Register clusters provider by [EMCO CLI](https://github.com/otcshare/EMCO/tree/main/src/tools/emcoctl). -- Register provider's clusters by [EMCO CLI](https://github.com/otcshare/EMCO/tree/main/src/tools/emcoctl). -- Register EMCO controllers and resource synchroizer by [EMCO CLI](https://github.com/otcshare/EMCO/tree/main/src/tools/emcoctl). +- Register clusters provider by [EMCO CLI](https://github.com/open-ness/EMCO/tree/main/src/tools/emcoctl). +- Register provider's clusters by [EMCO CLI](https://github.com/open-ness/EMCO/tree/main/src/tools/emcoctl). +- Register EMCO controllers and resource synchroizer by [EMCO CLI](https://github.com/open-ness/EMCO/tree/main/src/tools/emcoctl). 1. On the edge and cloud cluster, run the following command to make Docker logon to the Harbor deployed on the EMCO server, thus the clusters can pull SmartCity images from the Harbor: ```shell @@ -393,7 +393,7 @@ The step includes: > **NOTE**: should be `:30003`. -2. On the EMCO server, download the [scripts,profiles and configmap JSON files](https://github.com/otcshare/edgeapps/tree/master/applications/smart-city-app/emco). +2. On the EMCO server, download the [scripts,profiles and configmap JSON files](https://github.com/open-ness/edgeapps/tree/master/applications/smart-city-app/emco). 3. Artifacts Preparation for clusters's kubeconfig, smartcity helm charts and other relevant artifacts Run the command for the environment setup with success return as below: @@ -470,7 +470,7 @@ The setup includes: URL: projects/project_smtc/composite-apps/composite_smtc/v1/deployment-intent-groups/smtc-deployment-intent-group/instantiate Response Code: 202 Response: ``` - > **NOTE**: EMCO supports generic K8S resource configuration including configmap, secret,etc. The example offers the usage about [configmap configuration](https://github.com/otcshare/edgeapps/blob/master/applications/smart-city-app/emco/cli-scripts/04_apps_template.yaml) to the clusters. + > **NOTE**: EMCO supports generic K8S resource configuration including configmap, secret,etc. The example offers the usage about [configmap configuration](https://github.com/open-ness/edgeapps/blob/master/applications/smart-city-app/emco/cli-scripts/04_apps_template.yaml) to the clusters. > **NOTE**: The `04_apply.sh` script invokes EMCO CLI tool - `emcoctl` and applies resource template file - `04_apps_template.yaml` which contains the application related resources to create in EMCO, for example deployment-intent, application helm chart entries, override profiles, configmap...etc. The placement intent for the use case is cluster label name and provider name. diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md b/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md index 19fc4689..5506fce4 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-acc100.md @@ -179,7 +179,7 @@ kubectl get node -o json | jq '.status.allocatable' ``` To request the device as a resource in the pod, add the request for the resource into the pod specification file by specifying its name and the amount of resources required. If the resource is not available or the amount of resources requested is greater than the number of resources available, the pod status will be “Pending” until the resource is available. -**NOTE**: The name of the resource must match the name specified in the configMap for the K8s devices plugin [configMap.yml](https://github.com/otcshare/converged-edge-experience-kits/blob/master/roles/kubernetes/cni/sriov/controlplane/templates/configMap.yml.j2). +**NOTE**: The name of the resource must match the name specified in the configMap for the K8s devices plugin [configMap.yml](https://github.com/open-ness/converged-edge-experience-kits/blob/master/roles/kubernetes/cni/sriov/controlplane/templates/configMap.yml.j2). A sample pod requesting the ACC100 (FEC) VF may look like this: diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core-cmk-deprecated.md b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core-cmk-deprecated.md index bfa98552..cf12441a 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core-cmk-deprecated.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-dedicated-core-cmk-deprecated.md @@ -79,7 +79,7 @@ CMK can be deployed using a [Helm chart](https://helm.sh/). The CMK Helm chart u The environment setup can be validated using steps from the [CMK operator manual](https://github.com/intel/CPU-Manager-for-Kubernetes/blob/master/docs/operator.md#validating-the-environment). **Note:** -Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/otcshare/specs/blob/master/doc/flavors.md). +Up to version 20.12 choosing flavor was optional. Since version 21.03 and moving forward this parameter is no longer optional. To learn more about [flavors go to this page](https://github.com/open-ness/specs/blob/master/doc/flavors.md). ### Usage diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md b/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md index a0696a5f..3e071e93 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md @@ -263,7 +263,7 @@ kubectl get node -o json | jq '.status.allocatable' ``` To request the device as a resource in the pod, add the request for the resource into the pod specification file by specifying its name and amount of resources required. If the resource is not available or the amount of resources requested is greater than the number of resources available, the pod status will be “Pending” until the resource is available. -**NOTE**: The name of the resource must match the name specified in the configMap for the K8s devices plugin [configMap.yml](https://github.com/otcshare/converged-edge-experience-kits/blob/master/roles/kubernetes/cni/sriov/controlplane/templates/configMap.yml.j2). +**NOTE**: The name of the resource must match the name specified in the configMap for the K8s devices plugin [configMap.yml](https://github.com/open-ness/converged-edge-experience-kits/blob/master/roles/kubernetes/cni/sriov/controlplane/templates/configMap.yml.j2). A sample pod requesting the FPGA (FEC) VF may look like this: diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md b/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md index 3bc059fb..01454063 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-sriov-multiple-interfaces.md @@ -61,7 +61,7 @@ kubernetes_cnis: ### Multus usage -Multus CNI is deployed in OpenNESS using a Helm chart. The Helm chart is available in [converged-edge-experience-kits](https://github.com/otcshare/converged-edge-experience-kits/tree/master/roles/kubernetes/cni/multus/controlplane/files/multus-cni). The Multus image is pulled by Ansible\* Multus role and pushed to a local Docker\* registry on Edge Controller. +Multus CNI is deployed in OpenNESS using a Helm chart. The Helm chart is available in [converged-edge-experience-kits](https://github.com/open-ness/converged-edge-experience-kits/tree/master/roles/kubernetes/cni/multus/controlplane/files/multus-cni). The Multus image is pulled by Ansible\* Multus role and pushed to a local Docker\* registry on Edge Controller. [Custom resource definition](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#custom-resources) (CRD) is used to define an additional network that can be used by Multus. @@ -130,7 +130,7 @@ kubernetes_cnis: - sriov ``` -SR-IOV CNI and device plugin are deployed in OpenNESS using Helm chart. The Helm chart is available in [converged-edge-experience-kits](https://github.com/otcshare/converged-edge-experience-kits/tree/master/roles/kubernetes/cni/sriov/controlplane/files/sriov). Additional chart templates for SR-IOV device plugin can be downloaded from [container-experience-kits repository](https://github.com/intel/container-experience-kits/tree/master/roles/sriov_dp_install/charts/sriov-net-dp/templates). SR-IOV images are built from source by the Ansible SR-IOV role and pushed to a local Harbor registry on Edge Controller. +SR-IOV CNI and device plugin are deployed in OpenNESS using Helm chart. The Helm chart is available in [converged-edge-experience-kits](https://github.com/open-ness/converged-edge-experience-kits/tree/master/roles/kubernetes/cni/sriov/controlplane/files/sriov). Additional chart templates for SR-IOV device plugin can be downloaded from [container-experience-kits repository](https://github.com/intel/container-experience-kits/tree/master/roles/sriov_dp_install/charts/sriov-net-dp/templates). SR-IOV images are built from source by the Ansible SR-IOV role and pushed to a local Harbor registry on Edge Controller. #### Edge Node SR-IOV interfaces configuration diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md b/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md index 94b42086..80368545 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-telemetry.md @@ -149,7 +149,7 @@ Node Exporter is a Prometheus exporter that exposes hardware and OS metrics of * #### VCAC-A -Node Exporter also enables exposure of telemetry from Intel's VCAC-A card to Prometheus. The telemetry from the VCAC-A card is saved into a text file; this text file is used as an input to the Node Exporter. More information on VCAC-A usage in OpenNESS is available [here](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md). +Node Exporter also enables exposure of telemetry from Intel's VCAC-A card to Prometheus. The telemetry from the VCAC-A card is saved into a text file; this text file is used as an input to the Node Exporter. More information on VCAC-A usage in OpenNESS is available [here](https://github.com/open-ness/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md). ### cAdvisor @@ -189,7 +189,7 @@ The various CEEK flavors are enabled for CollectD deployment as follows: 1. Select the flavor for the deployment of CollectD from the CEEK during OpenNESS deployment; the flavor is to be selected with `telemetry_flavor: `. - In the event of using the `flexran` profile, `OPAE_SDK_1.3.7-5_el7.zip` needs to be available in `./converged-edge-experience-kits/opae_fpga` directory; for details about the packages, see [FPGA support in OpenNESS](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md#edge-controller) + In the event of using the `flexran` profile, `OPAE_SDK_1.3.7-5_el7.zip` needs to be available in `./converged-edge-experience-kits/opae_fpga` directory; for details about the packages, see [FPGA support in OpenNESS](https://github.com/open-ness/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-fpga.md#edge-controller) 2. To access metrics available from CollectD, connect to the Prometheus [dashboard](#prometheus). 3. Look up an example the CollectD metric by specifying the metric name (ie. `collectd_cpufreq`) and pressing `execute` under the `graph` tab. ![CollectD Metric](telemetry-images/collectd_metric.png) @@ -266,7 +266,7 @@ Processor Counter Monitor (PCM) is an application programming interface (API) an - Prometheus: responsible for collecting and providing metrics. - Prometheus Adapter: exposes the metrics from Prometheus to a K8s API and is configured to provide metrics from Node Exporter and CollectD collectors. -TAS is enabled by default in CEEK, a sample scheduling policy for TAS is provided for [VCAC-A node deployment](https://github.com/otcshare/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md#telemetry-support). +TAS is enabled by default in CEEK, a sample scheduling policy for TAS is provided for [VCAC-A node deployment](https://github.com/open-ness/specs/blob/master/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md#telemetry-support). #### Usage diff --git a/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md b/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md index a4f55dc7..9b4be173 100644 --- a/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md +++ b/doc/building-blocks/enhanced-platform-awareness/openness-vcac-a.md @@ -32,7 +32,7 @@ The VCAC-A installation involves a [two-stage build](https://github.com/OpenVisu The CEEK automates the overall build and installation process of the VCAC-A card by joining it as a standalone logical node to the OpenNESS cluster. The CEEK supports force build VCAC-A system image (VCAD) via flag (force\_build\_enable: true (default value)), it also allows the customer to disable the flag to re-use last system image built. When successful, the OpenNESS controller is capable of selectively scheduling workloads on the "VCA node" for proximity to the hardware acceleration. -When onboarding applications such as [Open Visual Cloud Smart City Sample](https://github.com/otcshare/edgeapps/tree/master/applications/smart-city-app) with the existence of VCAC-A, the OpenNESS controller schedules all the application pods onto the edge node except the *video analytics* processing that is scheduled on the VCA node as shown in the figure below. +When onboarding applications such as [Open Visual Cloud Smart City Sample](https://github.com/open-ness/edgeapps/tree/master/applications/smart-city-app) with the existence of VCAC-A, the OpenNESS controller schedules all the application pods onto the edge node except the *video analytics* processing that is scheduled on the VCA node as shown in the figure below. ![Smart City Setup](vcaca-images/smart-city-app-vcac-a.png) diff --git a/doc/devkits/openness-azure-devkit.md b/doc/devkits/openness-azure-devkit.md index b2f0786c..213667c0 100644 --- a/doc/devkits/openness-azure-devkit.md +++ b/doc/devkits/openness-azure-devkit.md @@ -14,4 +14,4 @@ for automated depoyment, and supports deployment using Porter. It enables cloud ## Getting Started Following document contains steps for quick deployment on Azure: -* [converged-edge-experience-kits/cloud/README.md: Deployment and setup guide](https://github.com/otcshare/converged-edge-experience-kits/blob/master/cloud/README.md) +* [converged-edge-experience-kits/cloud/README.md: Deployment and setup guide](https://github.com/open-ness/converged-edge-experience-kits/blob/master/cloud/README.md) diff --git a/doc/getting-started/openness-cluster-setup.md b/doc/getting-started/openness-cluster-setup.md index a5db2eda..20d29dc3 100644 --- a/doc/getting-started/openness-cluster-setup.md +++ b/doc/getting-started/openness-cluster-setup.md @@ -34,7 +34,7 @@ The following set of actions must be completed to set up the Open Network Edge S 1. Fulfill the [Preconditions](#preconditions). 2. Become familiar with [supported features](#supported-epa-features) and enable them if desired. -3. Clone [Converged Edge Experience Kits](https://github.com/otcshare/converged-edge-experience-kits) +3. Clone [Converged Edge Experience Kits](https://github.com/open-ness/converged-edge-experience-kits) 4. Install deployment helper script pre-requisites (first time only) ```shell diff --git a/doc/orchestration/openness-helm.md b/doc/orchestration/openness-helm.md index ac0d6aaa..fff0e018 100644 --- a/doc/orchestration/openness-helm.md +++ b/doc/orchestration/openness-helm.md @@ -12,7 +12,7 @@ Copyright (c) 2020 Intel Corporation - [References](#references) ## Introduction -Helm is a package manager for Kubernetes\*. It allows developers and operators to easily package, configure, and deploy applications and services onto Kubernetes clusters. For details refer to the [Helm Website](https://helm.sh). With OpenNESS, Helm is used to extend the [Converged Edge Experience Kits](https://github.com/otcshare/converged-edge-experience-kits) Ansible\* playbooks to deploy Kubernetes packages. Helm adds considerable flexibility. It enables users to upgrade an existing installation without requiring a re-install. It provides the option to selectively deploy individual microservices if a full installation of OpenNESS is not needed. And it provides a standard process to deploy different applications or network functions. This document aims to familiarize the user with Helm and provide instructions on how to use the specific Helm charts available for OpenNESS. +Helm is a package manager for Kubernetes\*. It allows developers and operators to easily package, configure, and deploy applications and services onto Kubernetes clusters. For details refer to the [Helm Website](https://helm.sh). With OpenNESS, Helm is used to extend the [Converged Edge Experience Kits](https://github.com/open-ness/converged-edge-experience-kits) Ansible\* playbooks to deploy Kubernetes packages. Helm adds considerable flexibility. It enables users to upgrade an existing installation without requiring a re-install. It provides the option to selectively deploy individual microservices if a full installation of OpenNESS is not needed. And it provides a standard process to deploy different applications or network functions. This document aims to familiarize the user with Helm and provide instructions on how to use the specific Helm charts available for OpenNESS. ## Architecture The below figure shows the architecture for the OpenNESS Helm in this document. @@ -22,7 +22,7 @@ _Figure - Helm Architecture in OpenNESS_ ## Helm Installation -Helm 3 is used for OpenNESS. The installation is automatically conducted by the [Converged Edge Experience Kits](https://github.com/otcshare/converged-edge-experience-kits) Ansible playbooks as below: +Helm 3 is used for OpenNESS. The installation is automatically conducted by the [Converged Edge Experience Kits](https://github.com/open-ness/converged-edge-experience-kits) Ansible playbooks as below: ```yaml - role: kubernetes/helm ``` @@ -39,19 +39,19 @@ OpenNESS provides the following helm charts: - CNI plugins including Multus\* and SRIOV CNI - Video analytics service - 5G control plane pods including AF, NEF, OAM, and CNTF -> **NOTE**: NFD, CMK, Prometheus, NodeExporter, and Grafana leverage existing third-party helm charts: [Container Experience Kits](https://github.com/intel/container-experience-kits) and [Helm GitHub\* Repo](https://github.com/helm/charts). For other helm charts, [Converged Edge Experience Kits](https://github.com/otcshare/converged-edge-experience-kits) Ansible playbooks perform automatic charts generation and deployment. +> **NOTE**: NFD, CMK, Prometheus, NodeExporter, and Grafana leverage existing third-party helm charts: [Container Experience Kits](https://github.com/intel/container-experience-kits) and [Helm GitHub\* Repo](https://github.com/helm/charts). For other helm charts, [Converged Edge Experience Kits](https://github.com/open-ness/converged-edge-experience-kits) Ansible playbooks perform automatic charts generation and deployment. - Sample applications, network functions, and services that can be deployed and verified on the OpenNESS platform: - Applications - - [CDN Caching Application Helm Charts](https://github.com/otcshare/edgeapps/tree/master/applications/cdn-caching) + - [CDN Caching Application Helm Charts](https://github.com/open-ness/edgeapps/tree/master/applications/cdn-caching) - [CDN Transcode Application Helm Charts](https://github.com/OpenVisualCloud/CDN-Transcode-Sample/tree/master/deployment/kubernetes/helm) (Leverage OpenVisualCloud) - [Smart City Application Helm Charts](https://github.com/OpenVisualCloud/Smart-City-Sample/tree/master/deployment/kubernetes/helm) (Leverage OpenVisualCloud) - - [Telemetry Sample Application Helm Charts](https://github.com/otcshare/edgeapps/tree/master/applications/telemetry-sample-app) - - [EIS Sample Application Helm Charts](https://github.com/otcshare/edgeapps/tree/master/applications/eis-experience-kit) + - [Telemetry Sample Application Helm Charts](https://github.com/open-ness/edgeapps/tree/master/applications/telemetry-sample-app) + - [EIS Sample Application Helm Charts](https://github.com/open-ness/edgeapps/tree/master/applications/eis-experience-kit) - Network Functions - - [FlexRAN Helm Charts](https://github.com/otcshare/edgeapps/tree/master/network-functions/ran/charts/du-dev) - - [xRAN Helm Charts](https://github.com/otcshare/edgeapps/tree/master/network-functions/xran/helmcharts/xranchart) - - [UPF Helm Charts](https://github.com/otcshare/edgeapps/tree/master/network-functions/core-network/charts/upf) + - [FlexRAN Helm Charts](https://github.com/open-ness/edgeapps/tree/master/network-functions/ran/charts/du-dev) + - [xRAN Helm Charts](https://github.com/open-ness/edgeapps/tree/master/network-functions/xran/helmcharts/xranchart) + - [UPF Helm Charts](https://github.com/open-ness/edgeapps/tree/master/network-functions/core-network/charts/upf) The EPA, Telemetry, and k8s plugins helm chart files will be saved in a specific directory on the OpenNESS controller. To modify the directory, change the following variable `ne_helm_charts_default_dir` in the `inventory/default/group_vars/all/10-default.yml` file: ```yaml diff --git a/doc/reference-architectures/core-network/openness_upf.md b/doc/reference-architectures/core-network/openness_upf.md index 3877a5eb..d5bd7076 100644 --- a/doc/reference-architectures/core-network/openness_upf.md +++ b/doc/reference-architectures/core-network/openness_upf.md @@ -45,21 +45,21 @@ As part of the end-to-end integration of the Edge cloud deployment using OpenNES # Purpose -This document provides the required steps to deploy UPF on the OpenNESS platform. 4G/(Long Term Evolution network)LTE or 5G UPF can run as network functions on the Edge node in a virtualized environment. The reference [Dockerfile](https://github.com/otcshare/edgeapps/blob/master/network-functions/core-network/5G/UPF/Dockerfile) and [5g-upf.yaml](https://github.com/otcshare/edgeapps/blob/master/network-functions/core-network/5G/UPF/5g-upf.yaml) provide details on how to deploy UPF as a Cloud-native network functions (CNF) in a K8s pod on OpenNESS edge node using OpenNESS Enhanced Platform Awareness (EPA) features. +This document provides the required steps to deploy UPF on the OpenNESS platform. 4G/(Long Term Evolution network)LTE or 5G UPF can run as network functions on the Edge node in a virtualized environment. The reference [Dockerfile](https://github.com/open-ness/edgeapps/blob/master/network-functions/core-network/5G/UPF/Dockerfile) and [5g-upf.yaml](https://github.com/open-ness/edgeapps/blob/master/network-functions/core-network/5G/UPF/5g-upf.yaml) provide details on how to deploy UPF as a Cloud-native network functions (CNF) in a K8s pod on OpenNESS edge node using OpenNESS Enhanced Platform Awareness (EPA) features. These scripts are validated through a reference UPF solution (implementation is based on Vector Packet Processing (VPP)) that is not part of the OpenNESS release. >**NOTE**: The AF and NEF Dockerfile and pod specification can be found here: > -> - AF - [dockerfile](https://github.com/otcshare/epcforedge/blob/master/ngc/build/networkedge/af/Dockerfile). [Pod Specification](https://github.com/otcshare/epcforedge/blob/master/ngc/scripts/networkedge/ngctest/podAF.yaml) -> - NEF - [dockerfile](https://github.com/otcshare/epcforedge/blob/master/ngc/build/networkedge/nef/Dockerfile). [Pod Specification](https://github.com/otcshare/epcforedge/blob/master/ngc/scripts/networkedge/ngctest/podNEF.yaml) -> - OAM - [dockerfile](https://github.com/otcshare/epcforedge/blob/master/ngc/build/networkedge/oam/Dockerfile). [Pod Specification](https://github.com/otcshare/epcforedge/blob/master/ngc/scripts/networkedge/ngctest/podOAM.yaml) +> - AF - [dockerfile](https://github.com/open-ness/epcforedge/blob/master/ngc/build/networkedge/af/Dockerfile). [Pod Specification](https://github.com/open-ness/epcforedge/blob/master/ngc/scripts/networkedge/ngctest/podAF.yaml) +> - NEF - [dockerfile](https://github.com/open-ness/epcforedge/blob/master/ngc/build/networkedge/nef/Dockerfile). [Pod Specification](https://github.com/open-ness/epcforedge/blob/master/ngc/scripts/networkedge/ngctest/podNEF.yaml) +> - OAM - [dockerfile](https://github.com/open-ness/epcforedge/blob/master/ngc/build/networkedge/oam/Dockerfile). [Pod Specification](https://github.com/open-ness/epcforedge/blob/master/ngc/scripts/networkedge/ngctest/podOAM.yaml) # How to build 1. To keep the build and deploy process straightforward, the Docker\* build and image are stored on the Edge node. -2. Copy the upf binary package to the Docker build folder. Reference Docker files and the Helm chart for deploying the UPF is available at [edgeapps_upf_docker](https://github.com/otcshare/edgeapps/tree/master/network-functions/core-network/5G/UPF) and [edgeapps_upf_helmchart](https://github.com/otcshare/edgeapps/tree/master/network-functions/core-network/charts/upf) respectively +2. Copy the upf binary package to the Docker build folder. Reference Docker files and the Helm chart for deploying the UPF is available at [edgeapps_upf_docker](https://github.com/open-ness/edgeapps/tree/master/network-functions/core-network/5G/UPF) and [edgeapps_upf_helmchart](https://github.com/open-ness/edgeapps/tree/master/network-functions/core-network/charts/upf) respectively ```bash ne-node# cp -rf <5g-upf-binary-package> edgeapps/network-functions/core-network/5G/UPF/upf @@ -77,7 +77,7 @@ These scripts are validated through a reference UPF solution (implementation is # UPF configuration -To keep the bring up setup simple, the UPF configuration can be provided through the Helm charts. A reference Helm chart is available at [edgeapps_upf_helmchart](https://github.com/otcshare/edgeapps/tree/master/network-functions/core-network/charts/upf) +To keep the bring up setup simple, the UPF configuration can be provided through the Helm charts. A reference Helm chart is available at [edgeapps_upf_helmchart](https://github.com/open-ness/edgeapps/tree/master/network-functions/core-network/charts/upf) Below is a list of minimal configuration parameters for VPP-based applications such as UPF. @@ -280,7 +280,7 @@ Below is a list of minimal configuration parameters for VPP-based applications s ## Deploy UPF pod from OpenNESS controller -In this reference validation, UPF will be deployed using Helm charts. The reference Helm chart for UPF is available at [edgeapps_upf_helmchart](https://github.com/otcshare/edgeapps/tree/master/network-functions/core-network/charts/upf) +In this reference validation, UPF will be deployed using Helm charts. The reference Helm chart for UPF is available at [edgeapps_upf_helmchart](https://github.com/open-ness/edgeapps/tree/master/network-functions/core-network/charts/upf) helm install \ \ \ diff --git a/openness_releasenotes.md b/openness_releasenotes.md index 7a627f4c..570baf8b 100644 --- a/openness_releasenotes.md +++ b/openness_releasenotes.md @@ -264,7 +264,7 @@ This document provides high-level system features, issues, and limitations infor - Experience Kit now supports multiple detection video's – Safety equipment detection, PCB default detection and also supports external video streams. ## OpenNESS - 20.12 -- Early access release of Edge Multi-Cluster Orchestration(EMCO), a Geo-distributed application orchestrator for Kubernetes. This release supports EMCO deploying and managing the life cycle of the Smart City Application pipeline on the edge cluster. More details in the [EMCO Release Notes](https://github.com/otcshare/EMCO/blob/main/ReleaseNotes.md). +- Early access release of Edge Multi-Cluster Orchestration(EMCO), a Geo-distributed application orchestrator for Kubernetes. This release supports EMCO deploying and managing the life cycle of the Smart City Application pipeline on the edge cluster. More details in the [EMCO Release Notes](https://github.com/open-ness/EMCO/blob/main/ReleaseNotes.md). - Reference implementation of the offline installation package for the Converged Edge Reference Architecture (CERA) Access Edge flavor enabling installation of Kubernetes and related enhancements for Access edge deployments. - Azure Development kit (Devkit) supporting the installation of an OpenNESS Kubernetes cluster on the Microsoft* Azure* cloud. This is typically used by a customer who wants to develop applications and services for the edge using OpenNESS building blocks. - Support Intel® vRAN Dedicated Accelerator ACC100, Kubernetes Cloud-native deployment supporting higher capacity 4G/LTE and 5G vRANs cells/carriers for FEC offload. @@ -312,11 +312,11 @@ There are no unsupported or discontinued features relevant to this release. ## OpenNESS - 21.03 - FlexRAN/Access Edge CERA Flavor is only aviable in Intel Distribution of OpenNESS - OpenNESS repositories have been consolidated to the following - - https://github.com/otcshare/converged-edge-experience-kits - - https://github.com/otcshare/specs - - https://github.com/otcshare/edgeapps - - https://github.com/otcshare/edgeservices - - https://github.com/otcshare/openshift-operator + - https://github.com/open-ness/converged-edge-experience-kits + - https://github.com/open-ness/specs + - https://github.com/open-ness/edgeapps + - https://github.com/open-ness/edgeservices + - https://github.com/open-ness/openshift-operator # Fixed Issues ## OpenNESS - 19.06 @@ -458,11 +458,11 @@ OpenNESS Edge node, OpenNESS Controller, Common, Spec, OpenNESS Applications, an - Open Source: Edge node, Controller, Epcforedge, Common, Spec, Applications and Experience kit. - IDO: IDO Edge node, IDO Controller, IDO Epcforedge, IDO Spec and IDO Experience kit. ## OpenNESS - 21.03 - - https://github.com/otcshare/converged-edge-experience-kits - - https://github.com/otcshare/specs - - https://github.com/otcshare/edgeapps - - https://github.com/otcshare/edgeservices - - https://github.com/otcshare/openshift-operator + - https://github.com/open-ness/converged-edge-experience-kits + - https://github.com/open-ness/specs + - https://github.com/open-ness/edgeapps + - https://github.com/open-ness/edgeservices + - https://github.com/open-ness/openshift-operator # Hardware and Software Compatibility OpenNESS Edge Node has been tested using the following hardware specification: diff --git a/schema/5goam/5goam.swagger.json b/schema/5goam/5goam.swagger.json index 4d050a0e..c0278b08 100644 --- a/schema/5goam/5goam.swagger.json +++ b/schema/5goam/5goam.swagger.json @@ -5,7 +5,7 @@ "title": "5G OAM Northbound API", "contact": { "name": "intel", - "url": "github.com/otcshare/epcedge", + "url": "github.com/open-ness/epcedge", "email": "support@intel.com" }, "license": { diff --git a/schema/5goam/5goam.swagger.yaml b/schema/5goam/5goam.swagger.yaml index 5314c386..8da72063 100644 --- a/schema/5goam/5goam.swagger.yaml +++ b/schema/5goam/5goam.swagger.yaml @@ -7,7 +7,7 @@ info: title: 5G OAM Northbound API contact: name: intel - url: github.com/otcshare/epcedge + url: github.com/open-ness/epcedge email: support@intel.com license: name: Apache 2.0 License diff --git a/schema/pb/auth.proto b/schema/pb/auth.proto index 69bac0d6..b60d28fe 100644 --- a/schema/pb/auth.proto +++ b/schema/pb/auth.proto @@ -4,7 +4,7 @@ syntax = "proto3"; package openness.auth; -option go_package = "github.com/otcshare/schema;auth"; +option go_package = "github.com/open-ness/schema;auth"; import "google/api/annotations.proto"; import "protoc-gen-swagger/options/annotations.proto"; diff --git a/schema/pb/cups.proto b/schema/pb/cups.proto index b9e86441..bb8ea2e6 100644 --- a/schema/pb/cups.proto +++ b/schema/pb/cups.proto @@ -4,7 +4,7 @@ syntax = "proto3"; package openness.cups; -option go_package = "github.com/otcshare/cups;cups"; +option go_package = "github.com/open-ness/cups;cups"; import "google/protobuf/empty.proto"; import "google/api/annotations.proto"; diff --git a/schema/pb/eaa.proto b/schema/pb/eaa.proto index c731a0f7..edaad841 100644 --- a/schema/pb/eaa.proto +++ b/schema/pb/eaa.proto @@ -4,7 +4,7 @@ syntax = "proto3"; package openness.eaa; -option go_package = "github.com/otcshare/eaa;eaa"; +option go_package = "github.com/open-ness/eaa;eaa"; import "google/protobuf/empty.proto"; import "google/api/annotations.proto"; diff --git a/schema/pb/eva.proto b/schema/pb/eva.proto index e1972b95..7dd8eee3 100644 --- a/schema/pb/eva.proto +++ b/schema/pb/eva.proto @@ -4,7 +4,7 @@ syntax = "proto3"; package openness.eva; -option go_package = "github.com/otcshare/eva"; +option go_package = "github.com/open-ness/eva"; import "google/protobuf/empty.proto";