Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
canghaiwuhen
OpenXG-RAN
Commits
f51045a3
Commit
f51045a3
authored
Nov 04, 2020
by
r.karey
Browse files
Options
Browse Files
Download
Plain Diff
Rebased to latest develop branch
parents
7d8460e5
a3456b52
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
496 additions
and
267 deletions
+496
-267
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/LAYER2/NR_MAC_gNB/config.c
+43
-94
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
+12
-10
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+103
-100
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+307
-7
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
+2
-1
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+13
-33
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
+15
-19
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+0
-2
No files found.
openair2/LAYER2/NR_MAC_gNB/config.c
View file @
f51045a3
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
View file @
f51045a3
...
...
@@ -112,8 +112,8 @@ int get_diff_rsrp(uint8_t index, int strongest_rsrp) {
}
int
checkTargetSSBInFirst64TCIStates_pdschConfig
(
int
ssb_index_t
,
int
Mod_idP
,
int
UE_id
)
{
NR_UE_
list_t
*
UE_list
=
&
RC
.
nrmac
[
Mod_idP
]
->
UE_list
;
NR_CellGroupConfig_t
*
secondaryCellGroup
=
UE_
list
->
secondaryCellGroup
[
UE_id
]
;
NR_UE_
info_t
*
UE_info
=
&
RC
.
nrmac
[
Mod_idP
]
->
UE_info
;
NR_CellGroupConfig_t
*
secondaryCellGroup
=
UE_
info
->
secondaryCellGroup
[
UE_id
]
;
int
nb_tci_states
=
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
initialDownlinkBWP
->
pdsch_Config
->
choice
.
setup
->
tci_StatesToAddModList
->
list
.
count
;
NR_TCI_State_t
*
tci
=
NULL
;
int
i
;
...
...
@@ -139,8 +139,8 @@ int checkTargetSSBInFirst64TCIStates_pdschConfig(int ssb_index_t, int Mod_idP, i
}
int
checkTargetSSBInTCIStates_pdcchConfig
(
int
ssb_index_t
,
int
Mod_idP
,
int
UE_id
)
{
NR_UE_
list_t
*
UE_list
=
&
RC
.
nrmac
[
Mod_idP
]
->
UE_list
;
NR_CellGroupConfig_t
*
secondaryCellGroup
=
UE_
list
->
secondaryCellGroup
[
UE_id
]
;
NR_UE_
info_t
*
UE_info
=
&
RC
.
nrmac
[
Mod_idP
]
->
UE_info
;
NR_CellGroupConfig_t
*
secondaryCellGroup
=
UE_
info
->
secondaryCellGroup
[
UE_id
]
;
int
nb_tci_states
=
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
initialDownlinkBWP
->
pdsch_Config
->
choice
.
setup
->
tci_StatesToAddModList
->
list
.
count
;
NR_TCI_State_t
*
tci
=
NULL
;
NR_TCI_StateId_t
*
tci_id
=
NULL
;
...
...
@@ -241,15 +241,15 @@ void tci_handling(module_id_t Mod_idP, int UE_id, int CC_id, NR_UE_sched_ctrl_t
int
ssb_rsrp
[
MAX_NUM_SSB
]
=
{
0
};
uint8_t
idx
=
0
;
int
bwp_id
=
1
;
NR_UE_
list_t
*
UE_list
=
&
RC
.
nrmac
[
Mod_idP
]
->
UE_list
;
NR_UE_
info_t
*
UE_info
=
&
RC
.
nrmac
[
Mod_idP
]
->
UE_info
;
//NR_COMMON_channels_t *cc = RC.nrmac[Mod_idP]->common_channels;
NR_CellGroupConfig_t
*
secondaryCellGroup
=
UE_
list
->
secondaryCellGroup
[
UE_id
];
NR_CellGroupConfig_t
*
secondaryCellGroup
=
UE_
info
->
secondaryCellGroup
[
UE_id
];
NR_BWP_Downlink_t
*
bwp
=
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_id
-
1
];
//NR_CSI_MeasConfig_t *csi_MeasConfig = UE_
list
->secondaryCellGroup[UE_id]->spCellConfig->spCellConfigDedicated->csi_MeasConfig->choice.setup;
//NR_CSI_MeasConfig_t *csi_MeasConfig = UE_
info
->secondaryCellGroup[UE_id]->spCellConfig->spCellConfigDedicated->csi_MeasConfig->choice.setup;
//bwp indicator
int
n_dl_bwp
=
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
count
;
uint8_t
nr_ssbri_cri
=
0
;
uint8_t
nb_of_csi_ssb_report
=
UE_
list
->
csi_report_template
[
UE_id
][
cqi_idx
].
nb_of_csi_ssb_report
;
uint8_t
nb_of_csi_ssb_report
=
UE_
info
->
csi_report_template
[
UE_id
][
cqi_idx
].
nb_of_csi_ssb_report
;
//uint8_t bitlen_ssbri = log (nb_of_csi_ssb_report)/log (2);
//uint8_t max_rsrp_reported = -1;
int
better_rsrp_reported
=
-
140
-
(
-
0
);
/*minimum_measured_RSRP_value - minimum_differntail_RSRP_value*/
//considering the minimum RSRP value as better RSRP initially
...
...
@@ -658,6 +658,7 @@ void copy_nr_ulreq(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
}
*/
void
nr_schedule_pusch
(
int
Mod_idP
,
int
UE_id
,
int
num_slots_per_tdd
,
...
...
@@ -746,7 +747,7 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
const
int
UE_id
=
0
;
const
int
bwp_id
=
1
;
int
pucch_sched
,
pucch_occ
;
gNB_MAC_INST
*
gNB
=
RC
.
nrmac
[
module_idP
];
NR_UE_info_t
*
UE_info
=
&
gNB
->
UE_info
;
NR_UE_sched_ctrl_t
*
ue_sched_ctl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
...
...
@@ -760,6 +761,7 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
start_meas
(
&
RC
.
nrmac
[
module_idP
]
->
eNB_scheduler
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_DLSCH_ULSCH_SCHEDULER
,
VCD_FUNCTION_IN
);
pdcp_run
(
&
ctxt
);
/* send tick to RLC and RRC every ms */
if
((
slot
&
((
1
<<
*
scc
->
ssbSubcarrierSpacing
)
-
1
))
==
0
)
{
void
nr_rlc_tick
(
int
frame
,
int
subframe
);
...
...
@@ -838,7 +840,7 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
nr_acknack_scheduling
(
module_idP
,
UE_id
,
frame
,
slot
,
num_slots_per_tdd
,
&
pucch_sched
,
&
pucch_occ
);
//TCI handling function
//tci_handling(module_idP, UE_id, CC_id, ue_sched_ctl, frame, slot);
nr_schedule_uss_dlsch_phytest
(
module_idP
,
frame
,
slot
,
&
UE_
list
->
UE_sched_ctrl
[
UE_id
].
sched_pucch
[
pucch_sched
][
pucch_occ
],
NULL
);
nr_schedule_uss_dlsch_phytest
(
module_idP
,
frame
,
slot
,
&
UE_
info
->
UE_sched_ctrl
[
UE_id
].
sched_pucch
[
pucch_sched
][
pucch_occ
],
NULL
);
ue_sched_ctl
->
ta_apply
=
false
;
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
f51045a3
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
f51045a3
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
f51045a3
...
...
@@ -346,7 +346,7 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
LOG_I
(
MAC
,
"reset RA state information for RA-RNTI %04x
\n
"
,
ra
->
rnti
);
const
int
UE_id
=
add_new_nr_ue
(
gnb_mod_idP
,
ra
->
rnti
);
UE_info
->
secondaryCellGroup
[
UE_id
]
=
ra
->
secondaryCellGroup
;
compute_csi_bitlen
(
ra
->
secondaryCellGroup
,
UE_info
,
UE_id
);
compute_csi_bitlen
(
ra
->
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
csi_MeasConfig
->
choice
.
setup
,
UE_info
,
UE_id
,
gnb_mod_idP
);
UE_info
->
UE_beam_index
[
UE_id
]
=
ra
->
beam_id
;
struct
NR_ServingCellConfig__downlinkBWP_ToAddModList
*
bwpList
=
ra
->
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
;
AssertFatal
(
bwpList
->
list
.
count
==
1
,
...
...
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
View file @
f51045a3
...
...
@@ -344,7 +344,7 @@ uint16_t compute_pucch_prb_size(uint8_t format,
uint8_t
n_symb
,
uint8_t
n_re_ctrl
);
void
compute_csi_bitlen
(
NR_CellGroupConfig_t
*
secondaryCellGroup
,
NR_UE_info_t
*
UE_info
,
int
UE_id
);
void
compute_csi_bitlen
(
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
NR_UE_info_t
*
UE_info
,
int
UE_id
,
module_id_t
Mod_idP
);
int
get_dlscs
(
nfapi_nr_config_request_t
*
cfg
);
...
...
@@ -425,4 +425,5 @@ int16_t ssb_index_from_prach(module_id_t module_idP,
void
find_SSB_and_RO_available
(
module_id_t
module_idP
);
void
handle_nr_uci
(
NR_UL_IND_t
*
UL_info
,
NR_UE_sched_ctrl_t
*
sched_ctrl
,
NR_mac_stats_t
*
stats
,
int
target_snrx10
);
#endif
/*__LAYER2_NR_MAC_PROTO_H__*/
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
f51045a3
...
...
@@ -315,37 +315,6 @@ typedef struct NR_UE_old_sched {
uint8_t
numDmrsCdmGrpsNoData
;
}
NR_UE_ret_info_t
;
typedef
enum
{
INACTIVE
=
0
,
ACTIVE_NOT_SCHED
,
ACTIVE_SCHED
}
NR_UL_harq_states_t
;
typedef
struct
NR_UE_ul_harq
{
uint8_t
ndi
;
uint8_t
round
;
uint16_t
last_tx_slot
;
NR_UL_harq_states_t
state
;
}
NR_UE_ul_harq_t
;
typedef
struct
{
uint8_t
nb_ssbri_cri
;
uint8_t
cri_ssbri_bitlen
;
uint8_t
rsrp_bitlen
;
uint8_t
diff_rsrp_bitlen
;
}
CRI_SSBRI_RSRP_bitlen_t
;
#define MAX_CSI_RESOURCE_SET_IN_CSI_RESOURCE_CONFIG 16
typedef
struct
nr_csi_report
{
NR_CSI_ReportConfig__reportQuantity_PR
reportQuantity_type
;
NR_CSI_ResourceConfig__csi_RS_ResourceSetList_PR
CSI_Resource_type
;
uint8_t
nb_of_nzp_csi_report
;
uint8_t
nb_of_csi_ssb_report
;
CRI_SSBRI_RSRP_bitlen_t
CSI_report_bitlen
[
MAX_CSI_RESOURCE_SET_IN_CSI_RESOURCE_CONFIG
];
}
nr_csi_report_t
;
//! fixme : need to enhace for the multiple TB CQI report
...
...
@@ -394,6 +363,19 @@ typedef struct NR_UE_sr {
bool
ul_SR
[
MAX_SR_BITLEN
];
}
NR_UE_sr_t
;
typedef
enum
{
INACTIVE
=
0
,
ACTIVE_NOT_SCHED
,
ACTIVE_SCHED
}
NR_UL_harq_states_t
;
typedef
struct
NR_UE_ul_harq
{
uint8_t
ndi
;
uint8_t
round
;
uint16_t
last_tx_slot
;
NR_UL_harq_states_t
state
;
}
NR_UE_ul_harq_t
;
typedef
struct
{
uint8_t
nb_ssbri_cri
;
uint8_t
cri_ssbri_bitlen
;
...
...
@@ -412,8 +394,6 @@ typedef struct{
typedef
struct
nr_csi_report
{
NR_CSI_ReportConfig__reportQuantity_PR
reportQuantity_type
;
long
periodicity
;
uint16_t
offset
;
long
**
SSB_Index_list
;
long
**
CSI_Index_list
;
// uint8_t nb_of_nzp_csi_report;
...
...
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
View file @
f51045a3
...
...
@@ -104,34 +104,28 @@ void extract_pucch_csi_report ( NR_CSI_MeasConfig_t *csi_MeasConfig,
uint8_t
payload_size
=
ceil
(((
double
)
uci_pdu
->
csi_part1
.
csi_part1_bit_len
)
/
8
);
uint8_t
*
payload
=
calloc
(
payload_size
,
sizeof
(
uint8_t
));
NR_CSI_ReportConfig__reportQuantity_PR
reportQuantity_type
=
NR_CSI_ReportConfig__reportQuantity_PR_NOTHING
;
NR_UE_list_t
*
UE_list
=
&
(
RC
.
nrmac
[
Mod_idP
]
->
UE_list
);
long
periodicity
;
NR_UE_info_t
*
UE_info
=
&
(
RC
.
nrmac
[
Mod_idP
]
->
UE_info
);
uint8_t
csi_report_id
=
0
;
memcpy
(
payload
,
uci_pdu
->
csi_part1
.
csi_part1_payload
,
payload_size
);
reverse_n_bits
(
payload
,
uci_pdu
->
csi_part1
.
csi_part1_bit_len
);
UE_
list
->
csi_report_template
[
UE_id
][
csi_report_id
].
nb_of_csi_ssb_report
=
0
;
UE_
info
->
csi_report_template
[
UE_id
][
csi_report_id
].
nb_of_csi_ssb_report
=
0
;
for
(
csi_report_id
=
0
;
csi_report_id
<
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
count
;
csi_report_id
++
)
{
//Assuming in periodic reporting for one slot can be configured with only one CSI-ReportConfig
// if (csi_MeasConfig->csi_ReportConfigToAddModList->list.array[csi_report_id]->reportConfigType.present == NR_CSI_ReportConfig__reportConfigType_PR_periodic) {
//Has to implement according to reportSlotConfig type
periodicity
=
UE_list
->
csi_report_template
[
UE_id
][
csi_report_id
].
periodicity
;
LOG_I
(
PHY
,
"SFN/SF:%d%d
\n
"
,
frame
,
slot
);
/* if (((NR_SubcarrierSpacing_kHz30 == scs) && (((((frame & 0xf)+1)*20 + slot) & periodicity) == periodicity))
||((NR_SubcarrierSpacing_kHz120 == scs)&&(((((frame & 0xf)+1)*80 + slot) & periodicity) == periodicity))) {*/
if
(((
slots_per_frame
[
scs
]
*
frame
+
slot
-
UE_list
->
csi_report_template
[
UE_id
][
csi_report_id
].
offset
)
%
periodicity
)
!=
0
)
continue
;
reportQuantity_type
=
UE_list
->
csi_report_template
[
UE_id
][
csi_report_id
].
reportQuantity_type
;
/*reportQuantity must be considered according to the current scheduled
CSI-ReportConfig if multiple CSI-ReportConfigs present*/
reportQuantity_type
=
UE_info
->
csi_report_template
[
UE_id
][
csi_report_id
].
reportQuantity_type
;
LOG_I
(
PHY
,
"SFN/SF:%d%d reportQuantity type = %d
\n
"
,
frame
,
slot
,
reportQuantity_type
);
if
(
NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP
==
reportQuantity_type
||
NR_CSI_ReportConfig__reportQuantity_PR_cri_RSRP
==
reportQuantity_type
)
{
uint8_t
csi_ssb_idx
=
0
;
uint8_t
diff_rsrp_idx
=
0
;
uint8_t
cri_ssbri_bitlen
=
UE_
list
->
csi_report_template
[
UE_id
][
csi_report_id
].
CSI_report_bitlen
.
cri_ssbri_bitlen
;
uint8_t
cri_ssbri_bitlen
=
UE_
info
->
csi_report_template
[
UE_id
][
csi_report_id
].
CSI_report_bitlen
.
cri_ssbri_bitlen
;
/*! As per the spec 38.212 and table: 6.3.1.1.2-12 in a single UCI sequence we can have multiple CSI_report
* the number of CSI_report will depend on number of CSI resource sets that are configured in CSI-ResourceConfig RRC IE
...
...
@@ -152,16 +146,16 @@ void extract_pucch_csi_report ( NR_CSI_MeasConfig_t *csi_MeasConfig,
*/
idx
=
0
;
//Since for SSB RSRP reporting in RRC can configure only one ssb resource set per one report config
sched_ctrl
->
CSI_report
[
idx
].
choice
.
ssb_cri_report
.
nr_ssbri_cri
=
UE_
list
->
csi_report_template
[
UE_id
][
csi_report_id
].
CSI_report_bitlen
.
nb_ssbri_cri
;
sched_ctrl
->
CSI_report
[
idx
].
choice
.
ssb_cri_report
.
nr_ssbri_cri
=
UE_
info
->
csi_report_template
[
UE_id
][
csi_report_id
].
CSI_report_bitlen
.
nb_ssbri_cri
;
for
(
csi_ssb_idx
=
0
;
csi_ssb_idx
<
sched_ctrl
->
CSI_report
[
idx
].
choice
.
ssb_cri_report
.
nr_ssbri_cri
;
csi_ssb_idx
++
)
{
if
(
NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP
==
reportQuantity_type
)
sched_ctrl
->
CSI_report
[
idx
].
choice
.
ssb_cri_report
.
CRI_SSBRI
[
csi_ssb_idx
]
=
*
(
UE_
list
->
csi_report_template
[
UE_id
][
csi_report_id
].
SSB_Index_list
[
cri_ssbri_bitlen
>
0
?
((
*
payload
)
&~
(
~
1
<<
(
cri_ssbri_bitlen
-
1
)))
:
cri_ssbri_bitlen
]);
*
(
UE_
info
->
csi_report_template
[
UE_id
][
csi_report_id
].
SSB_Index_list
[
cri_ssbri_bitlen
>
0
?
((
*
payload
)
&~
(
~
1
<<
(
cri_ssbri_bitlen
-
1
)))
:
cri_ssbri_bitlen
]);
else
sched_ctrl
->
CSI_report
[
idx
].
choice
.
ssb_cri_report
.
CRI_SSBRI
[
csi_ssb_idx
]
=
*
(
UE_
list
->
csi_report_template
[
UE_id
][
csi_report_id
].
CSI_Index_list
[
cri_ssbri_bitlen
>
0
?
((
*
payload
)
&~
(
~
1
<<
(
cri_ssbri_bitlen
-
1
)))
:
cri_ssbri_bitlen
]);
*
(
UE_
info
->
csi_report_template
[
UE_id
][
csi_report_id
].
CSI_Index_list
[
cri_ssbri_bitlen
>
0
?
((
*
payload
)
&~
(
~
1
<<
(
cri_ssbri_bitlen
-
1
)))
:
cri_ssbri_bitlen
]);
*
payload
>>=
cri_ssbri_bitlen
;
LOG_I
(
PHY
,
"SSB_index = %d"
,
sched_ctrl
->
CSI_report
[
idx
].
choice
.
ssb_cri_report
.
CRI_SSBRI
[
csi_ssb_idx
]);
...
...
@@ -174,7 +168,7 @@ void extract_pucch_csi_report ( NR_CSI_MeasConfig_t *csi_MeasConfig,
sched_ctrl
->
CSI_report
[
idx
].
choice
.
ssb_cri_report
.
diff_RSRP
[
diff_rsrp_idx
]
=
(
*
payload
)
&
0x0f
;
*
payload
>>=
4
;
}
UE_
list
->
csi_report_template
[
UE_id
][
csi_report_id
].
nb_of_csi_ssb_report
++
;
UE_
info
->
csi_report_template
[
UE_id
][
csi_report_id
].
nb_of_csi_ssb_report
++
;
LOG_I
(
MAC
,
"csi_payload size = %d, rsrp_id = %d
\n
"
,
payload_size
,
sched_ctrl
->
CSI_report
[
idx
].
choice
.
ssb_cri_report
.
RSRP
);
}
}
...
...
@@ -246,6 +240,7 @@ void handle_nr_uci(NR_UL_IND_t *UL_info, NR_UE_sched_ctrl_t *sched_ctrl, NR_mac_
case
NFAPI_NR_UCI_PUSCH_PDU_TYPE
:
break
;
case
NFAPI_NR_UCI_FORMAT_0_1_PDU_TYPE
:
{
nfapi_nr_uci_pucch_pdu_format_0_1_t
*
uci_pdu
=
&
uci_list
[
i
].
pucch_pdu_format_0_1
;
// tpc (power control)
...
...
@@ -267,7 +262,7 @@ void handle_nr_uci(NR_UL_IND_t *UL_info, NR_UE_sched_ctrl_t *sched_ctrl, NR_mac_
case
NFAPI_NR_UCI_FORMAT_2_3_4_PDU_TYPE
:
{
nfapi_nr_uci_pucch_pdu_format_2_3_4_t
*
uci_pdu
=
&
uci_list
[
i
].
pucch_pdu_format_2_3_4
;
module_id_t
Mod_idP
=
UL_info
->
module_id
;
NR_CSI_MeasConfig_t
*
csi_MeasConfig
=
RC
.
nrmac
[
Mod_idP
]
->
UE_
list
.
secondaryCellGroup
[
UE_id
]
->
spCellConfig
->
spCellConfigDedicated
->
csi_MeasConfig
->
choice
.
setup
;
NR_CSI_MeasConfig_t
*
csi_MeasConfig
=
RC
.
nrmac
[
Mod_idP
]
->
UE_
info
.
secondaryCellGroup
[
UE_id
]
->
spCellConfig
->
spCellConfigDedicated
->
csi_MeasConfig
->
choice
.
setup
;
// tpc (power control)
sched_ctrl
->
tpc1
=
nr_get_tpc
(
target_snrx10
,
uci_pdu
->
ul_cqi
,
30
);
...
...
@@ -287,12 +282,12 @@ void handle_nr_uci(NR_UL_IND_t *UL_info, NR_UE_sched_ctrl_t *sched_ctrl, NR_mac_
sched_ctrl
->
sr_req
.
nr_of_srs
=
uci_pdu
->
sr
.
sr_bit_len
;
}
if
(
uci_pdu
->
pduBitmap
&
0x02
)
if
(
uci_pdu
->
pduBitmap
&
0x02
)
nr_rx_acknack
(
NULL
,
NULL
,
uci_pdu
,
UL_info
,
sched_ctrl
,
stats
);
if
(
uci_pdu
->
pduBitmap
&
0x04
)
{
//int bwp_id =1;
//NR_BWP_Uplink_t *ubwp=RC.nrmac[Mod_idP]->UE_
list
.secondaryCellGroup[UE_id]->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[bwp_id-1];
//NR_BWP_Uplink_t *ubwp=RC.nrmac[Mod_idP]->UE_
info
.secondaryCellGroup[UE_id]->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[bwp_id-1];
NR_SubcarrierSpacing_t
scs
=*
(
RC
.
nrmac
[
Mod_idP
]
->
common_channels
->
ServingCellConfigCommon
->
ssbSubcarrierSpacing
);
LOG_I
(
PHY
,
"SFN/SF:%d%d scs %ld
\n
"
,
UL_info
->
frame
,
UL_info
->
slot
,
...
...
@@ -398,6 +393,7 @@ void NR_UL_indication(NR_UL_IND_t *UL_info) {
NR_Sched_Rsp_t
*
sched_info
=
&
Sched_INFO
[
module_id
][
CC_id
];
NR_IF_Module_t
*
ifi
=
if_inst
[
module_id
];
gNB_MAC_INST
*
mac
=
RC
.
nrmac
[
module_id
];
LOG_D
(
PHY
,
"SFN/SF:%d%d module_id:%d CC_id:%d UL_info[rach_pdus:%d rx_ind:%d crcs:%d]
\n
"
,
UL_info
->
frame
,
UL_info
->
slot
,
module_id
,
CC_id
,
UL_info
->
rach_ind
.
number_of_pdus
,
...
...
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
f51045a3
...
...
@@ -1385,7 +1385,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
}
}
#if 0
NR_TCI_State_t*tci0=calloc(1,sizeof(*tci0));
...
...
@@ -1787,7 +1786,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
}
}
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
tci_StatesToReleaseList
=
NULL
;
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
vrb_ToPRB_Interleaver
=
NULL
;
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
resourceAllocation
=
NR_PDSCH_Config__resourceAllocation_resourceAllocationType1
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment