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
lizhongxiao
OpenXG-RAN
Commits
9091b004
Commit
9091b004
authored
Feb 13, 2017
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
check for pdcch_order rballoc in eNB and allow special DCI instead of aborting.
parent
b325d0a1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
21 additions
and
5 deletions
+21
-5
openair1/PHY/LTE_TRANSPORT/dci_tools.c
openair1/PHY/LTE_TRANSPORT/dci_tools.c
+13
-1
openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
+2
-1
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+6
-3
No files found.
openair1/PHY/LTE_TRANSPORT/dci_tools.c
View file @
9091b004
...
@@ -882,6 +882,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
...
@@ -882,6 +882,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
uint8_t
rah
=
0
;
uint8_t
rah
=
0
;
uint8_t
TPC
=
0
;
uint8_t
TPC
=
0
;
LTE_DL_eNB_HARQ_t
*
dlsch0_harq
=
NULL
,
*
dlsch1_harq
=
NULL
;
LTE_DL_eNB_HARQ_t
*
dlsch0_harq
=
NULL
,
*
dlsch1_harq
=
NULL
;
int
pdcch_order
=
0
;
// printf("Generate eNB DCI, format %d, rnti %x (pdu %p)\n",dci_format,rnti,dci_pdu);
// printf("Generate eNB DCI, format %d, rnti %x (pdu %p)\n",dci_format,rnti,dci_pdu);
...
@@ -933,6 +934,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
...
@@ -933,6 +934,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
dlsch0_harq
->
nb_rb
=
RIV2nb_rb_LUT6
[
rballoc
];
//NPRB;
dlsch0_harq
->
nb_rb
=
RIV2nb_rb_LUT6
[
rballoc
];
//NPRB;
RIV_max
=
RIV_max6
;
RIV_max
=
RIV_max6
;
pdcch_order
=
31
;
break
;
break
;
...
@@ -970,6 +972,9 @@ int generate_eNB_dlsch_params_from_dci(int frame,
...
@@ -970,6 +972,9 @@ int generate_eNB_dlsch_params_from_dci(int frame,
dlsch0_harq
->
vrb_type
=
vrb_type
;
dlsch0_harq
->
vrb_type
=
vrb_type
;
dlsch0_harq
->
nb_rb
=
RIV2nb_rb_LUT25
[
rballoc
];
//NPRB;
dlsch0_harq
->
nb_rb
=
RIV2nb_rb_LUT25
[
rballoc
];
//NPRB;
RIV_max
=
RIV_max25
;
RIV_max
=
RIV_max25
;
pdcch_order
=
511
;
break
;
break
;
case
50
:
case
50
:
...
@@ -1006,6 +1011,9 @@ int generate_eNB_dlsch_params_from_dci(int frame,
...
@@ -1006,6 +1011,9 @@ int generate_eNB_dlsch_params_from_dci(int frame,
dlsch0_harq
->
vrb_type
=
vrb_type
;
dlsch0_harq
->
vrb_type
=
vrb_type
;
dlsch0_harq
->
nb_rb
=
RIV2nb_rb_LUT50
[
rballoc
];
//NPRB;
dlsch0_harq
->
nb_rb
=
RIV2nb_rb_LUT50
[
rballoc
];
//NPRB;
RIV_max
=
RIV_max50
;
RIV_max
=
RIV_max50
;
pdcch_order
=
2047
;
break
;
break
;
case
100
:
case
100
:
...
@@ -1045,6 +1053,9 @@ int generate_eNB_dlsch_params_from_dci(int frame,
...
@@ -1045,6 +1053,9 @@ int generate_eNB_dlsch_params_from_dci(int frame,
dlsch0_harq
->
nb_rb
=
RIV2nb_rb_LUT100
[
rballoc
];
//NPRB;
dlsch0_harq
->
nb_rb
=
RIV2nb_rb_LUT100
[
rballoc
];
//NPRB;
RIV_max
=
RIV_max100
;
RIV_max
=
RIV_max100
;
pdcch_order
=
8191
;
break
;
break
;
default:
default:
...
@@ -1066,7 +1077,8 @@ int generate_eNB_dlsch_params_from_dci(int frame,
...
@@ -1066,7 +1077,8 @@ int generate_eNB_dlsch_params_from_dci(int frame,
return
(
-
1
);
return
(
-
1
);
}
}
if
(
rballoc
>
RIV_max
)
{
if
((
rballoc
>
RIV_max
)
&&
(
rballoc
!=
pdcch_order
))
LOG_E
(
PHY
,
"ERROR: Format 1A: rb_alloc (%x) > RIV_max (%x)
\n
"
,
rballoc
,
RIV_max
);
LOG_E
(
PHY
,
"ERROR: Format 1A: rb_alloc (%x) > RIV_max (%x)
\n
"
,
rballoc
,
RIV_max
);
return
(
-
1
);
return
(
-
1
);
}
}
...
...
openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
View file @
9091b004
...
@@ -506,6 +506,7 @@ int dlsch_encoding_2threads(PHY_VARS_eNB *eNB,
...
@@ -506,6 +506,7 @@ int dlsch_encoding_2threads(PHY_VARS_eNB *eNB,
}
}
}
}
// Fill in the "e"-sequence from 36-212, V8.6 2009-03, p. 16-17 (for each "e") and concatenate the
// Fill in the "e"-sequence from 36-212, V8.6 2009-03, p. 16-17 (for each "e") and concatenate the
// outputs for each code segment, see Section 5.1.5 p.20
// outputs for each code segment, see Section 5.1.5 p.20
...
@@ -543,10 +544,10 @@ int dlsch_encoding_2threads(PHY_VARS_eNB *eNB,
...
@@ -543,10 +544,10 @@ int dlsch_encoding_2threads(PHY_VARS_eNB *eNB,
}
}
}
}
// wait for worker to finish
// wait for worker to finish
wait_on_busy_condition
(
&
proc
->
mutex_te
,
&
proc
->
cond_te
,
&
proc
->
instance_cnt_te
,
"te thread"
);
wait_on_busy_condition
(
&
proc
->
mutex_te
,
&
proc
->
cond_te
,
&
proc
->
instance_cnt_te
,
"te thread"
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING
,
VCD_FUNCTION_OUT
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING
,
VCD_FUNCTION_OUT
);
...
...
targets/RT/USER/lte-enb.c
View file @
9091b004
...
@@ -1743,12 +1743,15 @@ void init_eNB_proc(int inst) {
...
@@ -1743,12 +1743,15 @@ void init_eNB_proc(int inst) {
}
}
else
{
else
{
pthread_create
(
&
proc
->
pthread_single
,
attr_single
,
eNB_thread_single
,
&
eNB
->
proc
);
pthread_create
(
&
proc
->
pthread_single
,
attr_single
,
eNB_thread_single
,
&
eNB
->
proc
);
init_fep_thread
(
eNB
,
attr_fep
);
/*
init_fep_thread(eNB,attr_fep);
init_td_thread(eNB,attr_td);
init_td_thread(eNB,attr_td);
init_te_thread
(
eNB
,
attr_te
);
init_te_thread(eNB,attr_te);
*/
}
}
pthread_create
(
&
proc
->
pthread_prach
,
attr_prach
,
eNB_thread_prach
,
&
eNB
->
proc
);
pthread_create
(
&
proc
->
pthread_prach
,
attr_prach
,
eNB_thread_prach
,
&
eNB
->
proc
);
pthread_create
(
&
proc
->
pthread_synch
,
attr_synch
,
eNB_thread_synch
,
eNB
);
if
((
eNB
->
is_slave
)
&&
((
eNB
->
node_function
>=
NGFI_RRU_IF5
)))
pthread_create
(
&
proc
->
pthread_synch
,
attr_synch
,
eNB_thread_synch
,
eNB
);
if
((
eNB
->
node_timing
==
synch_to_other
)
||
if
((
eNB
->
node_timing
==
synch_to_other
)
||
(
eNB
->
node_function
==
NGFI_RRU_IF5
)
||
(
eNB
->
node_function
==
NGFI_RRU_IF5
)
||
(
eNB
->
node_function
==
NGFI_RRU_IF4p5
))
(
eNB
->
node_function
==
NGFI_RRU_IF4p5
))
...
...
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