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
dc9b0fa5
Commit
dc9b0fa5
authored
May 09, 2018
by
Rajeev Gangula
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added uplink channels SNR in config file.
parent
184d51c6
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
);
...
...
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
.
...
...
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