Active_eNBs = ( "eNB-Eurecom-LTEBox");
# 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  =  "eNB-Eurecom-LTEBox";

    // Tracking area code, 0x0000 and 0xfffe are reserved values
    tracking_area_code = 600;

    plmn_list = ( { mcc = 208; mnc = 93; mnc_length = 2; } );

    tr_s_preference     = "local_mac"

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

    component_carriers = (
      {
      node_function             = "NGFI_RCC_IF4p5";
      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                                = 2;
      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";
      /*  srs_BandwidthConfig                                =;
      srs_SubframeConfig                                 =;
      srs_ackNackST                                      =;
      srs_MaxUpPts                                       =;*/

      pusch_p0_Nominal                                   = -104;
      pusch_alpha                                        = "AL1";
      pucch_p0_Nominal                                   = -108;
      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;
      mbms_dedicated_serving_cell			= "DISABLE"
      }
    );


    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       = "192.168.15.130";
                              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 */


    ////////// MCE parameters:
    target_mce_m2_ip_address      = ( { ipv4       = "127.0.0.7";
                              ipv6       = "192:168:30::17";
                              active     = "yes";
                              preference = "ipv4";
                            }
                          );

    ///M2
    enable_enb_m2 = "yes";
   

    mbms_configuration_data_list = (
                {
                        mbsfn_sync_area = 0x0001;
                        mbms_service_area_list=(
                                {
                                        mbms_service_area=0x0001;
                                }
                        );
                }

    );

    NETWORK_INTERFACES :
    {
        ENB_INTERFACE_NAME_FOR_S1_MME            = "enp2s0";
        ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.10.15/24";
        ENB_INTERFACE_NAME_FOR_S1U               = "enp2s0";
        ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.10.15/24";
        ENB_PORT_FOR_S1U                         = 2152; # Spec 2152

        ENB_IPV4_ADDRESS_FOR_X2C                 = "127.0.0.2/24";
        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422

        ENB_IPV4_ADDRESS_FOR_M2C                 = "127.0.0.2/24";
        ENB_PORT_FOR_M2C                         = 36443; # Spec 36443
    };
  }
);

MCEs = (
        {
            MCE_ID    =  0xe00;

            MCE_name  =  "MCE-Vicomtech-LTEBox";

            //M2
            enable_mce_m2 = "yes";

            //M3
            enable_mce_m3 = "yes";

            target_mme_m3_ip_address      = ( { ipv4       = "127.0.0.18";
                              ipv6       = "192:168:30::17";
                              active     = "yes";
                              preference = "ipv4";
                            }
                          );



            NETWORK_INTERFACES :
            {
                MCE_INTERFACE_NAME_FOR_M2_ENB            = "lo";
                MCE_IPV4_ADDRESS_FOR_M2C                 = "127.0.0.7/24";
                MCE_PORT_FOR_M2C                         = 36443; # Spec 36443

                MCE_INTERFACE_NAME_FOR_M3_MME            = "lo";
                MCE_IPV4_ADDRESS_FOR_M3C                 = "127.0.0.3/24";
                MCE_PORT_FOR_M3C                         = 36444; # Spec 36444
            };

            plnm:
            {
                mcc = 208;
                mnc = 93;
                mnc_length = 2;
            };

            mbms_sched_info :
            {
                mcch_update_time = 10;
                mbms_area_config_list = (
                {
                   common_sf_allocation_period = 2; #rf4(0) rf8(1) rf16(2) rf32(3) rf64(4) rf128(5) rf256(6)
                   mbms_area_id = 0;
                   pmch_config_list = (
                   {
                        allocated_sf_end=32;
                        data_mcs=14;
                        mch_scheduling_period = 0; #rf8(0)
                        mbms_session_list = (
                        {
                                #plnm + service_id ->tmgi
                               plnm:
                                {
                                    mcc = 208;
                                    mnc = 93;
                                    mnc_length = 2;
                                }
                                service_id=0; #keep this allways as 0 (workaround for TUN if)
                                lcid=6; #this must be properly defined lcid:6+service:0 -> rab_id:6
                        }
                        );
                   }
                   );

                   mbms_sf_config_list = (
                   {
                        radioframe_allocation_period=1; #n1(0) n2(1) n4(2) n8(3) n16(4) n32(5)
                        radioframe_alloocation_offset=0;
                        num_frame="oneFrame";
                        subframe_allocation=57; #xx111001
                        //num_frame="fourFrame";
                        //subframe_allocation=14548987; #
                   }
                   );

                }
                );
            };


            mcch_config_per_mbsfn_area = (
            {
                mbsfn_area                = 0;
                pdcch_length              = 1; #s1(0), s2(1)
                repetition_period         = 0; #rf32(0), rf64(1), rf128(2), rf256(3)
                offset                    = 0;
                modification_period       = 0; #rf512(0; rf1024(1)
                subframe_allocation_info = 32; #BITSTRING (6bits -> one frame) xx100000
                mcs                       = 1; #n2(0), n7(1), n13(2), n19(3)
            }
            );

                  #);  #end mbms_scheduling_info

        }
);
MMEs = (
        {
            MME_ID    =  0xe00;

            MME_name  =  "MME-MBMS-Vicomtech-LTEBox";

            //M3
            enable_mme_m3 = "yes";
            NETWORK_INTERFACES :
            {
                MME_INTERFACE_NAME_FOR_M3_MCE            = "lo";
                MME_IPV4_ADDRESS_FOR_M3C                 = "127.0.0.18/24";
                MME_PORT_FOR_M3C                         = 36444; # Spec 36444

            };
        }
);


MACRLCs = (
	{
	num_cc = 1;
	tr_s_preference = "local_L1";
	tr_n_preference = "local_RRC";
        }  
);

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.1"; 
    	local_portc    = 50000;	
    	remote_portc   = 50000;
    	local_portd    = 50001;	
    	remote_portd   = 50001;
	local_rf       = "no"
    	tr_preference  = "udp_if4p5"
	nb_tx          = 2
	nb_rx          = 2
	att_tx         = 0
	att_rx         = 0;
	eNB_instances  = [0];
        is_slave       = "no";
    }
);  

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";
  }
);

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";
};
