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
8b668171
Commit
8b668171
authored
Oct 21, 2019
by
masayuki.harada
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix TM3 in PHY.
parent
b522db88
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
74 additions
and
19 deletions
+74
-19
openair1/PHY/LTE_TRANSPORT/pucch.c
openair1/PHY/LTE_TRANSPORT/pucch.c
+6
-2
openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
+1
-1
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+58
-11
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
+9
-5
No files found.
openair1/PHY/LTE_TRANSPORT/pucch.c
View file @
8b668171
...
@@ -1374,8 +1374,12 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB,
...
@@ -1374,8 +1374,12 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB,
*
payload
=
(
stat_re
<
0
)
?
1
:
2
;
// 1 == ACK, 2 == NAK
*
payload
=
(
stat_re
<
0
)
?
1
:
2
;
// 1 == ACK, 2 == NAK
if
(
fmt
==
pucch_format1b
)
if
(
fmt
==
pucch_format1b
){
*
(
1
+
payload
)
=
(
stat_im
<
0
)
?
1
:
2
;
*
payload
=
(
stat_im
>
stat_re
)
?
1
:
2
;
*
(
1
+
payload
)
=
(
stat_im
>
(
-
1
.
0
*
stat_re
))
?
2
:
1
;
LOG_D
(
PHY
,
"PUCCH 1b ACK/NAK subframe %d : stat %d, stat %d %d, payload %d %d
\n
"
,
subframe
,
dB_fixed
(
stat_max
),
stat_re
,
stat_im
,
*
payload
,
*
(
1
+
payload
));
}
}
else
{
// insufficient energy on PUCCH so NAK
}
else
{
// insufficient energy on PUCCH so NAK
#if defined(USRP_REC_PLAY)
#if defined(USRP_REC_PLAY)
LOG_D
(
PHY
,
"PUCCH 1a/b: NAK subframe %d : sigma2_dB %d, stat_max %d, pucch1_thres %d
\n
"
,
subframe
,
sigma2_dB
,
dB_fixed
(
stat_max
),
pucch1_thres
);
LOG_D
(
PHY
,
"PUCCH 1a/b: NAK subframe %d : sigma2_dB %d, stat_max %d, pucch1_thres %d
\n
"
,
subframe
,
sigma2_dB
,
dB_fixed
(
stat_max
),
pucch1_thres
);
...
...
openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
View file @
8b668171
...
@@ -1344,7 +1344,7 @@ unsigned int ulsch_decoding(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc,
...
@@ -1344,7 +1344,7 @@ unsigned int ulsch_decoding(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc,
// rank 1
// rank 1
if
((
ulsch_harq
->
O_RI
==
1
)
&&
(
Qprime_RI
>
0
))
{
if
((
ulsch_harq
->
O_RI
==
1
)
&&
(
Qprime_RI
>
0
))
{
ulsch_harq
->
o_RI
[
0
]
=
((
ulsch_harq
->
q_RI
[
0
]
+
ulsch_harq
->
q_RI
[
Q_m
/
2
])
>
0
)
?
0
:
1
;
ulsch_harq
->
o_RI
[
0
]
=
((
ulsch_harq
->
q_RI
[
0
]
+
ulsch_harq
->
q_RI
[
1
])
>
0
)
?
1
:
0
;
}
}
// CQI
// CQI
...
...
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
8b668171
...
@@ -325,6 +325,10 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
...
@@ -325,6 +325,10 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
int
subframe
=
proc
->
subframe_tx
;
int
subframe
=
proc
->
subframe_tx
;
LTE_DL_eNB_HARQ_t
*
dlsch_harq
=
dlsch
->
harq_processes
[
harq_pid
];
LTE_DL_eNB_HARQ_t
*
dlsch_harq
=
dlsch
->
harq_processes
[
harq_pid
];
LTE_DL_FRAME_PARMS
*
fp
=&
eNB
->
frame_parms
;
LTE_DL_FRAME_PARMS
*
fp
=&
eNB
->
frame_parms
;
LTE_DL_eNB_HARQ_t
*
dlsch_harq1
=
NULL
;
if
(
dlsch1
->
active
[
subframe
]
==
1
){
dlsch_harq1
=
dlsch1
->
harq_processes
[
harq_pid
];
}
// 36-211
// 36-211
start_meas
(
&
eNB
->
dlsch_scrambling_stats
);
start_meas
(
&
eNB
->
dlsch_scrambling_stats
);
dlsch_scrambling
(
fp
,
dlsch_scrambling
(
fp
,
...
@@ -343,15 +347,58 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
...
@@ -343,15 +347,58 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
frame
,
frame
,
subframe
<<
1
);
subframe
<<
1
);
stop_meas
(
&
eNB
->
dlsch_scrambling_stats
);
stop_meas
(
&
eNB
->
dlsch_scrambling_stats
);
if
(
dlsch1
->
active
[
subframe
]
==
1
){
dlsch_encoding_all
(
eNB
,
dlsch_harq1
->
pdu
,
dlsch_harq
->
pdsch_start
,
dlsch1
,
frame
,
subframe
,
&
eNB
->
dlsch_rate_matching_stats
,
&
eNB
->
dlsch_turbo_encoding_stats
,
&
eNB
->
dlsch_turbo_encoding_waiting_stats
,
&
eNB
->
dlsch_turbo_encoding_main_stats
,
&
eNB
->
dlsch_turbo_encoding_wakeup_stats0
,
&
eNB
->
dlsch_turbo_encoding_wakeup_stats1
,
&
eNB
->
dlsch_interleaving_stats
);
dlsch_scrambling
(
fp
,
0
,
dlsch1
,
harq_pid
,
get_G
(
fp
,
dlsch_harq1
->
nb_rb
,
dlsch_harq1
->
rb_alloc
,
dlsch_harq1
->
Qm
,
dlsch_harq1
->
Nl
,
dlsch_harq1
->
pdsch_start
,
frame
,
subframe
,
0
),
1
,
frame
,
subframe
<<
1
);
}
start_meas
(
&
eNB
->
dlsch_modulation_stats
);
start_meas
(
&
eNB
->
dlsch_modulation_stats
);
dlsch_modulation
(
eNB
,
if
(
dlsch1
->
active
[
subframe
]
==
1
){
eNB
->
common_vars
.
txdataF
,
dlsch_modulation
(
eNB
,
AMP
,
eNB
->
common_vars
.
txdataF
,
frame
,
AMP
,
subframe
,
frame
,
dlsch_harq
->
pdsch_start
,
subframe
,
dlsch
,
dlsch_harq
->
pdsch_start
,
dlsch
->
ue_type
==
0
?
dlsch1
:
(
LTE_eNB_DLSCH_t
*
)
NULL
);
dlsch
,
dlsch
->
ue_type
==
0
?
dlsch1
:
(
LTE_eNB_DLSCH_t
*
)
NULL
);
}
else
{
dlsch_modulation
(
eNB
,
eNB
->
common_vars
.
txdataF
,
AMP
,
frame
,
subframe
,
dlsch_harq
->
pdsch_start
,
dlsch
,
(
LTE_eNB_DLSCH_t
*
)
NULL
);
}
dlsch1
->
active
[
subframe
]
=
0
;
stop_meas
(
&
eNB
->
dlsch_modulation_stats
);
stop_meas
(
&
eNB
->
dlsch_modulation_stats
);
LOG_D
(
PHY
,
"Generated PDSCH dlsch_harq[round:%d]
\n
"
,
dlsch_harq
->
round
);
LOG_D
(
PHY
,
"Generated PDSCH dlsch_harq[round:%d]
\n
"
,
dlsch_harq
->
round
);
...
@@ -1661,10 +1708,10 @@ void fill_ulsch_cqi_indication (PHY_VARS_eNB *eNB, uint16_t frame, uint8_t subfr
...
@@ -1661,10 +1708,10 @@ void fill_ulsch_cqi_indication (PHY_VARS_eNB *eNB, uint16_t frame, uint8_t subfr
// if we have RI bits, set them and if rank2 overwrite O
// if we have RI bits, set them and if rank2 overwrite O
if
(
ulsch_harq
->
O_RI
>
0
)
{
if
(
ulsch_harq
->
O_RI
>
0
)
{
pdu
->
cqi_indication_rel9
.
ri
[
0
]
=
ulsch_harq
->
o_RI
[
0
];
pdu
->
cqi_indication_rel9
.
ri
[
0
]
=
ulsch_harq
->
o_RI
[
0
]
+
1
;
if
(
ulsch_harq
->
o_RI
[
0
]
==
2
)
if
(
ulsch_harq
->
o_RI
[
0
]
==
1
)
pdu
->
cqi_indication_rel9
.
length
=
(
ulsch_harq
->
Or2
>>
3
)
+
((
ulsch_harq
->
Or2
&
7
)
>
0
?
1
:
0
);
pdu
->
cqi_indication_rel9
.
length
+
=
(
ulsch_harq
->
Or2
>>
3
)
+
((
ulsch_harq
->
Or2
&
7
)
>
0
?
1
:
0
);
pdu
->
cqi_indication_rel9
.
timing_advance
=
0
;
pdu
->
cqi_indication_rel9
.
timing_advance
=
0
;
}
}
...
...
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
View file @
8b668171
...
@@ -1262,10 +1262,14 @@ getm_mac(COMMON_channels_t * cc,unsigned char subframe)
...
@@ -1262,10 +1262,14 @@ getm_mac(COMMON_channels_t * cc,unsigned char subframe)
else
{
else
{
switch
(
cc
->
tdd_Config
->
subframeAssignment
)
{
switch
(
cc
->
tdd_Config
->
subframeAssignment
)
{
case
1
:
case
1
:
if
(
subframe
==
1
)
{
if
(
subframe
==
0
)
{
return
(
1
);
return
(
0
);
}
else
if
(
subframe
==
6
)
{
}
else
if
(
subframe
==
4
)
{
return
(
1
);
// To be updated
return
(
0
);
}
else
if
(
subframe
==
5
)
{
return
(
0
);
}
else
if
(
subframe
==
9
)
{
return
(
0
);
// To be updated
}
else
{
}
else
{
LOG_E
(
MAC
,
"getm_mac illegl subframe %d
\n
"
,
subframe
);
LOG_E
(
MAC
,
"getm_mac illegl subframe %d
\n
"
,
subframe
);
return
(
0
);
return
(
0
);
...
@@ -4734,7 +4738,7 @@ extract_harq(module_id_t mod_idP,
...
@@ -4734,7 +4738,7 @@ extract_harq(module_id_t mod_idP,
sched_ctl
->
rsn
[
CC_idP
][
harq_pid
][
swap_flg
]
=
0
;
sched_ctl
->
rsn
[
CC_idP
][
harq_pid
][
swap_flg
]
=
0
;
}
}
}
else
}
else
AssertFatal
(
1
==
0
,
LOG_E
(
PHY
,
"Illegal ACK/NAK/round combination (%d,%d,%d,%d,%d,%d,%d,%d,%d) for harq_pid %d, UE %d/%x
\n
"
,
"Illegal ACK/NAK/round combination (%d,%d,%d,%d,%d,%d,%d,%d,%d) for harq_pid %d, UE %d/%x
\n
"
,
frameP
,
frameP
,
subframeP
,
subframeP
,
...
...
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