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)
    nof_prb = 1;
  };
  cqi_report_cnfg =
  {
    mode = "periodic";
    simultaneousAckCQI = true;
    period = 40; // in ms
    subframe = [0, 10, 20, 30];
    nof_prb = 1;
    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
);
