..
   SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
   SPDX-License-Identifier: Apache-2.0

===========================
Connectivity Control Update
===========================
At this point, Aether runtime and SD-Fabric should be ready.
But in order to make Aether connectivity control to serve the new ACE,
we need to create another patch to `aether-pod-configs` repository and update `omec-control-plane`.

.. attention::

   Note that this step will be done via ROC in the future.

Before you begin
================
Make sure you have the edge pod checklist ready.
Specifically, the following information is required in this section.

* MCC
* MNC
* TAC
* Subscriber IMSI list

Download aether-pod-configs repository
======================================
First, download the aether-pod-configs repository to your development machine.

.. code-block:: shell

   $ cd $WORKDIR
   $ git clone "ssh://[username]@gerrit.opencord.org:29418/aether-pod-configs"

Update OMEC control plane configs
=================================
Once you successfully download the `aether-pod-configs` repository to your local development machine
then move the directory to `aether-pod-configs/production/acc-gcp/app_values`
and edit `omec-control-plane.yml` file to add new user profile and subscribers for the new ACE.

Here is an example of the patch https://gerrit.opencord.org/c/aether-pod-configs/+/21396.
Please change MCC, MNC, TAC and IMSI in the example accordingly to match the new ACE.
Also, change FQDN of the `pfcp-agent` service of the target ACE cluster as `user-plane` value
and `UE_DNS` address as `dns_primary` value.

.. code-block:: diff

   $ cd $WORKDIR/aether-pod-configs/production/acc-gcp/app_values
   $ vi omec-control-plane.yml
   # Add the new ACE user profile and subscribers

   $ git diff
   diff --git a/production/acc-gcp/app_values/omec-control-plane.yml b/production/acc-gcp/app_values/omec-control-plane.yml
   index 24d19d9..0350fc1 100644
   --- a/production/acc-gcp/app_values/omec-control-plane.yml
   +++ b/production/acc-gcp/app_values/omec-control-plane.yml
   @@ -76,6 +76,17 @@ config:
                  - access-all
               selected-apn-profile: "apn-internet-menlo"
               selected-qos-profile: "qos-profile1"
   +          - selected-user-plane-profile: "test"
   +            keys:
   +              serving-plmn:
   +                mcc: 315
   +                mnc: 10
   +                tac: 205
   +            priority: 5
   +            selected-access-profile:
   +              - access-all
   +            selected-apn-profile: "apn-internet-test"
   +            selected-qos-profile: "qos-profile1"
            user-plane-profiles:
            onf-tucson:
               user-plane: "upf.omec.svc.prd.tucson.aetherproject.net"
   @@ -87,6 +98,8 @@ config:
               user-plane: "upf.omec.svc.prd.intel.aetherproject.net"
            menlo:
               user-plane: "pfcp-agent.omec.svc.prd.menlo.aetherproject.net"
   +          test:
   +            user-plane: "pfcp-agent.omec.svc.prd.new.aetherproject.net"
            apn-profiles:
            apn-internet-default:
               apn-name: "internet"
   @@ -120,6 +133,14 @@ config:
               dns_primary: "10.59.128.11"
               dns_secondary: "1.1.1.1"
               mtu: 1460
   +          apn-internet-test:
   +            apn-name: "internet"
   +            usage: 1
   +            network: "lbo"
   +            gx_enabled: true
   +            dns_primary: "10.54.128.11"
   +            dns_secondary: "1.1.1.1"
   +            mtu: 1460
      mme:
      cfgFiles:
         config.json:
   @@ -206,6 +227,14 @@ config:
            key: "ACB9E480B30DC12C6BDD26BE882D2940"
            opc: "F5929B14A34AD906BC44D205242CD182"
            sqn: 135
   +        # test
   +        - imsiStart: "315010777712301"
   +          msisdnStart: "9999234455"
   +          count: 30
   +          apn: "internet"
   +          key: "000102030405060708090a0b0c0d0e0f"
   +          opc: "69d5c2eb2e2e624750541d3bbc692ba5"
   +          sqn: 135
         mmes:
            - id: 1
            mme_identity: "mme.omec.svc.prd.acc.gcp.aetherproject.net"

   $ git add .
   $ git commit -m “Update OMEC control plane for the new ACE”
   $ git review


Add subscribers to HSSDB
========================
Attach to one of the **cassandra-0** pod and run `hss-add-user.sh` script to add the subscribers.

.. code-block:: shell

   $ kubectl exec -it cassandra-0 /bin/bash -n omec
   # hss-add-user.sh arguments
   # count=${1}
   # imsi=${2}
   # msisdn=${3}
   # apn=${4}
   # key=${5:-'000102030405060708090a0b0c0d0e0f'}
   # opc=${6:-'69d5c2eb2e2e624750541d3bbc692ba5'}
   # sqn=${7:-'135'}
   # cassandra_ip=${8:-'localhost'}
   # mmeidentity=${9:-'mme.omec.svc.prd.acc.gcp.aetherproject.net'}
   # mmerealm=${10:-'omec.svc.prd.acc.gcp.aetherproject.net'}

   $ root@cassandra-0:/# ./hss-add-user.sh 10 315010777712301 9999234455 internet
