COMAC-114 Write helm chart for OAI eNB and UE

Add helm chart to deploy OAI eNB and UE needed for COMAC-in-a-Box.

Change-Id: I5157d86c77eeb5f2041e9fa09f7661aca5528b8f
diff --git a/oaisim/templates/configmap-enb.yaml b/oaisim/templates/configmap-enb.yaml
new file mode 100644
index 0000000..68c7422
--- /dev/null
+++ b/oaisim/templates/configmap-enb.yaml
@@ -0,0 +1,247 @@
+{{/*
+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.
+*/}}
+
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ .Values.conf.enb.name }}
+data:
+  nfapi.conf: |
+    Active_eNBs = ("eNB-OAISIM-LTEBox");
+    Asn1_verbosity = "none";
+
+    eNBs = (
+      {
+        ////////// Identification parameters:
+        eNB_ID    =  0xe00;
+        cell_type =  "CELL_MACRO_ENB";
+        eNB_name  =  "eNB-OAISIM-LTEBox";
+
+        ////////// Tracking area code, 0x0000 and 0xfffe are reserved values:
+        tracking_area_code = 1;
+        plmn_list = (
+          {
+            mcc = {{ .Values.conf.plmn.mcc }};
+            mnc = {{ .Values.conf.plmn.mnc }};
+            mnc_length = {{ .Values.conf.plmn.mnc_length }};
+          }
+        );
+        tr_s_preference     = "local_mac"
+
+        ////////// Physical parameters:
+        component_carriers = (
+          {
+            node_function                                                   = "3GPP_eNODEB";
+            node_timing                                                     = "synch_to_ext_device";
+            node_synch_ref                                                  = 0;
+            frame_type                                                      = "FDD";
+            tdd_config                                                      = 3;
+            tdd_config_s                                                    = 0;
+            prefix_type                                                     = "NORMAL";
+            eutra_band                                                      = 7;
+            downlink_frequency                                              = 2685000000L;
+            uplink_frequency_offset                                         = -120000000;
+            Nid_cell                                                        = 0;
+            N_RB_DL                                                         = 50;
+            Nid_cell_mbsfn                                                  = 0;
+            nb_antenna_ports                                                = 1;
+            nb_antennas_tx                                                  = 1;
+            nb_antennas_rx                                                  = 1;
+            tx_gain                                                         = 90;
+            rx_gain                                                         = 125;
+            pbch_repetition                                                 = "FALSE";
+            prach_root                                                      = 0;
+            prach_config_index                                              = 0;
+            prach_high_speed                                                = "DISABLE";
+            prach_zero_correlation                                          = 1;
+            prach_freq_offset                                               = 2;
+            pucch_delta_shift                                               = 1;
+            pucch_nRB_CQI                                                   = 0;
+            pucch_nCS_AN                                                    = 0;
+            pucch_n1_AN                                                     = 0;
+            pdsch_referenceSignalPower                                      = -27;
+            pdsch_p_b                                                       = 0;
+            pusch_n_SB                                                      = 1;
+            pusch_enable64QAM                                               = "DISABLE";
+            pusch_hoppingMode                                               = "interSubFrame";
+            pusch_hoppingOffset                                             = 0;
+            pusch_groupHoppingEnabled                                       = "ENABLE";
+            pusch_groupAssignment                                           = 0;
+            pusch_sequenceHoppingEnabled                                    = "DISABLE";
+            pusch_nDMRS1                                                    = 1;
+            phich_duration                                                  = "NORMAL";
+            phich_resource                                                  = "ONESIXTH";
+            srs_enable                                                      = "DISABLE";
+
+            pusch_p0_Nominal                                                = -96;
+            pusch_alpha                                                     = "AL1";
+            pucch_p0_Nominal                                                = -104;
+            msg3_delta_Preamble                                             = 6;
+            pucch_deltaF_Format1                                            = "deltaF2";
+            pucch_deltaF_Format1b                                           = "deltaF3";
+            pucch_deltaF_Format2                                            = "deltaF0";
+            pucch_deltaF_Format2a                                           = "deltaF0";
+            pucch_deltaF_Format2b                                           = "deltaF0";
+
+            rach_numberOfRA_Preambles                                       = 64;
+            rach_preamblesGroupAConfig                                      = "DISABLE";
+            rach_powerRampingStep                                           = 4;
+            rach_preambleInitialReceivedTargetPower                         = -108;
+            rach_preambleTransMax                                           = 10;
+            rach_raResponseWindowSize                                       = 10;
+            rach_macContentionResolutionTimer                               = 48;
+            rach_maxHARQ_Msg3Tx                                             = 4;
+
+            pcch_default_PagingCycle                                        = 128;
+            pcch_nB                                                         = "oneT";
+            bcch_modificationPeriodCoeff                                    = 2;
+            ue_TimersAndConstants_t300                                      = 1000;
+            ue_TimersAndConstants_t301                                      = 1000;
+            ue_TimersAndConstants_t310                                      = 1000;
+            ue_TimersAndConstants_t311                                      = 10000;
+            ue_TimersAndConstants_n310                                      = 20;
+            ue_TimersAndConstants_n311                                      = 1;
+            ue_TransmissionMode                                             = 1;
+
+            //Parameters for SIB18
+            rxPool_sc_CP_Len                                                = "normal";
+            rxPool_sc_Period                                                = "sf40";
+            rxPool_data_CP_Len                                              = "normal";
+            rxPool_ResourceConfig_prb_Num                                   = 20;
+            rxPool_ResourceConfig_prb_Start                                 = 5;
+            rxPool_ResourceConfig_prb_End                                   = 44;
+            rxPool_ResourceConfig_offsetIndicator_present                   = "prSmall";
+            rxPool_ResourceConfig_offsetIndicator_choice                    = 0;
+            rxPool_ResourceConfig_subframeBitmap_present                    = "prBs40";
+            rxPool_ResourceConfig_subframeBitmap_choice_bs_buf              = "00000000000000000000";
+            rxPool_ResourceConfig_subframeBitmap_choice_bs_size             = 5;
+            rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused      = 0;
+
+            // Parameters for SIB19
+            discRxPool_cp_Len                                               = "normal"
+            discRxPool_discPeriod                                           = "rf32"
+            discRxPool_numRetx                                              = 1;
+            discRxPool_numRepetition                                        = 2;
+            discRxPool_ResourceConfig_prb_Num                               = 5;
+            discRxPool_ResourceConfig_prb_Start                             = 3;
+            discRxPool_ResourceConfig_prb_End                               = 21;
+            discRxPool_ResourceConfig_offsetIndicator_present               = "prSmall";
+            discRxPool_ResourceConfig_offsetIndicator_choice                = 0;
+            discRxPool_ResourceConfig_subframeBitmap_present                = "prBs40";
+            discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf          = "f0ffffffff";
+            discRxPool_ResourceConfig_subframeBitmap_choice_bs_size         = 5;
+            discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused  = 0;
+          }
+        );
+
+        srb1_parameters :
+        {
+          # timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
+          timer_poll_retransmit    = 80;
+
+          # timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
+          timer_reordering         = 35;
+
+          # timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
+          timer_status_prohibit    = 0;
+
+          # poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
+          poll_pdu                 =  4;
+
+          # poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
+          poll_byte                =  99999;
+
+          # max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
+          max_retx_threshold       =  4;
+        }
+
+        # ------- SCTP definitions
+        SCTP :
+        {
+          # Number of streams to use in input/output
+          SCTP_INSTREAMS  = 2;
+          SCTP_OUTSTREAMS = 2;
+        };
+
+        ////////// MME parameters:
+        mme_ip_address = (
+          {
+            ipv4       = {{ .Values.conf.enb.mme.address | quote }};
+            ipv6       = "192:168:30::17";
+            active     = "yes";
+            preference = "ipv4";
+          }
+       );
+
+        NETWORK_INTERFACES :
+        {
+          ENB_INTERFACE_NAME_FOR_S1_MME            = {{ .Values.conf.enb.networks.s1_mme.interface | quote }};
+          ENB_IPV4_ADDRESS_FOR_S1_MME              = S1_MME_IP_ADDRESS;
+          ENB_INTERFACE_NAME_FOR_S1U               = {{ .Values.conf.enb.networks.s1u.interface | quote }};
+          ENB_IPV4_ADDRESS_FOR_S1U                 = S1U_IP_ADDRESS;
+          ENB_PORT_FOR_S1U                         = {{ .Values.conf.enb.networks.s1u.port }}; # Spec 2152
+          ENB_IPV4_ADDRESS_FOR_X2C                 = X2C_IP_ADDRESS;
+          ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
+        };
+      }
+    );
+
+    MACRLCs = (
+      {
+        num_cc = 1;
+        local_s_if_name  = "lo:";
+        remote_s_address = "127.0.0.1";
+        local_s_address  = "127.0.0.2";
+        local_s_portc    = 50001;
+        remote_s_portc   = 50000;
+        local_s_portd    = 50011;
+        remote_s_portd   = 50010;
+        tr_s_preference  = "nfapi";
+        tr_n_preference  = "local_RRC";
+      }
+    );
+
+    THREAD_STRUCT = (
+      {
+        #three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
+        parallel_config    = "PARALLEL_RU_L1_TRX_SPLIT";
+        #two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
+        worker_config      = "WORKER_ENABLE";
+      }
+    );
+
+    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                     ="high";
+        rlc_log_level                         ="info";
+        rlc_log_verbosity                     ="medium";
+        pdcp_log_level                        ="info";
+        pdcp_log_verbosity                    ="medium";
+        rrc_log_level                         ="info";
+        rrc_log_verbosity                     ="medium";
+     };
+  enb-init.sh: |
+{{ tuple "bin/_enb-init.sh.tpl" . | include "oaisim.template" | indent 4 }}
+  enb-run.sh: |
+{{ tuple "bin/_enb-run.sh.tpl" . | include "oaisim.template" | indent 4 }}