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
zzha zzha
OpenXG-RAN
Commits
9399dd97
Commit
9399dd97
authored
6 years ago
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
try to merge with issue 341 to pass USRP/FDD test
parent
82c3f06d
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
175 additions
and
65 deletions
+175
-65
openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
+160
-61
openair2/LAYER2/MAC/eNB_scheduler_phytest.c
openair2/LAYER2/MAC/eNB_scheduler_phytest.c
+15
-4
No files found.
openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
View file @
9399dd97
...
...
@@ -165,10 +165,19 @@ int allocate_REs_in_RB_no_pilots_QPSK_siso(PHY_VARS_eNB* phy_vars_eNB,
uint32_t
tti_offset
;
uint8_t
re
;
uint8_t
*
x0p
;
uint8_t
first_re
,
last_re
;
last_re
=
12
;
first_re
=
0
;
if
(
skip_half
==
1
)
last_re
=
6
;
else
if
(
skip_half
==
2
)
first_re
=
6
;
re
=
first_re
;
if
(
skip_dc
==
0
)
{
for
(
x0p
=&
x0
[
*
jj
],
tti_offset
=
symbol_offset
+
re_offset
,
re
=
0
;
re
<
12
;
for
(
x0p
=&
x0
[
*
jj
],
tti_offset
=
symbol_offset
+
re_offset
+
re
;
re
<
last_re
;
re
++
,
x0p
+=
2
,
tti_offset
++
)
{
qpsk_table_offset_re
=
x0p
[
0
];
...
...
@@ -199,8 +208,16 @@ int allocate_REs_in_RB_no_pilots_QPSK_siso(PHY_VARS_eNB* phy_vars_eNB,
((
int16_t
*
)
&
txdataF
[
0
][
tti_offset
])[
1
]
=
qam_table_s0
[
qpsk_table_offset_im
];
}
}
if
(
skip_half
!=
0
)
{
*
re_allocated
=
*
re_allocated
+
6
;
*
jj
=*
jj
+
12
;
}
else
{
*
re_allocated
=
*
re_allocated
+
12
;
*
jj
=*
jj
+
24
;
}
return
(
0
);
}
...
...
@@ -238,12 +255,20 @@ int allocate_REs_in_RB_pilots_QPSK_siso(PHY_VARS_eNB* phy_vars_eNB,
uint32_t
tti_offset
;
uint8_t
re
;
uint8_t
*
x0p
;
uint8_t
first_re
,
last_re
;
last_re
=
12
;
first_re
=
0
;
if
(
skip_half
==
1
)
last_re
=
6
;
else
if
(
skip_half
==
2
)
first_re
=
6
;
re
=
first_re
+
P1_SHIFT
[
0
];
if
(
skip_dc
==
0
)
{
// printf("pilots: P1_SHIFT[0] %d\n",P1_SHIFT[0]);
for
(
x0p
=&
x0
[
*
jj
],
tti_offset
=
symbol_offset
+
re_offset
+
P1_SHIFT
[
0
],
re
=
P1_SHIFT
[
0
]
;
re
<
12
;
for
(
x0p
=&
x0
[
*
jj
],
tti_offset
=
symbol_offset
+
re_offset
+
re
;
re
<
last_re
;
x0p
+=
2
)
{
qpsk_table_offset_re
=
x0p
[
0
];
...
...
@@ -260,8 +285,8 @@ int allocate_REs_in_RB_pilots_QPSK_siso(PHY_VARS_eNB* phy_vars_eNB,
re
<
6
;
x0p
+=
2
)
{
qpsk_table_offset_re
+
=
x0p
[
0
];
qpsk_table_offset_im
+
=
x0p
[
1
];
qpsk_table_offset_re
=
x0p
[
0
];
qpsk_table_offset_im
=
x0p
[
1
];
((
int16_t
*
)
&
txdataF
[
0
][
tti_offset
])[
0
]
=
qam_table_s0
[
qpsk_table_offset_re
];
((
int16_t
*
)
&
txdataF
[
0
][
tti_offset
])[
1
]
=
qam_table_s0
[
qpsk_table_offset_im
];
tti_offset
+=
P1_SHIFT
[
re
+
1
];
...
...
@@ -272,16 +297,24 @@ int allocate_REs_in_RB_pilots_QPSK_siso(PHY_VARS_eNB* phy_vars_eNB,
re
<
12
;
x0p
+=
2
)
{
qpsk_table_offset_re
+
=
x0p
[
0
];
qpsk_table_offset_im
+
=
x0p
[
1
];
qpsk_table_offset_re
=
x0p
[
0
];
qpsk_table_offset_im
=
x0p
[
1
];
((
int16_t
*
)
&
txdataF
[
0
][
tti_offset
])[
0
]
=
qam_table_s0
[
qpsk_table_offset_re
];
((
int16_t
*
)
&
txdataF
[
0
][
tti_offset
])[
1
]
=
qam_table_s0
[
qpsk_table_offset_im
];
tti_offset
+=
P1_SHIFT
[
re
+
1
];
re
+=
P1_SHIFT
[
re
+
1
];
}
}
if
(
skip_half
!=
0
)
{
*
re_allocated
=
*
re_allocated
+
5
;
*
jj
=*
jj
+
10
;
}
else
{
*
re_allocated
=
*
re_allocated
+
10
;
*
jj
=*
jj
+
20
;
}
return
(
0
);
}
...
...
@@ -317,10 +350,19 @@ int allocate_REs_in_RB_no_pilots_16QAM_siso(PHY_VARS_eNB* phy_vars_eNB,
uint32_t
tti_offset
;
uint8_t
re
;
uint8_t
*
x0p
;
uint8_t
first_re
,
last_re
;
last_re
=
12
;
first_re
=
0
;
if
(
skip_half
==
1
)
last_re
=
6
;
else
if
(
skip_half
==
2
)
first_re
=
6
;
re
=
first_re
;
if
(
skip_dc
==
0
)
{
for
(
x0p
=&
x0
[
*
jj
],
tti_offset
=
symbol_offset
+
re_offset
,
re
=
0
;
re
<
12
;
for
(
x0p
=&
x0
[
*
jj
],
tti_offset
=
symbol_offset
+
re_offset
+
re
;
re
<
last_re
;
re
++
,
x0p
+=
4
,
tti_offset
++
)
{
qam16_table_offset_re
=
TWO
[
x0p
[
0
]];
...
...
@@ -357,8 +399,16 @@ int allocate_REs_in_RB_no_pilots_16QAM_siso(PHY_VARS_eNB* phy_vars_eNB,
((
int16_t
*
)
&
txdataF
[
0
][
tti_offset
])[
1
]
=
qam_table_s0
[
qam16_table_offset_im
];
}
}
if
(
skip_half
!=
0
)
{
*
re_allocated
=
*
re_allocated
+
6
;
*
jj
=*
jj
+
24
;
}
else
{
*
re_allocated
=
*
re_allocated
+
12
;
*
jj
=*
jj
+
48
;
}
return
(
0
);
}
...
...
@@ -396,12 +446,21 @@ int allocate_REs_in_RB_pilots_16QAM_siso(PHY_VARS_eNB* phy_vars_eNB,
uint32_t
tti_offset
;
uint8_t
re
;
uint8_t
*
x0p
;
uint8_t
first_re
,
last_re
;
last_re
=
12
;
first_re
=
0
;
if
(
skip_half
==
1
)
last_re
=
6
;
else
if
(
skip_half
==
2
)
first_re
=
6
;
re
=
first_re
+
P1_SHIFT
[
0
];
if
(
skip_dc
==
0
)
{
// LOG_I(PHY,"pilots: P1_SHIFT[0] %d\n",P1_SHIFT[0]);
for
(
x0p
=&
x0
[
*
jj
],
tti_offset
=
symbol_offset
+
re_offset
+
P1_SHIFT
[
0
],
re
=
P1_SHIFT
[
0
]
;
re
<
12
;
for
(
x0p
=&
x0
[
*
jj
],
tti_offset
=
symbol_offset
+
re_offset
+
re
;
re
<
last_re
;
x0p
+=
4
)
{
qam16_table_offset_re
=
TWO
[
x0p
[
0
]];
...
...
@@ -444,8 +503,16 @@ int allocate_REs_in_RB_pilots_16QAM_siso(PHY_VARS_eNB* phy_vars_eNB,
re
+=
P1_SHIFT
[
re
+
1
];
}
}
if
(
skip_half
!=
0
)
{
*
re_allocated
=
*
re_allocated
+
5
;
*
jj
=*
jj
+
20
;
}
else
{
*
re_allocated
=
*
re_allocated
+
10
;
*
jj
=*
jj
+
40
;
}
return
(
0
);
}
...
...
@@ -482,10 +549,16 @@ int allocate_REs_in_RB_no_pilots_64QAM_siso(PHY_VARS_eNB* phy_vars_eNB,
uint32_t
tti_offset
;
uint8_t
re
;
uint8_t
*
x0p
;
uint8_t
first_re
;
first_re
=
0
;
if
(
skip_half
==
2
)
first_re
=
6
;
re
=
first_re
;
if
(
skip_dc
==
0
)
{
x0p
=&
x0
[
*
jj
],
tti_offset
=
symbol_offset
+
re_offset
;
x0p
=&
x0
[
*
jj
],
tti_offset
=
symbol_offset
+
re_offset
+
re
;
/* for (x0p=&x0[*jj],tti_offset=symbol_offset+re_offset,re=0;
re<12;
...
...
@@ -521,6 +594,8 @@ int allocate_REs_in_RB_no_pilots_64QAM_siso(PHY_VARS_eNB* phy_vars_eNB,
((
int16_t
*
)
&
txdataF
[
0
][
tti_offset
])[
10
]
=
qam_table_s0
[
qam64_table_offset_re
];
((
int16_t
*
)
&
txdataF
[
0
][
tti_offset
])[
11
]
=
qam_table_s0
[
qam64_table_offset_im
];
if
(
skip_half
==
0
)
{
qam64_table_offset_re
=
(
x0p
[
36
]
<<
2
)
|
(
x0p
[
38
]
<<
1
)
|
x0p
[
40
];
qam64_table_offset_im
=
(
x0p
[
37
]
<<
2
)
|
(
x0p
[
39
]
<<
1
)
|
x0p
[
41
];
((
int16_t
*
)
&
txdataF
[
0
][
tti_offset
])[
12
]
=
qam_table_s0
[
qam64_table_offset_re
];
...
...
@@ -550,7 +625,7 @@ int allocate_REs_in_RB_no_pilots_64QAM_siso(PHY_VARS_eNB* phy_vars_eNB,
qam64_table_offset_im
=
(
x0p
[
67
]
<<
2
)
|
(
x0p
[
69
]
<<
1
)
|
x0p
[
71
];
((
int16_t
*
)
&
txdataF
[
0
][
tti_offset
])[
22
]
=
qam_table_s0
[
qam64_table_offset_re
];
((
int16_t
*
)
&
txdataF
[
0
][
tti_offset
])[
23
]
=
qam_table_s0
[
qam64_table_offset_im
];
}
// }
}
...
...
@@ -584,8 +659,16 @@ int allocate_REs_in_RB_no_pilots_64QAM_siso(PHY_VARS_eNB* phy_vars_eNB,
}
}
if
(
skip_half
!=
0
)
{
*
re_allocated
=
*
re_allocated
+
6
;
*
jj
=*
jj
+
36
;
}
else
{
*
re_allocated
=
*
re_allocated
+
12
;
*
jj
=*
jj
+
72
;
}
return
(
0
);
}
...
...
@@ -623,12 +706,21 @@ int allocate_REs_in_RB_pilots_64QAM_siso(PHY_VARS_eNB* phy_vars_eNB,
uint32_t
tti_offset
;
uint8_t
re
;
uint8_t
*
x0p
;
uint8_t
first_re
,
last_re
;
last_re
=
12
;
first_re
=
0
;
if
(
skip_half
==
1
)
last_re
=
6
;
else
if
(
skip_half
==
2
)
first_re
=
6
;
re
=
first_re
+
P1_SHIFT
[
0
];
if
(
skip_dc
==
0
)
{
// LOG_I(PHY,"pilots: P1_SHIFT[0] %d\n",P1_SHIFT[0]);
for
(
x0p
=&
x0
[
*
jj
],
tti_offset
=
symbol_offset
+
re_offset
+
P1_SHIFT
[
0
],
re
=
P1_SHIFT
[
0
]
;
re
<
12
;
for
(
x0p
=&
x0
[
*
jj
],
tti_offset
=
symbol_offset
+
re_offset
+
re
;
re
<
last_re
;
x0p
+=
6
)
{
qam64_table_offset_re
=
FOUR
[
x0p
[
0
]];
...
...
@@ -677,8 +769,16 @@ int allocate_REs_in_RB_pilots_64QAM_siso(PHY_VARS_eNB* phy_vars_eNB,
re
+=
P1_SHIFT
[
re
+
1
];
}
}
if
(
skip_half
!=
0
)
{
*
re_allocated
=
*
re_allocated
+
5
;
*
jj
=*
jj
+
30
;
}
else
{
*
re_allocated
=
*
re_allocated
+
10
;
*
jj
=*
jj
+
60
;
}
return
(
0
);
}
...
...
@@ -2423,7 +2523,7 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
* with above code that needs to be analyzed and fixed. In the
* meantime, let's use the generic function.
*/
allocate_REs
=
allocate_REs_in_RB
;
//
allocate_REs = allocate_REs_in_RB;
break
;
}
...
...
@@ -2432,7 +2532,8 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
* previous version. Some more work/validation is needed before
* we switch to the new version.
*/
allocate_REs
=
allocate_REs_in_RB
;
// allocate_REs = allocate_REs_in_RB;
//
switch
(
mod_order1
)
{
case
2
:
...
...
@@ -2486,8 +2587,6 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
skip_half
=
check_skiphalf
(
rb
,
subframe_offset
,
frame_parms
,
l
,
nsymb
);
skip_dc
=
check_skip_dc
(
rb
,
frame_parms
);
if
(
dlsch0
)
{
if
(
dlsch0_harq
->
Nlayers
>
1
)
{
LOG_E
(
PHY
,
"Nlayers %d: re_offset %d, symbol %d offset %d
\n
"
,
dlsch0_harq
->
Nlayers
,
re_offset
,
l
,
symbol_offset
);
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/eNB_scheduler_phytest.c
View file @
9399dd97
...
...
@@ -71,7 +71,7 @@ schedule_ue_spec_phy_test(
uint16_t
rnti
=
0x1235
;
uint32_t
rb_alloc
=
0x1FFFFF
;
int32_t
tpc
=
1
;
int32_t
mcs
=
28
;
int32_t
mcs
=
10
;
int32_t
cqi
=
15
;
int32_t
ndi
=
(
frameP
*
10
+
subframeP
)
/
8
;
int32_t
dai
=
0
;
...
...
@@ -202,7 +202,8 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s
int32_t
normalized_rx_power
;
int32_t
target_rx_power
=
178
;
int
CC_id
=
0
;
int
nb_rb
=
96
;
int
nb_rb
=
24
;
int
N_RB_UL
;
eNB_MAC_INST
*
mac
=
RC
.
mac
[
module_idP
];
COMMON_channels_t
*
cc
=
&
mac
->
common_channels
[
0
];
UE_list_t
*
UE_list
=&
mac
->
UE_list
;
...
...
@@ -212,7 +213,6 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s
int
sched_subframe
=
(
subframeP
+
4
)
%
10
;
uint16_t
ul_req_index
;
if
(
sched_subframe
<
subframeP
)
sched_frame
++
;
nfapi_hi_dci0_request_t
*
hi_dci0_req
=
&
mac
->
HI_DCI0_req
[
CC_id
][
subframeP
];
...
...
@@ -222,6 +222,18 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s
//nfapi_ul_config_request_pdu_t *ul_config_pdu = &ul_req->ul_config_pdu_list[0];;
nfapi_ul_config_request_body_t
*
ul_req
=
&
mac
->
UL_req
[
CC_id
].
ul_config_request_body
;
N_RB_UL
=
to_prb
(
cc
->
mib
->
message
.
dl_Bandwidth
);
switch
(
N_RB_UL
){
case
100
:
nb_rb
=
96
;
break
;
case
50
:
nb_rb
=
48
;
break
;
case
25
:
nb_rb
=
24
;
break
;
}
mac
->
UL_req
[
CC_id
].
sfn_sf
=
(
sched_frame
<<
4
)
+
sched_subframe
;
hi_dci0_req
->
sfn_sf
=
(
frameP
<<
4
)
+
subframeP
;
...
...
@@ -306,7 +318,6 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s
hi_dci0_req_body
->
number_of_dci
++
;
ul_req_index
=
0
;
for
(
ul_req_index
=
0
;
ul_req_index
<
ul_req
->
number_of_pdus
;
ul_req_index
++
){
if
(
ul_req
->
ul_config_pdu_list
[
ul_req_index
].
pdu_type
==
NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE
){
LOG_D
(
MAC
,
"Frame %d, Subframe %d:rnti %x ul_req_index %d Switched UCI HARQ to ULSCH HARQ(first)
\n
"
,
frameP
,
subframeP
,
rnti
,
ul_req_index
);
...
...
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