Active_eNBs = ( "rcc-in-docker");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";

eNBs =
(
 {
    # real_time choice in {hard, rt-preempt, no}
    real_time       =  "no";

    ////////// Identification parameters:
    eNB_ID    =  0xe00;

    cell_type =  "CELL_MACRO_ENB";

    eNB_name  =  "rcc-in-docker";

    // Tracking area code, 0x0000 and 0xfffe are reserved values
    tracking_area_code = 1;
    plmn_list = ( { mcc = 208; mnc = 92; mnc_length = 2; } );

    ////////// Physical parameters:

    component_carriers = (
      {
        node_function                             = "NGFI_RCC_IF4p5";
        node_timing                               = "synch_to_ext_device";
        node_synch_ref                            = 0;
        frame_type                                = "TDD";
        tdd_config                                = 1;
        tdd_config_s                              = 0;
        prefix_type                               = "NORMAL";
        eutra_band                                = 40;
        downlink_frequency                        = 2350000000L;
        uplink_frequency_offset                   = 0;
        Nid_cell                                  = 0;
        N_RB_DL                                   = 25;
        Nid_cell_mbsfn                            = 0;
        nb_antenna_ports                          = 1;
        nb_antennas_tx                            = 1;
        nb_antennas_rx                            = 1;
        tx_gain                                   = 90;
        rx_gain                                   = 125;
        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                             = 1;
        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";
      /*  srs_BandwidthConfig                     =;
        srs_SubframeConfig                        =;
        srs_ackNackST                             =;
        srs_MaxUpPts                              =;*/

        pusch_p0_Nominal                                   = -96;
        pusch_alpha                                        = "AL1";
        pucch_p0_Nominal                                   = -106;
        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_sizeOfRA_PreamblesGroupA                      = ;
        rach_messageSizeGroupA                             = ;
        rach_messagePowerOffsetGroupB                      = ;
      */
        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;
      }
    );


    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       = "172.21.18.48";
                              ipv6       = "192:168:30::17";
                              port       = 36412 ;
                              active     = "yes";
                              preference = "ipv4";
                            }
                          );

    enable_measurement_reports = "no";

    ///X2
    enable_x2         = "no";
    t_reloc_prep      = 1000;      /* unit: millisecond */
    tx2_reloc_overall = 2000;      /* unit: millisecond */
    t_dc_prep         = 1000;      /* unit: millisecond */
    t_dc_overall      = 2000;      /* unit: millisecond */

    NETWORK_INTERFACES :
    {
        ENB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
        ENB_IPV4_ADDRESS_FOR_S1_MME              = "172.21.18.45";
        ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
        ENB_IPV4_ADDRESS_FOR_S1U                 = "172.21.18.45";
        ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
        ENB_IPV4_ADDRESS_FOR_X2C                 = "172.21.18.45";
        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
    };

    log_config :
    {
      global_log_level                      ="info";
      hw_log_level                          ="info";
      phy_log_level                         ="info";
      mac_log_level                         ="info";
      rlc_log_level                         ="info";
      pdcp_log_level                        ="info";
      rrc_log_level                         ="info";
   };

  }
);
MACRLCs = (
  {
    num_cc          = 1;
    tr_s_preference = "local_L1";
    tr_n_preference = "local_RRC";
    scheduler_mode  = "fairRR";
    puSch10xSnr     =  200;
    puCch10xSnr     =  200;
  }
);

L1s = (
  {
    num_cc          = 1;
    tr_n_preference = "local_mac";
  }
);

RUs = (
  {
    local_if_name  = "lo";
    remote_address = "127.0.0.2";
    local_address  = "127.0.0.3";
    local_portc    = 50000;
    remote_portc   = 50000;
    local_portd    = 50001;
    remote_portd   = 50001;
    local_rf       = "no"
    tr_preference  = "udp_if4p5"
    nb_tx          = 1
    nb_rx          = 1
    att_tx         = 6
    att_rx         = 6;
    eNB_instances  = [0];
  }
);

THREAD_STRUCT = (
  {
    #three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
    parallel_config    = "PARALLEL_SINGLE_THREAD";
    #two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
    worker_config      = "WORKER_ENABLE";
  }
);
