{{/*
Copyright 2019-present Open Networking Foundation

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/}}

{{- $plmn := tuple .Values.config.plmn.mcc .Values.config.plmn.mnc | include "oaisim.plmn" | quote -}}
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: ue
  labels:
{{ tuple "ue" . | include "oaisim.metadata_labels" | indent 4 }}
data:
  ue_comac_test.conf: |
    PLMN: {
      PLMN0: {
             FULLNAME={{ .Values.config.plmn.name | quote }};
             SHORTNAME={{ .Values.config.plmn.short_name | quote }};
             MCC={{ .Values.config.plmn.mcc | quote }};
             MNC={{ .Values.config.plmn.mnc | quote }};
      };
    };
    UE0: {
      USER: {
            IMEI="356113022094149";
            MANUFACTURER="OAISIM";
            MODEL="OAISIM";
            PIN="0000";
      };
      SIM: {
           MSIN={{ .Values.config.ue.sim.msin | quote }};
           USIM_API_K={{ .Values.config.ue.sim.api_key | quote }};
           OPC={{ .Values.config.ue.sim.opc | quote }};
           MSISDN={{ .Values.config.ue.sim.msisdn | quote }};
      };
      HPLMN= {{ $plmn }};
      UCPLMN_LIST = ();
      OPLMN_LIST = ({{ $plmn }});
      OCPLMN_LIST = ();
      FPLMN_LIST = ();
      EHPLMN_LIST= ();
    };
  nfapi.conf: |
    log_config = {
      global_log_level                      ="info";
      global_log_verbosity                  ="medium";
      hw_log_level                          ="info";
      hw_log_verbosity                      ="medium";
      phy_log_level                         ="info";
      phy_log_verbosity                     ="medium";
      mac_log_level                         ="info";
      mac_log_verbosity                     ="medium";
      rlc_log_level                         ="info";
      rlc_log_verbosity                     ="medium";
      pdcp_log_level                        ="info";
      pdcp_log_verbosity                    ="medium";
      rrc_log_level                         ="info";
      rrc_log_verbosity                     ="full";
    };

    L1s = (
      {
        num_cc = 1;
        tr_n_preference = "nfapi";
        local_n_if_name  = "lo";
        remote_n_address = "127.0.0.2";
        local_n_address  = "127.0.0.1";
        local_n_portc    = 50000;
        remote_n_portc   = 50001;
        local_n_portd    = 50010;
        remote_n_portd   = 50011;
      }
    );

    RUs = (
      {
        local_rf       = "yes"
        nb_tx          = 1
        nb_rx          = 1
        att_tx         = 90
        att_rx         = 0;
        bands          = [7,38,42,43];
        max_pdschReferenceSignalPower = -27;
        max_rxgain                    = 125;
      }
    );
  ue-gen-usim.sh: |
{{ tuple "bin/_ue-gen-usim.sh.tpl" . | include "oaisim.template" | indent 4 }}
  ue-init.sh: |
{{ tuple "bin/_ue-init.sh.tpl" . | include "oaisim.template" | indent 4 }}
  ue-run.sh: |
{{ tuple "bin/_ue-run.sh.tpl" . | include "oaisim.template" | indent 4 }}
