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
promise
OpenXG-RAN
Commits
84c61990
Commit
84c61990
authored
Jan 14, 2017
by
Raymond.Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix for S-subframe handling (if4p5_asynch_DL)
parent
4c78c177
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
9 additions
and
6 deletions
+9
-6
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+9
-6
No files found.
targets/RT/USER/lte-enb.c
View file @
84c61990
...
@@ -768,7 +768,7 @@ void fh_if4p5_asynch_DL(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
...
@@ -768,7 +768,7 @@ void fh_if4p5_asynch_DL(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
int
subframe_tx
,
frame_tx
;
int
subframe_tx
,
frame_tx
;
symbol_number
=
0
;
symbol_number
=
0
;
symbol_mask_full
=
(
subframe_select
(
fp
,
*
subframe
)
==
SF_S
)
?
(
1
<<
fp
->
dl_symbols_in_S_subframe
)
:
(
1
<<
fp
->
symbols_per_tti
)
-
1
;
// correct for TDD
// correct for TDD
if
(
fp
->
frame_type
==
TDD
)
{
if
(
fp
->
frame_type
==
TDD
)
{
...
@@ -780,6 +780,7 @@ void fh_if4p5_asynch_DL(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
...
@@ -780,6 +780,7 @@ void fh_if4p5_asynch_DL(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
}
}
}
}
}
}
symbol_mask_full
=
((
subframe_select
(
fp
,
*
subframe
)
==
SF_S
)
?
(
1
<<
fp
->
dl_symbols_in_S_subframe
)
:
(
1
<<
fp
->
symbols_per_tti
))
-
1
;
do
{
// Blocking, we need a timeout on this !!!!!!!!!!!!!!!!!!!!!!!
do
{
// Blocking, we need a timeout on this !!!!!!!!!!!!!!!!!!!!!!!
recv_IF4p5
(
eNB
,
&
frame_tx
,
&
subframe_tx
,
&
packet_type
,
&
symbol_number
);
recv_IF4p5
(
eNB
,
&
frame_tx
,
&
subframe_tx
,
&
packet_type
,
&
symbol_number
);
if
(
proc
->
first_tx
!=
0
)
{
if
(
proc
->
first_tx
!=
0
)
{
...
@@ -1047,10 +1048,11 @@ void rx_fh_if4p5(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
...
@@ -1047,10 +1048,11 @@ void rx_fh_if4p5(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
proc
->
symbol_mask
[
sf
]
=
proc
->
symbol_mask
[
sf
]
|
(
1
<<
symbol_number
);
proc
->
symbol_mask
[
sf
]
=
proc
->
symbol_mask
[
sf
]
|
(
1
<<
symbol_number
);
}
else
if
(
packet_type
==
IF4p5_PULTICK
)
{
}
else
if
(
packet_type
==
IF4p5_PULTICK
)
{
if
(
f
!=*
frame
)
if
((
proc
->
first_rx
==
0
)
&&
(
f
!=*
frame
))
LOG_E
(
PHY
,
"rx_fh_if4p5: PULTICK received frame %d != expected %d
\n
"
,
f
,
*
frame
);
LOG_E
(
PHY
,
"rx_fh_if4p5: PULTICK received frame %d != expected %d
\n
"
,
f
,
*
frame
);
if
(
sf
!=*
subframe
)
if
(
(
proc
->
first_rx
==
0
)
&&
(
sf
!=*
subframe
)
)
LOG_E
(
PHY
,
"rx_fh_if4p5: PULTICK received subframe %d != expected %d
\n
"
,
sf
,
*
subframe
);
LOG_E
(
PHY
,
"rx_fh_if4p5: PULTICK received subframe %d != expected %d
(first_rx %d)
\n
"
,
sf
,
*
subframe
,
proc
->
first_rx
);
break
;
break
;
}
else
if
(
packet_type
==
IF4p5_PRACH
)
{
}
else
if
(
packet_type
==
IF4p5_PRACH
)
{
LOG_D
(
PHY
,
"rx_fh:if4p5: frame %d, subframe %d, PRACH
\n
"
,
f
,
sf
);
LOG_D
(
PHY
,
"rx_fh:if4p5: frame %d, subframe %d, PRACH
\n
"
,
f
,
sf
);
...
@@ -1061,8 +1063,9 @@ void rx_fh_if4p5(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
...
@@ -1061,8 +1063,9 @@ void rx_fh_if4p5(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
if
(
eNB
->
CC_id
==
1
)
LOG_I
(
PHY
,
"rx_fh_if4p5: symbol_mask[%d] %x
\n
"
,
*
subframe
,
proc
->
symbol_mask
[
*
subframe
]);
if
(
eNB
->
CC_id
==
1
)
LOG_I
(
PHY
,
"rx_fh_if4p5: symbol_mask[%d] %x
\n
"
,
*
subframe
,
proc
->
symbol_mask
[
*
subframe
]);
}
while
(
proc
->
symbol_mask
[
*
subframe
]
!=
symbol_mask_full
);
}
while
(
proc
->
symbol_mask
[
*
subframe
]
!=
symbol_mask_full
);
proc
->
subframe_rx
=
*
subframe
;
proc
->
frame_rx
=
*
frame
;
proc
->
subframe_rx
=
sf
;
proc
->
frame_rx
=
f
;
proc
->
symbol_mask
[
*
subframe
]
=
0
;
proc
->
symbol_mask
[
*
subframe
]
=
0
;
proc
->
symbol_mask
[(
9
+*
subframe
)
%
10
]
=
0
;
// to handle a resynchronization event
proc
->
symbol_mask
[(
9
+*
subframe
)
%
10
]
=
0
;
// to handle a resynchronization event
...
...
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