Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
oai
openairinterface5G
Commits
dc9b0fa5
Commit
dc9b0fa5
authored
May 09, 2018
by
Rajeev Gangula
Browse files
Added uplink channels SNR in config file.
parent
184d51c6
Changes
8
Hide whitespace changes
Inline
Side-by-side
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
dc9b0fa5
...
...
@@ -643,7 +643,7 @@ void fill_sr_indication(PHY_VARS_eNB *eNB,uint16_t rnti,int frame,int subframe,u
pdu
->
rx_ue_information
.
tl
.
tag
=
NFAPI_RX_UE_INFORMATION_TAG
;
pdu
->
rx_ue_information
.
rnti
=
rnti
;
int
SNRtimes10
=
dB_fixed_times10
(
stat
)
-
2
00
;
//(10*eNB->measurements.n0_power_dB[0]);
int
SNRtimes10
=
dB_fixed_times10
(
stat
)
-
3
00
;
//(10*eNB->measurements.n0_power_dB[0]);
pdu
->
ul_cqi_information
.
tl
.
tag
=
NFAPI_UL_CQI_INFORMATION_TAG
;
...
...
@@ -1240,8 +1240,8 @@ void pusch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc)
ulsch
->
rnti
,
dB_fixed
(
eNB
->
pusch_vars
[
i
]
->
ulsch_power
[
0
]),
dB_fixed
(
eNB
->
pusch_vars
[
i
]
->
ulsch_power
[
1
]),
2
0
,
//eNB->measurements.n0_power_dB[0],
2
0
,
//eNB->measurements.n0_power_dB[1],
3
0
,
//eNB->measurements.n0_power_dB[0],
3
0
,
//eNB->measurements.n0_power_dB[1],
ulsch_harq
->
o_ACK
[
0
],
ulsch_harq
->
o_ACK
[
1
],
ret
,
...
...
@@ -1473,7 +1473,7 @@ void fill_rx_indication(PHY_VARS_eNB *eNB,int UE_id,int frame,int subframe)
pdu
->
rx_indication_rel8
.
timing_advance
=
timing_advance_update
;
// estimate UL_CQI for MAC (from antenna port 0 only)
int
SNRtimes10
=
dB_fixed_times10
(
eNB
->
pusch_vars
[
UE_id
]
->
ulsch_power
[
0
])
-
2
00
;
//(10*eNB->measurements.n0_power_dB[0]);
int
SNRtimes10
=
dB_fixed_times10
(
eNB
->
pusch_vars
[
UE_id
]
->
ulsch_power
[
0
])
-
3
00
;
//(10*eNB->measurements.n0_power_dB[0]);
if
(
SNRtimes10
<
-
640
)
pdu
->
rx_indication_rel8
.
ul_cqi
=
0
;
else
if
(
SNRtimes10
>
635
)
pdu
->
rx_indication_rel8
.
ul_cqi
=
255
;
...
...
@@ -1740,7 +1740,7 @@ void fill_uci_harq_indication(PHY_VARS_eNB *eNB,
// estimate UL_CQI for MAC (from antenna port 0 only)
pdu
->
ul_cqi_information
.
tl
.
tag
=
NFAPI_UL_CQI_INFORMATION_TAG
;
int
SNRtimes10
=
dB_fixed_times10
(
uci
->
stat
)
-
2
00
;
//(10*eNB->measurements.n0_power_dB[0]);
int
SNRtimes10
=
dB_fixed_times10
(
uci
->
stat
)
-
3
00
;
//(10*eNB->measurements.n0_power_dB[0]);
if
(
SNRtimes10
<
-
100
)
LOG_I
(
PHY
,
"uci->stat %d
\n
"
,
uci
->
stat
);
...
...
openair2/ENB_APP/MACRLC_paramdef.h
View file @
dc9b0fa5
...
...
@@ -53,7 +53,8 @@
#define CONFIG_STRING_MACRLC_REMOTE_S_PORTC "remote_s_portc"
#define CONFIG_STRING_MACRLC_LOCAL_S_PORTD "local_s_portd"
#define CONFIG_STRING_MACRLC_REMOTE_S_PORTD "remote_s_portd"
#define CONFIG_MACRLC_PUSCH10xSNR "puSch10xSnr"
#define CONFIG_MACRLC_PUCCH10xSNR "puCch10xSnr"
/*-------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* MacRLC configuration parameters */
...
...
@@ -77,6 +78,8 @@
{CONFIG_STRING_MACRLC_REMOTE_S_PORTC, NULL, 0, uptr:NULL, defintval:50020, TYPE_UINT, 0}, \
{CONFIG_STRING_MACRLC_LOCAL_S_PORTD, NULL, 0, uptr:NULL, defintval:50021, TYPE_UINT, 0}, \
{CONFIG_STRING_MACRLC_REMOTE_S_PORTD, NULL, 0, uptr:NULL, defintval:50021, TYPE_UINT, 0}, \
{CONFIG_MACRLC_PUSCH10xSNR, NULL, 0, iptr:NULL, defintval:20, TYPE_INT, 0}, \
{CONFIG_MACRLC_PUCCH10xSNR, NULL, 0, iptr:NULL, defintval:20, TYPE_INT, 0} \
}
#define MACRLC_CC_IDX 0
#define MACRLC_TRANSPORT_N_PREFERENCE_IDX 1
...
...
@@ -95,4 +98,6 @@
#define MACRLC_REMOTE_S_PORTC_IDX 14
#define MACRLC_LOCAL_S_PORTD_IDX 15
#define MACRLC_REMOTE_S_PORTD_IDX 16
#define MACRLC_PUSCH10xSNR_IDX 17
#define MACRLC_PUCCH10xSNR_IDX 18
/*---------------------------------------------------------------------------------------------------------------------------------------------------------*/
openair2/ENB_APP/enb_config.c
View file @
dc9b0fa5
...
...
@@ -296,6 +296,8 @@ void RCconfig_macrlc() {
RC
.
nb_macrlc_inst
=
MacRLC_ParamList
.
numelt
;
mac_top_init_eNB
();
for
(
j
=
0
;
j
<
RC
.
nb_macrlc_inst
;
j
++
)
{
RC
.
mac
[
j
]
->
puSch10xSnr
=
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_PUSCH10xSNR_IDX
].
iptr
);
RC
.
mac
[
j
]
->
puCch10xSnr
=
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_PUCCH10xSNR_IDX
].
iptr
);
//RC.mac[j]->phy_test = *(MacRLC_ParamList.paramarray[j][MACRLC_PHY_TEST_IDX].iptr);
//printf("PHY_TEST = %d,%d\n", RC.mac[j]->phy_test, j);
...
...
openair2/LAYER2/MAC/defs.h
View file @
dc9b0fa5
...
...
@@ -1104,6 +1104,9 @@ typedef struct eNB_MAC_INST_s {
/// UL handle
uint32_t
ul_handle
;
UE_list_t
UE_list
;
//Target UL channel SNRs (10 times)
int16_t
puSch10xSnr
;
int16_t
puCch10xSnr
;
///subband bitmap configuration
SBMAP_CONF
sbmap_conf
;
...
...
openair2/LAYER2/MAC/eNB_scheduler.c
View file @
dc9b0fa5
...
...
@@ -550,8 +550,8 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frameP,
0
?
"in synch"
:
"out of sync"
,
UE_list
->
UE_template
[
CC_id
][
i
].
phr_info
,
UE_list
->
UE_sched_ctrl
[
i
].
dl_cqi
[
CC_id
],
(
UE_list
->
UE_sched_ctrl
[
i
].
pusch_snr
[
CC_id
]
-
128
)
/
2
,
(
UE_list
->
UE_sched_ctrl
[
i
].
pucch1_snr
[
CC_id
]
-
128
)
/
2
);
(
5
*
UE_list
->
UE_sched_ctrl
[
i
].
pusch_snr
[
CC_id
]
-
640
)
/
10
,
(
5
*
UE_list
->
UE_sched_ctrl
[
i
].
pucch1_snr
[
CC_id
]
-
640
)
/
10
);
}
RC
.
eNB
[
module_idP
][
CC_id
]
->
pusch_stats_bsr
[
i
][(
frameP
*
10
)
+
...
...
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
View file @
dc9b0fa5
...
...
@@ -1354,10 +1354,12 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP,
// this is the normalized RX power
eNB_UE_stats
=
&
UE_list
->
eNB_UE_stats
[
CC_id
][
UE_id
];
/* TODO: fix how we deal with power, unit is not dBm, it's special from nfapi */
normalized_rx_power
=
ue_sched_ctl
->
pucch1_snr
[
CC_id
];
target_rx_power
=
208
;
/* unit is not dBm, it's special from nfapi */
//normalized_rx_power = ue_sched_ctl->pucch1_snr[CC_id];
// converting to dBm: ToDo: Noise power hard coded to 30
normalized_rx_power
=
(
5
*
ue_sched_ctl
->
pucch1_snr
[
CC_id
]
-
640
)
/
10
+
30
;
target_rx_power
=
eNB
->
puCch10xSnr
/
10
+
30
;
printf
(
"
\n
eNB->puCch10xSnr = %d, normalized_rx_power = %d, target_rx_power = %d
\n
"
,
eNB
->
puCch10xSnr
,
normalized_rx_power
,
target_rx_power
);
// this assumes accumulated tpc
// make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out
int32_t
framex10psubframe
=
UE_list
->
UE_template
[
CC_id
][
UE_id
].
pucch_tpc_tx_frame
*
10
+
UE_list
->
UE_template
[
CC_id
][
UE_id
].
pucch_tpc_tx_subframe
;
...
...
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
View file @
dc9b0fa5
...
...
@@ -1115,8 +1115,7 @@ schedule_ulsch_rnti(module_id_t module_idP,
uint8_t
status
=
0
;
uint8_t
rb_table_index
=
-
1
;
uint32_t
cqi_req
,
cshift
,
ndi
,
tpc
;
int32_t
normalized_rx_power
;
int32_t
target_rx_power
=
-
90
;
int32_t
normalized_rx_power
,
target_rx_power
;
static
int32_t
tpc_accumulated
=
0
;
int
n
;
int
CC_id
=
0
;
...
...
@@ -1280,9 +1279,12 @@ schedule_ulsch_rnti(module_id_t module_idP,
//compute the expected ULSCH RX power (for the stats)
// this is the normalized RX power and this should be constant (regardless of mcs
normalized_rx_power
=
UE_sched_ctrl
->
pusch_snr
[
CC_id
];
target_rx_power
=
178
;
//is not in dBm, unit from nfapi
//normalized_rx_power = UE_sched_ctrl->pusch_snr[CC_id];
// converting to dBm: ToDo: Noise power hard coded to 30
normalized_rx_power
=
(
5
*
UE_sched_ctrl
->
pusch_snr
[
CC_id
]
-
640
)
/
10
+
30
;
target_rx_power
=
mac
->
puSch10xSnr
/
10
+
30
;
printf
(
"
\n
mac->puSch10xSnr = %d, normalized_rx_power = %d, target_rx_power = %d
\n
"
,
mac
->
puSch10xSnr
,
normalized_rx_power
,
target_rx_power
);
// this assumes accumulated tpc
// make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out
int32_t
framex10psubframe
=
UE_template
->
pusch_tpc_tx_frame
*
10
+
UE_template
->
pusch_tpc_tx_subframe
;
...
...
openair2/LAYER2/MAC/main.c
View file @
dc9b0fa5
...
...
@@ -61,15 +61,18 @@ void mac_top_init_eNB(void)
RC
.
nb_macrlc_inst
);
if
(
RC
.
nb_macrlc_inst
>
0
)
{
RC
.
mac
=
(
eNB_MAC_INST
**
)
malloc16
(
RC
.
nb_macrlc_inst
*
sizeof
(
eNB_MAC_INST
*
));
if
(
RC
.
mac
==
NULL
){
RC
.
mac
=
(
eNB_MAC_INST
**
)
malloc16
(
RC
.
nb_macrlc_inst
*
sizeof
(
eNB_MAC_INST
*
));
}
AssertFatal
(
RC
.
mac
!=
NULL
,
"can't ALLOCATE %zu Bytes for %d eNB_MAC_INST with size %zu
\n
"
,
RC
.
nb_macrlc_inst
*
sizeof
(
eNB_MAC_INST
*
),
RC
.
nb_macrlc_inst
,
sizeof
(
eNB_MAC_INST
));
for
(
i
=
0
;
i
<
RC
.
nb_macrlc_inst
;
i
++
)
{
RC
.
mac
[
i
]
=
(
eNB_MAC_INST
*
)
malloc16
(
sizeof
(
eNB_MAC_INST
));
if
(
RC
.
mac
[
i
]
==
NULL
)
RC
.
mac
[
i
]
=
(
eNB_MAC_INST
*
)
malloc16
(
sizeof
(
eNB_MAC_INST
));
AssertFatal
(
RC
.
mac
!=
NULL
,
"can't ALLOCATE %zu Bytes for %d eNB_MAC_INST with size %zu
\n
"
,
RC
.
nb_macrlc_inst
*
sizeof
(
eNB_MAC_INST
*
),
...
...
@@ -77,7 +80,8 @@ void mac_top_init_eNB(void)
LOG_D
(
MAC
,
"[MAIN] ALLOCATE %zu Bytes for %d eNB_MAC_INST @ %p
\n
"
,
sizeof
(
eNB_MAC_INST
),
RC
.
nb_macrlc_inst
,
RC
.
mac
);
bzero
(
RC
.
mac
[
i
],
sizeof
(
eNB_MAC_INST
));
if
(
RC
.
mac
[
i
]
==
NULL
)
bzero
(
RC
.
mac
[
i
],
sizeof
(
eNB_MAC_INST
));
// bzero(RC.mac[i], sizeof(eNB_MAC_INST));
RC
.
mac
[
i
]
->
Mod_id
=
i
;
for
(
j
=
0
;
j
<
MAX_NUM_CCs
;
j
++
)
{
RC
.
mac
[
i
]
->
DL_req
[
j
].
dl_config_request_body
.
...
...
Robert Schmidt
@schmidtr
mentioned in commit
52afb00f
·
Jun 25, 2018
mentioned in commit
52afb00f
mentioned in commit 52afb00f145a0e354676ecaa7735bafb933f27ed
Toggle commit list
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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