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
常顺宇
OpenXG-RAN
Commits
dc9b0fa5
Commit
dc9b0fa5
authored
6 years ago
by
Rajeev Gangula
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added uplink channels SNR in config file.
parent
184d51c6
No related merge requests found
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
40 additions
and
22 deletions
+40
-22
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+5
-5
openair2/ENB_APP/MACRLC_paramdef.h
openair2/ENB_APP/MACRLC_paramdef.h
+6
-1
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+2
-0
openair2/LAYER2/MAC/defs.h
openair2/LAYER2/MAC/defs.h
+3
-0
openair2/LAYER2/MAC/eNB_scheduler.c
openair2/LAYER2/MAC/eNB_scheduler.c
+2
-2
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+6
-4
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+7
-5
openair2/LAYER2/MAC/main.c
openair2/LAYER2/MAC/main.c
+9
-5
No files found.
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
);
...
...
This diff is collapsed.
Click to expand it.
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
/*---------------------------------------------------------------------------------------------------------------------------------------------------------*/
This diff is collapsed.
Click to expand it.
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);
...
...
This diff is collapsed.
Click to expand it.
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
;
...
...
This diff is collapsed.
Click to expand it.
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
)
+
...
...
This diff is collapsed.
Click to expand it.
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
;
...
...
This diff is collapsed.
Click to expand it.
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
;
...
...
This diff is collapsed.
Click to expand it.
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
.
...
...
This diff is collapsed.
Click to expand it.
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