mac_cnfg =
{
  phr_cnfg =
  {
    dl_pathloss_change = "dB3"; // Valid: 1, 3, 6 or INFINITY
    periodic_phr_timer = 50;
    prohibit_phr_timer = 0;
  };
  ulsch_cnfg =
  {
    max_harq_tx = 4;
    periodic_bsr_timer = 20; // in ms
    retx_bsr_timer = 320;   // in ms
  };

  time_alignment_timer = -1; // -1 is infinity
};

phy_cnfg =
{
  phich_cnfg =
  {
    duration  = "Normal";
    resources = "1/6";
  };

  pusch_cnfg_ded =
  {
    beta_offset_ack_idx = 6;
    beta_offset_ri_idx  = 6;
    beta_offset_cqi_idx = 6;
  };

  // PUCCH-SR resources are scheduled on time-frequeny domain first, then multiplexed in the same resource.
  sched_request_cnfg =
  {
    dsr_trans_max = 64;
    period = 20;       // in ms
    subframe = [1, 11, 21, 31]; // vector of subframe indices allowed for SR transmissions

    // number of PRBs on each extreme used for SR (total prb is twice this number)
% if int(enb['num_prb']) <= 6:
    nof_prb = 1;
% else:
    nof_prb = 2;
% endif
  };
  cqi_report_cnfg =
  {
    mode = "periodic";
    simultaneousAckCQI = true;
    period = 40; // in ms
    subframe = [0, 10, 20, 30];
% if int(enb['num_prb']) <= 6:
    nof_prb = 1;
% else:
    nof_prb = 2;
% endif
    m_ri = 8; // RI period in CQI period
  };
};

cell_list =
(
%for cell in enb.cell_list:
  ${',' if loop.index != 0 else ''}
  {
    rf_port = ${cell.rf_port};
    cell_id = ${cell.cell_id};
    tac = 0x0001;
    pci = ${loop.index + 1};
    root_seq_idx = ${loop.index + 204};
    dl_earfcn = ${cell.dl_earfcn};
    //ul_earfcn = 20850;
    ho_active = false;

    // CA cells
    scell_list = (
%for scell_id in cell.scell_list:
        ${',' if loop.index != 0 else ''}
        {
          cell_id = ${scell_id};
          cross_carrier_scheduling = false;
          scheduling_cell_id = ${cell.cell_id};
          ul_allowed = true;
        }
%endfor
    )

    // Cells available for handover
    meas_cell_list =
    (
%for ncell in enb.cell_list:
        <% loop.my_num_items = 0 if loop.index == 0 else loop.my_num_items %>
%if ncell.cell_id in cell.ncell_list:
        ${',' if loop.my_num_items != 0 else ''}
        <% loop.my_num_items += 1 %>
        {
          eci = ${ncell.cell_id};
          dl_earfcn = ${ncell.dl_earfcn};
          pci = ${ncell.pci};
        }
%endif
%endfor
    );

    // ReportCfg (only A3 supported)
    meas_report_desc = {
      a3_report_type = "RSRP";
      a3_offset = 6;
      a3_hysteresis = 0;
      a3_time_to_trigger = 480;
      rsrq_config = 4;
    };
  }
%endfor
);
