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
606403cf
Commit
606403cf
authored
Feb 06, 2019
by
Nick Ho
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
adjust trigger timing and RU allocation problem fixed
parent
b969ef8f
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
14 additions
and
10 deletions
+14
-10
openair1/SCHED/IF_Module_L1_primitives_NB_IoT.c
openair1/SCHED/IF_Module_L1_primitives_NB_IoT.c
+1
-1
openair2/LAYER2/MAC/eNB_scheduler_RA_NB_IoT.c
openair2/LAYER2/MAC/eNB_scheduler_RA_NB_IoT.c
+9
-7
openair2/LAYER2/MAC/extern_NB_IoT.h
openair2/LAYER2/MAC/extern_NB_IoT.h
+2
-0
openair2/LAYER2/MAC/vars_NB_IoT.h
openair2/LAYER2/MAC/vars_NB_IoT.h
+2
-2
No files found.
openair1/SCHED/IF_Module_L1_primitives_NB_IoT.c
View file @
606403cf
...
@@ -477,7 +477,7 @@ void schedule_response_NB_IoT(Sched_Rsp_NB_IoT_t *Sched_INFO)
...
@@ -477,7 +477,7 @@ void schedule_response_NB_IoT(Sched_Rsp_NB_IoT_t *Sched_INFO)
//nulsch_harq->rep_tmp = ;
//nulsch_harq->rep_tmp = ;
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
LOG_I
(
PHY
,
"
IF module proceed UL config NULSCH pdu
\n
"
);
LOG_I
(
PHY
,
"
subframe = %d (TX timing), IF module proceed UL config NULSCH pdu, will trigger npusch in next subframe
\n
"
,
subframe
);
break
;
break
;
case
NFAPI_UL_CONFIG_NRACH_PDU_TYPE
:
case
NFAPI_UL_CONFIG_NRACH_PDU_TYPE
:
//TODO just for update the nprach configuration (given at the beginning through phy_config_sib2)
//TODO just for update the nprach configuration (given at the beginning through phy_config_sib2)
...
...
openair2/LAYER2/MAC/eNB_scheduler_RA_NB_IoT.c
View file @
606403cf
...
@@ -182,20 +182,22 @@ void schedule_rar_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst, int abs_subframe){
...
@@ -182,20 +182,22 @@ void schedule_rar_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst, int abs_subframe){
rep
=
0
;
rep
=
0
;
uint32_t
Iru
=
0
,
mcs
,
Nru
;
uint32_t
Iru
=
0
,
mcs
,
Nru
;
uint32_t
Nrep_UL
=
0
;
// need a table here
uint32_t
mappedMcsIndex
=
4
;
// assume all ue supported multi-tone
uint32_t
mappedMcsIndex
=
4
;
// assume all ue supported multi-tone
mcs
=
mapped_mcs
[
msg2_nodes
->
ce_level
][
mappedMcsIndex
];
// assume all ue supported multi-tone
//mcs = mapped_mcs[msg2_nodes->ce_level][mappedMcsIndex]; // assume all ue supported multi-tone
mcs
=
2
;
Nrep_UL
=
ULrep
[
rep
];
TBS
=
get_TBS_UL_NB_IoT
(
mcs
,
1
,
Iru
);
TBS
=
get_TBS_UL_NB_IoT
(
mcs
,
1
,
Iru
);
while
((
TBS
<
11
)
&&
(
Iru
<=
7
)){
// 88 bits
while
((
TBS
<
11
)
&&
(
Iru
<=
7
)){
// 88 bits
Iru
++
;
Iru
++
;
TBS
=
get_TBS_UL_NB_IoT
(
mcs
,
1
,
Iru
);
TBS
=
get_TBS_UL_NB_IoT
(
mcs
,
1
,
Iru
);
}
}
Nru
=
RU_table
[
Iru
];
//
Nru = RU_table[Iru];
Nru
=
RU_table_msg3
[
mcs
];
for
(
msg3_scheduling_delay
=
0
;
msg3_scheduling_delay
<
4
;
++
msg3_scheduling_delay
){
for
(
msg3_scheduling_delay
=
0
;
msg3_scheduling_delay
<
4
;
++
msg3_scheduling_delay
){
// 36.213 Table 16.3.3-1 Imcs=3'b000 Nru=4
// 36.213 Table 16.3.3-1 Imcs=3'b000 Nru=4
msg3_subframe
=
msg2_end_subframe
+
msg3_scheduling_delay_table
[
msg3_scheduling_delay
]
+
1
;
msg3_subframe
=
msg2_end_subframe
+
msg3_scheduling_delay_table
[
msg3_scheduling_delay
]
+
1
;
if
(
0
==
Check_UL_resource
(
msg3_subframe
,
Nru
*
rep
,
&
npusch_info
,
0
,
0
)){
//1: multi-tones 0: single-tone. 1: format 2(ack/nack) 0: format 1
if
(
0
==
Check_UL_resource
(
msg3_subframe
,
Nru
*
Nrep_UL
,
&
npusch_info
,
0
,
0
)){
//1: multi-tones 0: single-tone. 1: format 2(ack/nack) 0: format 1
break
;
break
;
}
}
}
}
...
@@ -282,7 +284,7 @@ void schedule_rar_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst, int abs_subframe){
...
@@ -282,7 +284,7 @@ void schedule_rar_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst, int abs_subframe){
//msg2_nodes->ue_rnti = tc_rnti;
//msg2_nodes->ue_rnti = tc_rnti;
LOG_I
(
MAC
,
"[%04d][RA scheduler][MSG2] RARDCI %d-%d RAR %d-%d MSG3 %d-%d
\n
"
,
abs_subframe
-
1
,
dci_first_subframe
,
dci_end_subframe
,
msg2_first_subframe
,
msg2_end_subframe
,
npusch_info
.
sf_start
,
npusch_info
.
sf_end
);
LOG_I
(
MAC
,
"[%04d][RA scheduler][MSG2] RARDCI %d-%d RAR %d-%d MSG3 %d-%d
Nru = %d, Nrep = %d
\n
"
,
abs_subframe
-
1
,
dci_first_subframe
,
dci_end_subframe
,
msg2_first_subframe
,
msg2_end_subframe
,
npusch_info
.
sf_start
,
npusch_info
.
sf_end
,
Nru
,
Nrep_UL
);
LOG_D
(
MAC
,
"[%04d][RA scheduler][MSG2][CE%d] Change RA-RNTI %d->T-CRNTI %d
\n
"
,
abs_subframe
-
1
,
msg2_nodes
->
ce_level
,
msg2_nodes
->
ra_rnti
,
msg2_nodes
->
ue_rnti
);
LOG_D
(
MAC
,
"[%04d][RA scheduler][MSG2][CE%d] Change RA-RNTI %d->T-CRNTI %d
\n
"
,
abs_subframe
-
1
,
msg2_nodes
->
ce_level
,
msg2_nodes
->
ra_rnti
,
msg2_nodes
->
ue_rnti
);
LOG_D
(
MAC
,
"[%04d][RA scheduler][MSG2][CE%d] RAR DCI %d-%d RAR %d-%d MSG3 %d-%d
\n
"
,
abs_subframe
-
1
,
msg2_nodes
->
ce_level
,
dci_first_subframe
,
dci_end_subframe
,
msg2_first_subframe
,
msg2_end_subframe
,
npusch_info
.
sf_start
,
npusch_info
.
sf_end
);
LOG_D
(
MAC
,
"[%04d][RA scheduler][MSG2][CE%d] RAR DCI %d-%d RAR %d-%d MSG3 %d-%d
\n
"
,
abs_subframe
-
1
,
msg2_nodes
->
ce_level
,
dci_first_subframe
,
dci_end_subframe
,
msg2_first_subframe
,
msg2_end_subframe
,
npusch_info
.
sf_start
,
npusch_info
.
sf_end
);
...
@@ -296,7 +298,7 @@ void schedule_rar_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst, int abs_subframe){
...
@@ -296,7 +298,7 @@ void schedule_rar_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst, int abs_subframe){
fill_resource_DL
(
mac_inst
,
msg2_node
,
msg2_first_subframe
,
msg2_end_subframe
,
msg2_result
);
fill_resource_DL
(
mac_inst
,
msg2_node
,
msg2_first_subframe
,
msg2_end_subframe
,
msg2_result
);
// fill msg3 resource
// fill msg3 resource
generate_scheduling_result_UL
(
-
1
,
-
1
,
npusch_info
.
sf_start
,
npusch_info
.
sf_end
,
dci_n0
,
tc_rnti
,
str11
,
(
void
*
)
0
);
generate_scheduling_result_UL
(
-
1
,
-
1
,
npusch_info
.
sf_start
+
3
,
npusch_info
.
sf_end
+
3
,
dci_n0
,
tc_rnti
,
str11
,
(
void
*
)
0
);
adjust_UL_resource_list
(
&
npusch_info
);
adjust_UL_resource_list
(
&
npusch_info
);
//simulate_rx(&simulate_rx_msg3_list, tc_rnti, npusch_info.sf_start);
//simulate_rx(&simulate_rx_msg3_list, tc_rnti, npusch_info.sf_start);
...
...
openair2/LAYER2/MAC/extern_NB_IoT.h
View file @
606403cf
...
@@ -78,6 +78,7 @@ extern const int UL_TBS_Table[14][8];
...
@@ -78,6 +78,7 @@ extern const int UL_TBS_Table[14][8];
const
int
UL_TBS_Table_msg3
[
8
];
const
int
UL_TBS_Table_msg3
[
8
];
extern
const
int
ULrep
[
8
];
extern
const
int
rachperiod
[
8
];
extern
const
int
rachperiod
[
8
];
extern
const
int
rachstart
[
8
];
extern
const
int
rachstart
[
8
];
extern
const
int
rachrepeat
[
8
];
extern
const
int
rachrepeat
[
8
];
...
@@ -90,6 +91,7 @@ extern const double gvalue[8];
...
@@ -90,6 +91,7 @@ extern const double gvalue[8];
extern
const
double
pdcchoffset
[
4
];
extern
const
double
pdcchoffset
[
4
];
extern
const
uint32_t
RU_table
[
8
];
extern
const
uint32_t
RU_table
[
8
];
extern
const
uint32_t
RU_table_msg3
[
8
];
extern
const
uint32_t
scheduling_delay
[
4
];
extern
const
uint32_t
scheduling_delay
[
4
];
extern
const
uint32_t
msg3_scheduling_delay_table
[
4
];
extern
const
uint32_t
msg3_scheduling_delay_table
[
4
];
...
...
openair2/LAYER2/MAC/vars_NB_IoT.h
View file @
606403cf
...
@@ -78,7 +78,7 @@ const int UL_TBS_Table[14][8]=
...
@@ -78,7 +78,7 @@ const int UL_TBS_Table[14][8]=
const
int
UL_TBS_Table_msg3
[
8
]
=
{
88
,
88
,
88
,
0
,
0
,
0
,
0
,
0
};
const
int
UL_TBS_Table_msg3
[
8
]
=
{
88
,
88
,
88
,
0
,
0
,
0
,
0
,
0
};
const
int
ULrep
[
8
]
=
{
1
,
2
,
4
,
8
,
16
,
32
,
64
,
128
};
const
int
rachperiod
[
8
]
=
{
40
,
80
,
160
,
240
,
320
,
640
,
1280
,
2560
};
const
int
rachperiod
[
8
]
=
{
40
,
80
,
160
,
240
,
320
,
640
,
1280
,
2560
};
const
int
rachstart
[
8
]
=
{
8
,
16
,
32
,
64
,
128
,
256
,
512
,
1024
};
const
int
rachstart
[
8
]
=
{
8
,
16
,
32
,
64
,
128
,
256
,
512
,
1024
};
const
int
rachrepeat
[
8
]
=
{
1
,
2
,
4
,
8
,
16
,
32
,
64
,
128
};
const
int
rachrepeat
[
8
]
=
{
1
,
2
,
4
,
8
,
16
,
32
,
64
,
128
};
...
@@ -93,7 +93,7 @@ const double pdcchoffset[4] = {0, 0.125f, 0.25f, 0.375f};
...
@@ -93,7 +93,7 @@ const double pdcchoffset[4] = {0, 0.125f, 0.25f, 0.375f};
const
int
dlrepeat
[
16
]
=
{
1
,
2
,
4
,
8
,
16
,
32
,
64
,
128
,
192
,
256
,
384
,
512
,
768
,
1024
,
1536
,
2048
};
const
int
dlrepeat
[
16
]
=
{
1
,
2
,
4
,
8
,
16
,
32
,
64
,
128
,
192
,
256
,
384
,
512
,
768
,
1024
,
1536
,
2048
};
const
uint32_t
RU_table
[
8
]
=
{
1
,
2
,
3
,
4
,
5
,
6
,
8
,
10
};
const
uint32_t
RU_table
[
8
]
=
{
1
,
2
,
3
,
4
,
5
,
6
,
8
,
10
};
const
uint32_t
RU_table_msg3
[
8
]
=
{
4
,
3
,
1
,
1
,
1
,
1
,
1
,
1
};
const
uint32_t
scheduling_delay
[
4
]
=
{
8
,
16
,
32
,
64
};
const
uint32_t
scheduling_delay
[
4
]
=
{
8
,
16
,
32
,
64
};
const
uint32_t
msg3_scheduling_delay_table
[
4
]
=
{
12
,
16
,
32
,
64
};
const
uint32_t
msg3_scheduling_delay_table
[
4
]
=
{
12
,
16
,
32
,
64
};
...
...
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