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]; // 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 = ${cell.tac};
    pci = ${cell.pci};
    root_seq_idx = ${cell.root_seq_idx};
    dl_earfcn = ${cell.dl_earfcn};
    //ul_earfcn = 20850;
    ho_active = true;

    // 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 = ${hex((int(enb.id)<<8) + int(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
);
