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
6040f662
Commit
6040f662
authored
Jan 04, 2019
by
Nick Ho
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixed scheduling optimized
parent
5111eafd
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
50 additions
and
31 deletions
+50
-31
openair1/PHY/LTE_TRANSPORT/dci_tools_NB_IoT.c
openair1/PHY/LTE_TRANSPORT/dci_tools_NB_IoT.c
+7
-1
openair2/LAYER2/MAC/eNB_scheduler_RA_NB_IoT.c
openair2/LAYER2/MAC/eNB_scheduler_RA_NB_IoT.c
+2
-2
openair2/LAYER2/MAC/eNB_scheduler_dlsch_NB_IoT.c
openair2/LAYER2/MAC/eNB_scheduler_dlsch_NB_IoT.c
+2
-2
openair2/LAYER2/MAC/extern_NB_IoT.h
openair2/LAYER2/MAC/extern_NB_IoT.h
+1
-1
openair2/LAYER2/MAC/main_NB_IoT.c
openair2/LAYER2/MAC/main_NB_IoT.c
+1
-0
openair2/LAYER2/MAC/output_handler_NB_IoT.c
openair2/LAYER2/MAC/output_handler_NB_IoT.c
+11
-2
openair2/LAYER2/MAC/vars_NB_IoT.h
openair2/LAYER2/MAC/vars_NB_IoT.h
+1
-1
openair2/PHY_INTERFACE/IF_Module_L2_primitives_NB_IoT.c
openair2/PHY_INTERFACE/IF_Module_L2_primitives_NB_IoT.c
+25
-22
No files found.
openair1/PHY/LTE_TRANSPORT/dci_tools_NB_IoT.c
View file @
6040f662
...
@@ -313,8 +313,14 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB,
...
@@ -313,8 +313,14 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB,
//ndlcch->status[ncce_index] = ACTIVE_NB_IoT;
//ndlcch->status[ncce_index] = ACTIVE_NB_IoT;
ndlcch
->
mcs
[
ncce_index
]
=
mcs
;
ndlcch
->
mcs
[
ncce_index
]
=
mcs
;
ndlcch
->
pdu
[
ncce_index
]
=
DLSCH_DCI_NB_IoT
;
//ndlcch->pdu[ncce_index] = DLSCH_DCI_NB_IoT;
DCI_tmp
=
(
uint8_t
*
)
DLSCH_DCI_NB_IoT
;
DCI_tmp
=
(
uint8_t
*
)
DLSCH_DCI_NB_IoT
;
//DCI_tmp[0] = 128;
//DCI_tmp[1] = 66;
//DCI_tmp[2] = 4;
ndlcch
->
pdu
[
ncce_index
]
=
DCI_tmp
;
int
tmp
=
0
;
int
tmp
=
0
;
printf
(
"DCI PDU content:"
);
printf
(
"DCI PDU content:"
);
...
...
openair2/LAYER2/MAC/eNB_scheduler_RA_NB_IoT.c
View file @
6040f662
...
@@ -48,7 +48,7 @@ void init_RA_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst, uint8_t preamble_index, ce_le
...
@@ -48,7 +48,7 @@ void init_RA_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst, uint8_t preamble_index, ce_le
}
}
migrate_node
->
active
=
1
;
migrate_node
->
active
=
1
;
migrate_node
->
preamble_index
=
preamble_index
;
migrate_node
->
preamble_index
=
0
;
migrate_node
->
ce_level
=
ce_level
;
migrate_node
->
ce_level
=
ce_level
;
migrate_node
->
ra_rnti
=
(
sfn_id
>>
2
)
+
1
;
migrate_node
->
ra_rnti
=
(
sfn_id
>>
2
)
+
1
;
migrate_node
->
ta
=
ta
;
migrate_node
->
ta
=
ta
;
...
@@ -226,7 +226,7 @@ void schedule_rar_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst, int abs_subframe){
...
@@ -226,7 +226,7 @@ void schedule_rar_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst, int abs_subframe){
dci_n1_rar
->
RepNum
=
msg2_nodes
->
ce_level
;
// 36.213 table 16.4.1.3-2, 8 candidates
dci_n1_rar
->
RepNum
=
msg2_nodes
->
ce_level
;
// 36.213 table 16.4.1.3-2, 8 candidates
dci_n1_rar
->
ndi
=
0
;
// ndi is useless in RAR 36.212 says the feild is reserved
dci_n1_rar
->
ndi
=
0
;
// ndi is useless in RAR 36.212 says the feild is reserved
dci_n1_rar
->
HARQackRes
=
0
;
// no HARQ procedure in RAR 36.212 says the feild is reserved
dci_n1_rar
->
HARQackRes
=
0
;
// no HARQ procedure in RAR 36.212 says the feild is reserved
dci_n1_rar
->
DCIRep
=
0
;
// 36.213 table 16.6-1 R=Rmax/8
dci_n1_rar
->
DCIRep
=
2
;
// 36.213 table 16.6-1 R=Rmax/8
//printf("I_sf = %d,I_mcs = %d, RepNum = %d\n",dci_n1_rar->ResAssign,I_mcs,msg2_nodes->ce_level);
//printf("I_sf = %d,I_mcs = %d, RepNum = %d\n",dci_n1_rar->ResAssign,I_mcs,msg2_nodes->ce_level);
// for dci
// for dci
...
...
openair2/LAYER2/MAC/eNB_scheduler_dlsch_NB_IoT.c
View file @
6040f662
...
@@ -980,11 +980,11 @@ uint32_t get_I_mcs(int CE_level)
...
@@ -980,11 +980,11 @@ uint32_t get_I_mcs(int CE_level)
}
}
else
if
(
CE_level
==
1
)
else
if
(
CE_level
==
1
)
{
{
return
1
2
;
return
1
0
;
}
}
else
else
{
{
return
11
;
return
4
;
}
}
}
}
...
...
openair2/LAYER2/MAC/extern_NB_IoT.h
View file @
6040f662
...
@@ -132,7 +132,7 @@ extern const int BSR_table[64];
...
@@ -132,7 +132,7 @@ extern const int BSR_table[64];
extern
const
int
dl_rep
[
3
];
extern
const
int
dl_rep
[
3
];
extern
const
uint32_t
dci_rep
[
3
];
extern
const
uint32_t
dci_rep
[
3
];
extern
const
uint32_t
harq_rep
[
3
];
extern
const
uint32_t
harq_rep
[
3
];
extern
int
cooooount
;
//SIBs
//SIBs
extern
int
extend_space
[
2
];
extern
int
extend_space
[
2
];
extern
int
extend_alpha_offset
[
2
];
extern
int
extend_alpha_offset
[
2
];
...
...
openair2/LAYER2/MAC/main_NB_IoT.c
View file @
6040f662
...
@@ -145,6 +145,7 @@ void init_mac_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst)
...
@@ -145,6 +145,7 @@ void init_mac_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst)
Initialize_Resource
();
Initialize_Resource
();
//add_UL_Resource(mac_inst);
//add_UL_Resource(mac_inst);
extend_available_resource_DL
(
mac_inst
,
mac_inst
->
current_subframe
+
1
+
160
);
extend_available_resource_DL
(
mac_inst
,
mac_inst
->
current_subframe
+
1
+
160
);
cooooount
=
0
;
}
}
...
...
openair2/LAYER2/MAC/output_handler_NB_IoT.c
View file @
6040f662
...
@@ -37,11 +37,18 @@
...
@@ -37,11 +37,18 @@
#define fixed_scheduling 1
#define fixed_scheduling 1
int
init_time
=
0
;
int
fixed_scheduler
(
uint32_t
frame
,
uint32_t
subframe
,
Sched_Rsp_NB_IoT_t
*
SCHED_info
)
int
fixed_scheduler
(
uint32_t
frame
,
uint32_t
subframe
,
Sched_Rsp_NB_IoT_t
*
SCHED_info
)
{
{
nfapi_dl_config_request_pdu_t
*
dl_config_pdu
;
nfapi_dl_config_request_pdu_t
*
dl_config_pdu
;
if
(
cooooount
==
1
)
{
init_time
++
;
}
if
(
frame
==
529
&&
subframe
==
8
)
if
(
cooooount
==
1
&&
init_time
==
6
)
{
{
//DCI
//DCI
LOG_I
(
MAC
,
"[frame:%2d][subframe:%2d]NB-IoT fill DL_DCI
\n
"
,
frame
,
subframe
);
LOG_I
(
MAC
,
"[frame:%2d][subframe:%2d]NB-IoT fill DL_DCI
\n
"
,
frame
,
subframe
);
...
@@ -68,7 +75,7 @@ int fixed_scheduler(uint32_t frame, uint32_t subframe, Sched_Rsp_NB_IoT_t *SCHED
...
@@ -68,7 +75,7 @@ int fixed_scheduler(uint32_t frame, uint32_t subframe, Sched_Rsp_NB_IoT_t *SCHED
dl_config_pdu
->
npdcch_pdu
.
npdcch_pdu_rel13
.
dci_subframe_repetition_number
=
2
;
dl_config_pdu
->
npdcch_pdu
.
npdcch_pdu_rel13
.
dci_subframe_repetition_number
=
2
;
return
1
;
return
1
;
}
}
if
(
frame
==
530
&&
subframe
==
7
)
if
(
cooooount
==
1
&&
init_time
==
15
)
{
{
LOG_I
(
MAC
,
"[frame:%2d][subframe:%2d]NB-IoT fill DL Data
\n
"
,
frame
,
subframe
);
LOG_I
(
MAC
,
"[frame:%2d][subframe:%2d]NB-IoT fill DL Data
\n
"
,
frame
,
subframe
);
uint8_t
*
rar_pdu
;
uint8_t
*
rar_pdu
;
...
@@ -94,6 +101,8 @@ int fixed_scheduler(uint32_t frame, uint32_t subframe, Sched_Rsp_NB_IoT_t *SCHED
...
@@ -94,6 +101,8 @@ int fixed_scheduler(uint32_t frame, uint32_t subframe, Sched_Rsp_NB_IoT_t *SCHED
dl_config_pdu
->
ndlsch_pdu
.
ndlsch_pdu_rel13
.
modulation
=
2
;
dl_config_pdu
->
ndlsch_pdu
.
ndlsch_pdu_rel13
.
modulation
=
2
;
dl_config_pdu
->
ndlsch_pdu
.
ndlsch_pdu_rel13
.
number_of_subframes_for_resource_assignment
=
get_num_sf
(
dl_config_pdu
->
ndlsch_pdu
.
ndlsch_pdu_rel13
.
resource_assignment
);
dl_config_pdu
->
ndlsch_pdu
.
ndlsch_pdu_rel13
.
number_of_subframes_for_resource_assignment
=
get_num_sf
(
dl_config_pdu
->
ndlsch_pdu
.
ndlsch_pdu_rel13
.
resource_assignment
);
SCHED_info
->
TX_req
->
tx_request_body
.
tx_pdu_list
[
dl_config_pdu
->
ndlsch_pdu
.
ndlsch_pdu_rel13
.
pdu_index
].
segments
[
0
].
segment_data
=
rar_pdu
;
SCHED_info
->
TX_req
->
tx_request_body
.
tx_pdu_list
[
dl_config_pdu
->
ndlsch_pdu
.
ndlsch_pdu_rel13
.
pdu_index
].
segments
[
0
].
segment_data
=
rar_pdu
;
cooooount
=
0
;
init_time
=
0
;
return
1
;
return
1
;
}
}
return
0
;
return
0
;
...
...
openair2/LAYER2/MAC/vars_NB_IoT.h
View file @
6040f662
...
@@ -39,7 +39,7 @@
...
@@ -39,7 +39,7 @@
//#include "PHY_INTERFACE/defs.h"
//#include "PHY_INTERFACE/defs.h"
//#include "COMMON/mac_rrc_primitives.h"
//#include "COMMON/mac_rrc_primitives.h"
int
cooooount
;
//IF_Module_NB_IoT_t *if_inst_NB_IoT;
//IF_Module_NB_IoT_t *if_inst_NB_IoT;
//NB-IoT--------------------------------------
//NB-IoT--------------------------------------
...
...
openair2/PHY_INTERFACE/IF_Module_L2_primitives_NB_IoT.c
View file @
6040f662
...
@@ -46,28 +46,31 @@ void UL_indication_NB_IoT(UL_IND_NB_IoT_t *UL_INFO)
...
@@ -46,28 +46,31 @@ void UL_indication_NB_IoT(UL_IND_NB_IoT_t *UL_INFO)
//UE_TEMPLATE_NB_IoT *UE_info;
//UE_TEMPLATE_NB_IoT *UE_info;
enable_preamble_simulation
(
UL_INFO
,
0
);
enable_preamble_simulation
(
UL_INFO
,
0
);
if
(
cooooount
==
0
)
//If there is a preamble, do the initiate RA procedure
{
if
(
UL_INFO
->
nrach_ind
.
number_of_initial_scs_detected
>
0
)
//If there is a preamble, do the initiate RA procedure
{
if
(
UL_INFO
->
nrach_ind
.
number_of_initial_scs_detected
>
0
)
// only use one preamble now
{
//for(i=0;i<UL_INFO->nrach_ind.number_of_initial_scs_detected;i++)
// only use one preamble now
for
(
i
=
0
;
i
<
1
;
i
++
)
//for(i=0;i<UL_INFO->nrach_ind.number_of_initial_scs_detected;i++)
{
for
(
i
=
0
;
i
<
1
;
i
++
)
// initiate_ra here, some useful inforamtion :
{
//(UL_INFO->NRACH.nrach_pdu_list+i)->nrach_indication_rel13.initial_sc
// initiate_ra here, some useful inforamtion :
//(UL_INFO->NRACH.nrach_pdu_list+i)->nrach_indication_rel13.timing_advance
//(UL_INFO->NRACH.nrach_pdu_list+i)->nrach_indication_rel13.initial_sc
LOG_D
(
MAC
,
"Init_RA_NB_IoT in, index of sc = %d
\n
"
,(
UL_INFO
->
nrach_ind
.
nrach_pdu_list
+
i
)
->
nrach_indication_rel13
.
initial_sc
);
//(UL_INFO->NRACH.nrach_pdu_list+i)->nrach_indication_rel13.timing_advance
init_RA_NB_IoT
(
mac_inst
,
LOG_D
(
MAC
,
"Init_RA_NB_IoT in, index of sc = %d
\n
"
,(
UL_INFO
->
nrach_ind
.
nrach_pdu_list
+
i
)
->
nrach_indication_rel13
.
initial_sc
);
(
UL_INFO
->
nrach_ind
.
nrach_pdu_list
+
i
)
->
nrach_indication_rel13
.
initial_sc
,
/*init_RA_NB_IoT(mac_inst,
(
UL_INFO
->
nrach_ind
.
nrach_pdu_list
+
i
)
->
nrach_indication_rel13
.
nrach_ce_level
,
(UL_INFO->nrach_ind.nrach_pdu_list+i)->nrach_indication_rel13.initial_sc,
UL_INFO
->
frame
,
(UL_INFO->nrach_ind.nrach_pdu_list+i)->nrach_indication_rel13.nrach_ce_level,
//timing_offset = Timing_advance * 16
UL_INFO->frame,
(
UL_INFO
->
nrach_ind
.
nrach_pdu_list
+
i
)
->
nrach_indication_rel13
.
timing_advance
*
16
//timing_offset = Timing_advance * 16
);
(UL_INFO->nrach_ind.nrach_pdu_list+i)->nrach_indication_rel13.timing_advance*16
LOG_D
(
MAC
,
"Init_RA_NB_IoT Out
\n
"
);
);*/
}
LOG_D
(
MAC
,
"Init_RA_NB_IoT Out
\n
"
);
}
cooooount
=
1
;
}
}
}
UL_INFO
->
nrach_ind
.
number_of_initial_scs_detected
=
0
;
UL_INFO
->
nrach_ind
.
number_of_initial_scs_detected
=
0
;
...
...
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