|
|
@ -504,10 +504,6 @@ int rrc_nr::ue::pack_secondary_cell_group_config(asn1::dyn_octstring& packed_sec
|
|
|
|
pdcch_cfg_dedicated.setup().ctrl_res_set_to_add_mod_list[0].precoder_granularity =
|
|
|
|
pdcch_cfg_dedicated.setup().ctrl_res_set_to_add_mod_list[0].precoder_granularity =
|
|
|
|
asn1::rrc_nr::ctrl_res_set_s::precoder_granularity_opts::same_as_reg_bundle;
|
|
|
|
asn1::rrc_nr::ctrl_res_set_s::precoder_granularity_opts::same_as_reg_bundle;
|
|
|
|
|
|
|
|
|
|
|
|
cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.first_active_dl_bwp_id_present = true;
|
|
|
|
|
|
|
|
cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.first_active_dl_bwp_id = 1;
|
|
|
|
|
|
|
|
cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.ul_cfg_present = true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// search spaces
|
|
|
|
// search spaces
|
|
|
|
pdcch_cfg_dedicated.setup().search_spaces_to_add_mod_list_present = true;
|
|
|
|
pdcch_cfg_dedicated.setup().search_spaces_to_add_mod_list_present = true;
|
|
|
|
pdcch_cfg_dedicated.setup().search_spaces_to_add_mod_list.resize(1);
|
|
|
|
pdcch_cfg_dedicated.setup().search_spaces_to_add_mod_list.resize(1);
|
|
|
@ -581,8 +577,96 @@ int rrc_nr::ue::pack_secondary_cell_group_config(asn1::dyn_octstring& packed_sec
|
|
|
|
pdsch_cfg_dedicated.setup().p_zp_csi_rs_res_set.set_setup();
|
|
|
|
pdsch_cfg_dedicated.setup().p_zp_csi_rs_res_set.set_setup();
|
|
|
|
pdsch_cfg_dedicated.setup().p_zp_csi_rs_res_set.setup().zp_csi_rs_res_set_id = 0;
|
|
|
|
pdsch_cfg_dedicated.setup().p_zp_csi_rs_res_set.setup().zp_csi_rs_res_set_id = 0;
|
|
|
|
pdsch_cfg_dedicated.setup().p_zp_csi_rs_res_set.setup().zp_csi_rs_res_id_list.resize(1);
|
|
|
|
pdsch_cfg_dedicated.setup().p_zp_csi_rs_res_set.setup().zp_csi_rs_res_id_list.resize(1);
|
|
|
|
// pdsch_cfg_dedicated.setup().p_zp_csi_rs_res_set.setup().zp_csi_rs_res_id_list[0]=
|
|
|
|
|
|
|
|
// pdsch_cfg_dedicated.setup().p_zp_csi_rs_res_set.setup().zp_csi_rs_res_id_list
|
|
|
|
cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.first_active_dl_bwp_id_present = true;
|
|
|
|
|
|
|
|
cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.first_active_dl_bwp_id = 1;
|
|
|
|
|
|
|
|
cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.ul_cfg_present = true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// UL config dedicated
|
|
|
|
|
|
|
|
// PUCCH
|
|
|
|
|
|
|
|
auto& ul_config = cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.ul_cfg;
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp_present = true;
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pucch_cfg_present = true;
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pucch_cfg.set_setup();
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pucch_cfg.setup().format2_present = true;
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pucch_cfg.setup().format2.set_setup();
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pucch_cfg.setup().format2.setup().max_code_rate_present = true;
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pucch_cfg.setup().format2.setup().max_code_rate = pucch_max_code_rate_opts::zero_dot25;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// SR resources
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pucch_cfg.setup().sched_request_res_to_add_mod_list_present = true;
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pucch_cfg.setup().sched_request_res_to_add_mod_list.resize(1);
|
|
|
|
|
|
|
|
auto& sr_res1 = ul_config.init_ul_bwp.pucch_cfg.setup().sched_request_res_to_add_mod_list[0];
|
|
|
|
|
|
|
|
sr_res1.sched_request_res_id = 1;
|
|
|
|
|
|
|
|
sr_res1.sched_request_id = 0;
|
|
|
|
|
|
|
|
sr_res1.periodicity_and_offset_present = true;
|
|
|
|
|
|
|
|
sr_res1.periodicity_and_offset.set_sl40();
|
|
|
|
|
|
|
|
sr_res1.periodicity_and_offset.sl40() = 7;
|
|
|
|
|
|
|
|
sr_res1.res_present = true;
|
|
|
|
|
|
|
|
sr_res1.res = 0; // only PUCCH resource we have defined so far
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// DL data
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack_present = true;
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack.resize(5);
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack[0] = 8;
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack[1] = 7;
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack[2] = 6;
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack[3] = 5;
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack[4] = 4;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// PUCCH resources (only one format1 for the moment)
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pucch_cfg.setup().res_to_add_mod_list_present = true;
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pucch_cfg.setup().res_to_add_mod_list.resize(1);
|
|
|
|
|
|
|
|
auto& pucch_res1 = ul_config.init_ul_bwp.pucch_cfg.setup().res_to_add_mod_list[0];
|
|
|
|
|
|
|
|
pucch_res1.pucch_res_id = 0;
|
|
|
|
|
|
|
|
pucch_res1.start_prb = 0;
|
|
|
|
|
|
|
|
pucch_res1.format.set_format1();
|
|
|
|
|
|
|
|
pucch_res1.format.format1().init_cyclic_shift = 0;
|
|
|
|
|
|
|
|
pucch_res1.format.format1().nrof_symbols = 14;
|
|
|
|
|
|
|
|
pucch_res1.format.format1().start_symbol_idx = 0;
|
|
|
|
|
|
|
|
pucch_res1.format.format1().time_domain_occ = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// PUSCH config
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pusch_cfg_present = true;
|
|
|
|
|
|
|
|
ul_config.init_ul_bwp.pusch_cfg.set_setup();
|
|
|
|
|
|
|
|
auto& pusch_cfg_ded = ul_config.init_ul_bwp.pusch_cfg.setup();
|
|
|
|
|
|
|
|
pusch_cfg_ded.dmrs_ul_for_pusch_map_type_a_present = true;
|
|
|
|
|
|
|
|
pusch_cfg_ded.dmrs_ul_for_pusch_map_type_a.set_setup();
|
|
|
|
|
|
|
|
pusch_cfg_ded.dmrs_ul_for_pusch_map_type_a.setup().dmrs_add_position_present = true;
|
|
|
|
|
|
|
|
pusch_cfg_ded.dmrs_ul_for_pusch_map_type_a.setup().dmrs_add_position = dmrs_ul_cfg_s::dmrs_add_position_opts::pos1;
|
|
|
|
|
|
|
|
// PUSH power control skipped
|
|
|
|
|
|
|
|
pusch_cfg_ded.res_alloc = pusch_cfg_s::res_alloc_opts::res_alloc_type1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// UCI
|
|
|
|
|
|
|
|
pusch_cfg_ded.uci_on_pusch_present = true;
|
|
|
|
|
|
|
|
pusch_cfg_ded.uci_on_pusch.set_setup();
|
|
|
|
|
|
|
|
pusch_cfg_ded.uci_on_pusch.setup().beta_offsets_present = true;
|
|
|
|
|
|
|
|
pusch_cfg_ded.uci_on_pusch.setup().beta_offsets.set_semi_static();
|
|
|
|
|
|
|
|
auto& beta_offset_semi_static = pusch_cfg_ded.uci_on_pusch.setup().beta_offsets.semi_static();
|
|
|
|
|
|
|
|
beta_offset_semi_static.beta_offset_ack_idx1_present = true;
|
|
|
|
|
|
|
|
beta_offset_semi_static.beta_offset_ack_idx1 = 9;
|
|
|
|
|
|
|
|
beta_offset_semi_static.beta_offset_ack_idx2_present = true;
|
|
|
|
|
|
|
|
beta_offset_semi_static.beta_offset_ack_idx2 = 9;
|
|
|
|
|
|
|
|
beta_offset_semi_static.beta_offset_ack_idx3_present = true;
|
|
|
|
|
|
|
|
beta_offset_semi_static.beta_offset_ack_idx3 = 9;
|
|
|
|
|
|
|
|
beta_offset_semi_static.beta_offset_csi_part1_idx1_present = true;
|
|
|
|
|
|
|
|
beta_offset_semi_static.beta_offset_csi_part1_idx2_present = true;
|
|
|
|
|
|
|
|
beta_offset_semi_static.beta_offset_csi_part1_idx1 = 6;
|
|
|
|
|
|
|
|
beta_offset_semi_static.beta_offset_csi_part1_idx2 = 6;
|
|
|
|
|
|
|
|
beta_offset_semi_static.beta_offset_csi_part2_idx1_present = true;
|
|
|
|
|
|
|
|
beta_offset_semi_static.beta_offset_csi_part2_idx1 = 6;
|
|
|
|
|
|
|
|
beta_offset_semi_static.beta_offset_csi_part2_idx2_present = true;
|
|
|
|
|
|
|
|
beta_offset_semi_static.beta_offset_csi_part2_idx2 = 6;
|
|
|
|
|
|
|
|
pusch_cfg_ded.uci_on_pusch.setup().scaling = uci_on_pusch_s::scaling_opts::f1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ul_config.first_active_ul_bwp_id_present = true;
|
|
|
|
|
|
|
|
ul_config.first_active_ul_bwp_id = 0;
|
|
|
|
|
|
|
|
// Serving cell config (only to setup)
|
|
|
|
|
|
|
|
cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.pdcch_serving_cell_cfg_present = true;
|
|
|
|
|
|
|
|
cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.pdcch_serving_cell_cfg.set_setup();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.pdsch_serving_cell_cfg_present = true;
|
|
|
|
|
|
|
|
cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.pdsch_serving_cell_cfg.set_setup();
|
|
|
|
|
|
|
|
|
|
|
|
cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg_present = true;
|
|
|
|
cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg_present = true;
|
|
|
|
cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.set_setup();
|
|
|
|
cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.set_setup();
|
|
|
@ -621,6 +705,7 @@ int rrc_nr::ue::pack_secondary_cell_group_config(asn1::dyn_octstring& packed_sec
|
|
|
|
dl_carrier.offset_to_carrier = 0;
|
|
|
|
dl_carrier.offset_to_carrier = 0;
|
|
|
|
dl_carrier.subcarrier_spacing = subcarrier_spacing_opts::khz15;
|
|
|
|
dl_carrier.subcarrier_spacing = subcarrier_spacing_opts::khz15;
|
|
|
|
dl_carrier.carrier_bw = 52;
|
|
|
|
dl_carrier.carrier_bw = 52;
|
|
|
|
|
|
|
|
|
|
|
|
cell_group_cfg_pack.sp_cell_cfg.recfg_with_sync.sp_cell_cfg_common.dl_cfg_common.init_dl_bwp_present = true;
|
|
|
|
cell_group_cfg_pack.sp_cell_cfg.recfg_with_sync.sp_cell_cfg_common.dl_cfg_common.init_dl_bwp_present = true;
|
|
|
|
cell_group_cfg_pack.sp_cell_cfg.recfg_with_sync.sp_cell_cfg_common.dl_cfg_common.init_dl_bwp.generic_params
|
|
|
|
cell_group_cfg_pack.sp_cell_cfg.recfg_with_sync.sp_cell_cfg_common.dl_cfg_common.init_dl_bwp.generic_params
|
|
|
|
.location_and_bw = 14025;
|
|
|
|
.location_and_bw = 14025;
|
|
|
|