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
Michael Black
OpenXG-RAN
Commits
63ac8b4c
Commit
63ac8b4c
authored
Dec 06, 2017
by
Tien-Thinh Nguyen
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of gitlab.eurecom.fr:matzakos/LTE-D2D
parents
c7c8057f
93627a4c
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
298 additions
and
50 deletions
+298
-50
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+31
-29
nfapi/nfapi_pnf.c
nfapi/nfapi_pnf.c
+24
-3
openair2/ENB_APP/enb_app.c
openair2/ENB_APP/enb_app.c
+5
-0
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+16
-6
openair2/RRC/LITE/rrc_eNB.c
openair2/RRC/LITE/rrc_eNB.c
+5
-5
targets/PROJECTS/GENERIC-LTE-EPC/CONF/oaiL1.nfapi.usrpb210.conf
...s/PROJECTS/GENERIC-LTE-EPC/CONF/oaiL1.nfapi.usrpb210.conf
+3
-3
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi-STUB.conf
.../GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi-STUB.conf
+201
-0
targets/RT/USER/lte-softmodem-stub.c
targets/RT/USER/lte-softmodem-stub.c
+2
-0
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+1
-1
targets/RT/USER/lte-ue.c
targets/RT/USER/lte-ue.c
+10
-3
No files found.
cmake_targets/CMakeLists.txt
View file @
63ac8b4c
...
@@ -1891,27 +1891,25 @@ target_link_libraries (lte-softmodem ${T_LIB})
...
@@ -1891,27 +1891,25 @@ target_link_libraries (lte-softmodem ${T_LIB})
# lte-softmodem-nos1 is both eNB and UE implementation
# lte-softmodem-stub is both eNB and UE implementation
###################################################
###################################################
add_executable
(
lte-softmodem-nos1
add_executable
(
lte-softmodem-stub
${
rrc_h
}
${
rrc_h
}
${
s1ap_h
}
${
s1ap_h
}
${
OPENAIR_BIN_DIR
}
/messages_xml.h
${
OPENAIR_BIN_DIR
}
/messages_xml.h
${
OPENAIR_TARGETS
}
/RT/USER/rt_wrapper.c
${
OPENAIR_TARGETS
}
/RT/USER/rt_wrapper.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-ue.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-ue.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-enb.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-enb.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-softmodem-stub.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-ru.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-softmodem.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/taus.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/taus.c
${
OPENAIR_TARGETS
}
/SIMU/USER/init_lte.c
${
OPENAIR_TARGETS
}
/SIMU/USER/init_lte.c
${
OPENAIR_TARGETS
}
/COMMON/create_tasks.c
${
OPENAIR_TARGETS
}
/COMMON/create_tasks.c
${
OPENAIR_TARGETS
}
/ARCH/COMMON/common_lib.c
${
OPENAIR_TARGETS
}
/ARCH/COMMON/common_lib.c
${
OPENAIR2_DIR
}
/RRC/NAS/nas_config.c
${
OPENAIR2_DIR
}
/RRC/NAS/rb_config.c
${
OPENAIR1_DIR
}
/SIMULATION/ETH_TRANSPORT/netlink_init.c
${
OPENAIR1_DIR
}
/SIMULATION/ETH_TRANSPORT/netlink_init.c
${
OPENAIR3_DIR
}
/NAS/UE/nas_ue_task.c
${
OPENAIR_DIR
}
/common/utils/utils.c
${
OPENAIR_DIR
}
/common/utils/system.c
${
OPENAIR_DIR
}
/common/utils/system.c
${
GTPU_need_ITTI
}
${
RTAI_SOURCE
}
${
RTAI_SOURCE
}
${
XFORMS_SOURCE
}
${
XFORMS_SOURCE
}
${
XFORMS_SOURCE_SOFTMODEM
}
${
XFORMS_SOURCE_SOFTMODEM
}
...
@@ -1919,40 +1917,39 @@ add_executable(lte-softmodem-stub
...
@@ -1919,40 +1917,39 @@ add_executable(lte-softmodem-stub
${
CONFIG_SOURCES
}
${
CONFIG_SOURCES
}
${
SHLIB_LOADER_SOURCES
}
${
SHLIB_LOADER_SOURCES
}
)
)
target_link_libraries
(
lte-softmodem-nos1
target_link_libraries
(
lte-softmodem-stub
-Wl,--start-group
-Wl,--start-group
RRC_LIB S
1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS L2
${
MSC_LIB
}
${
RAL_LIB
}
${
NAS_UE
_LIB
}
${
ITTI_LIB
}
${
MIH_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FLEXRAN_AGENT_LIB
}
LFDS7
RRC_LIB S
ECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS L2
${
MSC_LIB
}
${
RAL
_LIB
}
${
ITTI_LIB
}
${
MIH_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FLEXRAN_AGENT_LIB
}
LFDS7
NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB
NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB
NFAPI_USER_LIB
NFAPI_USER_LIB
-Wl,--end-group z dl
)
-Wl,--end-group z dl
)
target_link_libraries
(
lte-softmodem-stub
${
LIBXML2_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-nos1
${
LIBXML2_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-stub pthread m
${
CONFIG_LIBRARIES
}
rt crypt
${
CRYPTO_LIBRARIES
}
${
OPENSSL_LIBRARIES
}
${
NETTLE_LIBRARIES
}
sctp
${
XFORMS_LIBRARIES
}
${
PROTOBUF_LIB
}
${
CMAKE_DL_LIBS
}
${
LIBYAML_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-nos1 pthread m
${
CONFIG_LIBRARIES
}
rt crypt
${
CRYPTO_LIBRARIES
}
${
OPENSSL_LIBRARIES
}
${
NETTLE_LIBRARIES
}
sctp
${
XFORMS_LIBRARIES
}
${
PROTOBUF_LIB
}
${
CMAKE_DL_LIBS
}
${
LIBYAML_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-stub
${
LIB_LMS_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-nos1
${
LIB_LMS_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-stub
${
T_LIB
}
)
target_link_libraries
(
lte-softmodem-nos1
${
T_LIB
}
)
# lte-softmodem-
nos1
is both eNB and UE implementation
# lte-softmodem-
stub
is both eNB and UE implementation
###################################################
###################################################
add_executable
(
lte-softmodem-nos1
add_executable
(
lte-softmodem-stub
${
rrc_h
}
${
rrc_h
}
${
s1ap_h
}
${
s1ap_h
}
${
OPENAIR_BIN_DIR
}
/messages_xml.h
${
OPENAIR_BIN_DIR
}
/messages_xml.h
${
OPENAIR_TARGETS
}
/RT/USER/rt_wrapper.c
${
OPENAIR_TARGETS
}
/RT/USER/rt_wrapper.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-ue.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-ue.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-enb.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-enb.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-softmodem.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-softmodem
-stub
.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/taus.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/taus.c
${
OPENAIR_TARGETS
}
/SIMU/USER/init_lte.c
${
OPENAIR_TARGETS
}
/SIMU/USER/init_lte.c
${
OPENAIR_TARGETS
}
/COMMON/create_tasks.c
${
OPENAIR_TARGETS
}
/COMMON/create_tasks.c
${
OPENAIR_TARGETS
}
/ARCH/COMMON/common_lib.c
${
OPENAIR_TARGETS
}
/ARCH/COMMON/common_lib.c
${
OPENAIR2_DIR
}
/RRC/NAS/nas_config.c
${
OPENAIR2_DIR
}
/RRC/NAS/rb_config.c
${
OPENAIR1_DIR
}
/SIMULATION/ETH_TRANSPORT/netlink_init.c
${
OPENAIR1_DIR
}
/SIMULATION/ETH_TRANSPORT/netlink_init.c
${
OPENAIR3_DIR
}
/NAS/UE/nas_ue_task.c
${
OPENAIR_DIR
}
/common/utils/utils.c
${
OPENAIR_DIR
}
/common/utils/system.c
${
OPENAIR_DIR
}
/common/utils/system.c
${
GTPU_need_ITTI
}
${
RTAI_SOURCE
}
${
RTAI_SOURCE
}
${
XFORMS_SOURCE
}
${
XFORMS_SOURCE
}
${
XFORMS_SOURCE_SOFTMODEM
}
${
XFORMS_SOURCE_SOFTMODEM
}
...
@@ -1960,15 +1957,20 @@ add_executable(lte-softmodem-nos1
...
@@ -1960,15 +1957,20 @@ add_executable(lte-softmodem-nos1
${
CONFIG_SOURCES
}
${
CONFIG_SOURCES
}
${
SHLIB_LOADER_SOURCES
}
${
SHLIB_LOADER_SOURCES
}
)
)
target_link_libraries
(
lte-softmodem-nos1
target_link_libraries
(
lte-softmodem-stub
-Wl,--start-group
-Wl,--start-group
RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_LIB PHY LFDS L2
${
MSC_LIB
}
${
RAL_LIB
}
${
ITTI_LIB
}
${
MIH_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FLEXRAN_AGENT_LIB
}
LFDS7
RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS L2
${
MSC_LIB
}
${
RAL_LIB
}
${
NAS_UE_LIB
}
${
ITTI_LIB
}
${
MIH_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FLEXRAN_AGENT_LIB
}
LFDS7
-Wl,--end-group
)
NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB
NFAPI_USER_LIB
-Wl,--end-group z dl
)
target_link_libraries
(
lte-softmodem-stub
${
LIBXML2_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-stub pthread m
${
CONFIG_LIBRARIES
}
rt crypt
${
CRYPTO_LIBRARIES
}
${
OPENSSL_LIBRARIES
}
${
NETTLE_LIBRARIES
}
sctp
${
XFORMS_LIBRARIES
}
${
PROTOBUF_LIB
}
${
CMAKE_DL_LIBS
}
${
LIBYAML_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-stub
${
LIB_LMS_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-stub
${
T_LIB
}
)
target_link_libraries
(
lte-softmodem-nos1
${
LIBXML2_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-nos1 pthread m
${
CONFIG_LIBRARIES
}
rt crypt
${
CRYPTO_LIBRARIES
}
${
OPENSSL_LIBRARIES
}
${
NETTLE_LIBRARIES
}
${
XFORMS_LIBRARIES
}
${
PROTOBUF_LIB
}
${
CMAKE_DL_LIBS
}
${
LIBYAML_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-nos1
${
LIB_LMS_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-nos1
${
T_LIB
}
)
# rrh
# rrh
################################
################################
...
...
nfapi/nfapi_pnf.c
View file @
63ac8b4c
...
@@ -685,8 +685,18 @@ int config_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfap
...
@@ -685,8 +685,18 @@ int config_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfap
pnf_info
*
pnf
=
(
pnf_info
*
)(
config
->
user_data
);
pnf_info
*
pnf
=
(
pnf_info
*
)(
config
->
user_data
);
uint8_t
num_tlv
=
0
;
uint8_t
num_tlv
=
0
;
// Panos: In the case of nfapi_mode = 3 (UE = PNF) we should not have dependency on any eNB var. So we aim
// to keep only the necessary just to keep the nfapi FSM rolling by sending a dummy response.
LTE_DL_FRAME_PARMS
*
fp
;
if
(
nfapi_mode
!=
3
)
{
struct
PHY_VARS_eNB_s
*
eNB
=
RC
.
eNB
[
0
][
0
];
struct
PHY_VARS_eNB_s
*
eNB
=
RC
.
eNB
[
0
][
0
];
LTE_DL_FRAME_PARMS
*
fp
=
&
eNB
->
frame_parms
;
fp
=
&
eNB
->
frame_parms
;
}
else
{
fp
=
(
LTE_DL_FRAME_PARMS
*
)
malloc
(
sizeof
(
LTE_DL_FRAME_PARMS
));
}
#if 0
#if 0
//DJP
//DJP
...
@@ -701,6 +711,7 @@ int config_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfap
...
@@ -701,6 +711,7 @@ int config_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfap
//DJP
//DJP
phy_info
*
phy_info
=
pnf
->
phys
;
phy_info
*
phy_info
=
pnf
->
phys
;
//if(nfapi_mode!=3) {
if
(
req
->
nfapi_config
.
timing_window
.
tl
.
tag
==
NFAPI_NFAPI_TIMING_WINDOW_TAG
)
if
(
req
->
nfapi_config
.
timing_window
.
tl
.
tag
==
NFAPI_NFAPI_TIMING_WINDOW_TAG
)
{
{
phy_info
->
timing_window
=
req
->
nfapi_config
.
timing_window
.
value
;
phy_info
->
timing_window
=
req
->
nfapi_config
.
timing_window
.
value
;
...
@@ -879,6 +890,7 @@ int config_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfap
...
@@ -879,6 +890,7 @@ int config_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfap
num_tlv
++
;
num_tlv
++
;
}
}
if
(
nfapi_mode
!=
3
)
{
printf
(
"[PNF] CONFIG_REQUEST[num_tlv:%d] TLVs processed:%d
\n
"
,
req
->
num_tlv
,
num_tlv
);
printf
(
"[PNF] CONFIG_REQUEST[num_tlv:%d] TLVs processed:%d
\n
"
,
req
->
num_tlv
,
num_tlv
);
printf
(
"[PNF] Simulating PHY CONFIG - DJP
\n
"
);
printf
(
"[PNF] Simulating PHY CONFIG - DJP
\n
"
);
...
@@ -890,6 +902,7 @@ int config_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfap
...
@@ -890,6 +902,7 @@ int config_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfap
phy_config_request
(
&
phy_config
);
phy_config_request
(
&
phy_config
);
dump_frame_parms
(
fp
);
dump_frame_parms
(
fp
);
}
phy_info
->
remote_port
=
req
->
nfapi_config
.
p7_vnf_port
.
value
;
phy_info
->
remote_port
=
req
->
nfapi_config
.
p7_vnf_port
.
value
;
...
@@ -907,6 +920,8 @@ int config_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfap
...
@@ -907,6 +920,8 @@ int config_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfap
nfapi_resp
.
error_code
=
0
;
// DJP - some value resp->error_code;
nfapi_resp
.
error_code
=
0
;
// DJP - some value resp->error_code;
nfapi_pnf_config_resp
(
config
,
&
nfapi_resp
);
nfapi_pnf_config_resp
(
config
,
&
nfapi_resp
);
printf
(
"[PNF] Sent NFAPI_CONFIG_RESPONSE phy_id:%d
\n
"
,
phy_info
->
id
);
printf
(
"[PNF] Sent NFAPI_CONFIG_RESPONSE phy_id:%d
\n
"
,
phy_info
->
id
);
if
(
nfapi_mode
==
3
)
free
(
fp
);
return
0
;
return
0
;
}
}
...
@@ -1399,6 +1414,8 @@ int start_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfapi
...
@@ -1399,6 +1414,8 @@ int start_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfapi
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"[PNF] DJP - HACK - Set p7_config global ready for subframe ind%s
\n
"
,
__FUNCTION__
);
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"[PNF] DJP - HACK - Set p7_config global ready for subframe ind%s
\n
"
,
__FUNCTION__
);
p7_config_g
=
p7_config
;
p7_config_g
=
p7_config
;
printf
(
"Panos-D: start_request, bUFFER SIZE: %d"
,
p7_config_g
->
subframe_buffer_size
);
// Need to wait for main thread to create RU structures
// Need to wait for main thread to create RU structures
while
(
config_sync_var
<
0
)
while
(
config_sync_var
<
0
)
{
{
...
@@ -1754,7 +1771,9 @@ void configure_nfapi_pnf(char *vnf_ip_addr, int vnf_p5_port, char *pnf_ip_addr,
...
@@ -1754,7 +1771,9 @@ void configure_nfapi_pnf(char *vnf_ip_addr, int vnf_p5_port, char *pnf_ip_addr,
{
{
printf
(
"%s() PNF
\n\n\n\n\n\n
"
,
__FUNCTION__
);
printf
(
"%s() PNF
\n\n\n\n\n\n
"
,
__FUNCTION__
);
if
(
nfapi_mode
!=
3
)
{
nfapi_mode
=
1
;
// PNF!
nfapi_mode
=
1
;
// PNF!
}
nfapi_pnf_config_t
*
config
=
nfapi_pnf_config_create
();
nfapi_pnf_config_t
*
config
=
nfapi_pnf_config_create
();
...
@@ -1822,6 +1841,8 @@ void oai_subframe_ind(uint16_t sfn, uint16_t sf)
...
@@ -1822,6 +1841,8 @@ void oai_subframe_ind(uint16_t sfn, uint16_t sf)
if
(
p7_config_g
!=
NULL
&&
sync_var
==
0
)
if
(
p7_config_g
!=
NULL
&&
sync_var
==
0
)
{
{
printf
(
"Panos-D: oai_subframe_ind 1, buffer size:%d"
,
p7_config_g
->
subframe_buffer_size
);
uint16_t
sfn_sf_tx
=
sfn
<<
4
|
sf
;
uint16_t
sfn_sf_tx
=
sfn
<<
4
|
sf
;
if
((
sfn
%
100
==
0
)
&&
sf
==
0
)
if
((
sfn
%
100
==
0
)
&&
sf
==
0
)
...
...
openair2/ENB_APP/enb_app.c
View file @
63ac8b4c
...
@@ -59,6 +59,8 @@ extern unsigned char NB_eNB_INST;
...
@@ -59,6 +59,8 @@ extern unsigned char NB_eNB_INST;
extern
RAN_CONTEXT_t
RC
;
extern
RAN_CONTEXT_t
RC
;
extern
uint8_t
nfapi_mode
;
#if defined(ENABLE_ITTI)
#if defined(ENABLE_ITTI)
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
...
@@ -306,7 +308,10 @@ void *eNB_app_task(void *args_p)
...
@@ -306,7 +308,10 @@ void *eNB_app_task(void *args_p)
LOG_I
(
PHY
,
"%s() Task ready initialise structures
\n
"
,
__FUNCTION__
);
LOG_I
(
PHY
,
"%s() Task ready initialise structures
\n
"
,
__FUNCTION__
);
// Panos
//if (nfapi_mode!= 2 && nfapi_mode!= 3){
RCconfig_L1
();
RCconfig_L1
();
//}
RCconfig_macrlc
();
RCconfig_macrlc
();
...
...
openair2/ENB_APP/enb_config.c
View file @
63ac8b4c
...
@@ -320,15 +320,14 @@ void RCconfig_L1(void) {
...
@@ -320,15 +320,14 @@ void RCconfig_L1(void) {
if
(
RC
.
eNB
==
NULL
)
{
if
(
RC
.
eNB
==
NULL
)
{
RC
.
eNB
=
(
PHY_VARS_eNB
***
)
malloc
((
1
+
MAX_NUM_CCs
)
*
sizeof
(
PHY_VARS_eNB
**
));
RC
.
eNB
=
(
PHY_VARS_eNB
***
)
malloc
((
1
+
NUMBER_OF_eNB_MAX
)
*
sizeof
(
PHY_VARS_eNB
**
));
LOG_I
(
PHY
,
"RC.eNB = %p
\n
"
,
RC
.
eNB
);
LOG_I
(
PHY
,
"RC.eNB = %p
\n
"
,
RC
.
eNB
);
memset
(
RC
.
eNB
,
0
,(
1
+
NUMBER_OF_eNB_MAX
)
*
sizeof
(
PHY_VARS_eNB
**
*
));
memset
(
RC
.
eNB
,
0
,(
1
+
NUMBER_OF_eNB_MAX
)
*
sizeof
(
PHY_VARS_eNB
**
));
RC
.
nb_L1_CC
=
malloc
((
1
+
RC
.
nb_L1_inst
)
*
sizeof
(
int
));
RC
.
nb_L1_CC
=
malloc
((
1
+
RC
.
nb_L1_inst
)
*
sizeof
(
int
));
}
}
config_getlist
(
&
L1_ParamList
,
L1_Params
,
sizeof
(
L1_Params
)
/
sizeof
(
paramdef_t
),
NULL
);
config_getlist
(
&
L1_ParamList
,
L1_Params
,
sizeof
(
L1_Params
)
/
sizeof
(
paramdef_t
),
NULL
);
if
(
L1_ParamList
.
numelt
>
0
)
{
if
(
L1_ParamList
.
numelt
>
0
)
{
for
(
j
=
0
;
j
<
RC
.
nb_L1_inst
;
j
++
)
{
for
(
j
=
0
;
j
<
RC
.
nb_L1_inst
;
j
++
)
{
RC
.
nb_L1_CC
[
j
]
=
*
(
L1_ParamList
.
paramarray
[
j
][
L1_CC_IDX
].
uptr
);
RC
.
nb_L1_CC
[
j
]
=
*
(
L1_ParamList
.
paramarray
[
j
][
L1_CC_IDX
].
uptr
);
...
@@ -336,10 +335,13 @@ void RCconfig_L1(void) {
...
@@ -336,10 +335,13 @@ void RCconfig_L1(void) {
RC
.
eNB
[
j
]
=
(
PHY_VARS_eNB
**
)
malloc
((
1
+
MAX_NUM_CCs
)
*
sizeof
(
PHY_VARS_eNB
**
));
RC
.
eNB
[
j
]
=
(
PHY_VARS_eNB
**
)
malloc
((
1
+
MAX_NUM_CCs
)
*
sizeof
(
PHY_VARS_eNB
**
));
LOG_I
(
PHY
,
"RC.eNB[%d] = %p
\n
"
,
j
,
RC
.
eNB
[
j
]);
LOG_I
(
PHY
,
"RC.eNB[%d] = %p
\n
"
,
j
,
RC
.
eNB
[
j
]);
memset
(
RC
.
eNB
[
j
],
0
,(
1
+
MAX_NUM_CCs
)
*
sizeof
(
PHY_VARS_eNB
***
));
memset
(
RC
.
eNB
[
j
],
0
,(
1
+
MAX_NUM_CCs
)
*
sizeof
(
PHY_VARS_eNB
***
));
printf
(
"Panos-D: RCconfig_L1 99"
);
}
}
for
(
i
=
0
;
i
<
RC
.
nb_L1_CC
[
j
];
i
++
)
{
for
(
i
=
0
;
i
<
RC
.
nb_L1_CC
[
j
];
i
++
)
{
printf
(
"Panos-D: RCconfig_L1 9"
);
if
(
RC
.
eNB
[
j
][
i
]
==
NULL
)
{
if
(
RC
.
eNB
[
j
][
i
]
==
NULL
)
{
printf
(
"Panos-D: RCconfig_L1 10"
);
RC
.
eNB
[
j
][
i
]
=
(
PHY_VARS_eNB
*
)
malloc
(
sizeof
(
PHY_VARS_eNB
));
RC
.
eNB
[
j
][
i
]
=
(
PHY_VARS_eNB
*
)
malloc
(
sizeof
(
PHY_VARS_eNB
));
memset
((
void
*
)
RC
.
eNB
[
j
][
i
],
0
,
sizeof
(
PHY_VARS_eNB
));
memset
((
void
*
)
RC
.
eNB
[
j
][
i
],
0
,
sizeof
(
PHY_VARS_eNB
));
LOG_I
(
PHY
,
"RC.eNB[%d][%d] = %p
\n
"
,
j
,
i
,
RC
.
eNB
[
j
][
i
]);
LOG_I
(
PHY
,
"RC.eNB[%d][%d] = %p
\n
"
,
j
,
i
,
RC
.
eNB
[
j
][
i
]);
...
@@ -362,6 +364,7 @@ void RCconfig_L1(void) {
...
@@ -362,6 +364,7 @@ void RCconfig_L1(void) {
RC
.
eNB
[
j
][
0
]
->
eth_params_n
.
remote_portd
=
*
(
L1_ParamList
.
paramarray
[
j
][
L1_REMOTE_N_PORTD_IDX
].
iptr
);
RC
.
eNB
[
j
][
0
]
->
eth_params_n
.
remote_portd
=
*
(
L1_ParamList
.
paramarray
[
j
][
L1_REMOTE_N_PORTD_IDX
].
iptr
);
RC
.
eNB
[
j
][
0
]
->
eth_params_n
.
transp_preference
=
ETH_UDP_MODE
;
RC
.
eNB
[
j
][
0
]
->
eth_params_n
.
transp_preference
=
ETH_UDP_MODE
;
printf
(
"Panos-D: RCconfig_L1 11"
);
sf_ahead
=
2
;
// Cannot cope with 4 subframes betweem RX and TX - set it to 2
sf_ahead
=
2
;
// Cannot cope with 4 subframes betweem RX and TX - set it to 2
RC
.
nb_macrlc_inst
=
1
;
// This is used by mac_top_init_eNB()
RC
.
nb_macrlc_inst
=
1
;
// This is used by mac_top_init_eNB()
...
@@ -381,6 +384,7 @@ void RCconfig_L1(void) {
...
@@ -381,6 +384,7 @@ void RCconfig_L1(void) {
configure_nfapi_pnf
(
RC
.
eNB
[
j
][
0
]
->
eth_params_n
.
remote_addr
,
RC
.
eNB
[
j
][
0
]
->
eth_params_n
.
remote_portc
,
RC
.
eNB
[
j
][
0
]
->
eth_params_n
.
my_addr
,
RC
.
eNB
[
j
][
0
]
->
eth_params_n
.
my_portd
,
RC
.
eNB
[
j
][
0
]
->
eth_params_n
.
remote_portd
);
configure_nfapi_pnf
(
RC
.
eNB
[
j
][
0
]
->
eth_params_n
.
remote_addr
,
RC
.
eNB
[
j
][
0
]
->
eth_params_n
.
remote_portc
,
RC
.
eNB
[
j
][
0
]
->
eth_params_n
.
my_addr
,
RC
.
eNB
[
j
][
0
]
->
eth_params_n
.
my_portd
,
RC
.
eNB
[
j
][
0
]
->
eth_params_n
.
remote_portd
);
}
}
else
{
// other midhaul
else
{
// other midhaul
printf
(
"Panos-D: RCconfig_L1 12
\n
"
);
}
}
}
// j=0..num_inst
}
// j=0..num_inst
printf
(
"Initializing northbound interface for L1
\n
"
);
printf
(
"Initializing northbound interface for L1
\n
"
);
...
@@ -396,16 +400,22 @@ void RCconfig_L1(void) {
...
@@ -396,16 +400,22 @@ void RCconfig_L1(void) {
RC
.
nb_L1_CC
[
j
]
=
1
;
// DJP - hmmm
RC
.
nb_L1_CC
[
j
]
=
1
;
// DJP - hmmm
printf
(
"Panos-D: RCconfig_L1 13
\n
"
);
if
(
RC
.
eNB
[
j
]
==
NULL
)
{
if
(
RC
.
eNB
[
j
]
==
NULL
)
{
RC
.
eNB
[
j
]
=
(
PHY_VARS_eNB
**
)
malloc
((
1
+
MAX_NUM_CCs
)
*
sizeof
(
PHY_VARS_eNB
**
));
RC
.
eNB
[
j
]
=
(
PHY_VARS_eNB
**
)
malloc
((
1
+
MAX_NUM_CCs
)
*
sizeof
(
PHY_VARS_eNB
*
));
printf
(
"Panos-D: RCconfig_L1 13
\n
"
);
LOG_I
(
PHY
,
"RC.eNB[%d] = %p
\n
"
,
j
,
RC
.
eNB
[
j
]);
LOG_I
(
PHY
,
"RC.eNB[%d] = %p
\n
"
,
j
,
RC
.
eNB
[
j
]);
memset
(
RC
.
eNB
[
j
],
0
,(
1
+
MAX_NUM_CCs
)
*
sizeof
(
PHY_VARS_eNB
***
));
memset
(
RC
.
eNB
[
j
],
0
,(
1
+
MAX_NUM_CCs
)
*
sizeof
(
PHY_VARS_eNB
*
));
printf
(
"Panos-D: RCconfig_L1 14
\n
"
);
}
}
for
(
i
=
0
;
i
<
RC
.
nb_L1_CC
[
j
];
i
++
)
{
for
(
i
=
0
;
i
<
RC
.
nb_L1_CC
[
j
];
i
++
)
{
if
(
RC
.
eNB
[
j
][
i
]
==
NULL
)
{
if
(
RC
.
eNB
[
j
][
i
]
==
NULL
)
{
printf
(
"Panos-D: RCconfig_L1 15
\n
"
);
RC
.
eNB
[
j
][
i
]
=
(
PHY_VARS_eNB
*
)
malloc
(
sizeof
(
PHY_VARS_eNB
));
RC
.
eNB
[
j
][
i
]
=
(
PHY_VARS_eNB
*
)
malloc
(
sizeof
(
PHY_VARS_eNB
));
printf
(
"Panos-D: RCconfig_L1 16
\n
"
);
memset
((
void
*
)
RC
.
eNB
[
j
][
i
],
0
,
sizeof
(
PHY_VARS_eNB
));
memset
((
void
*
)
RC
.
eNB
[
j
][
i
],
0
,
sizeof
(
PHY_VARS_eNB
));
printf
(
"Panos-D: RCconfig_L1 17
\n
"
);
LOG_I
(
PHY
,
"RC.eNB[%d][%d] = %p
\n
"
,
j
,
i
,
RC
.
eNB
[
j
][
i
]);
LOG_I
(
PHY
,
"RC.eNB[%d][%d] = %p
\n
"
,
j
,
i
,
RC
.
eNB
[
j
][
i
]);
RC
.
eNB
[
j
][
i
]
->
Mod_id
=
j
;
RC
.
eNB
[
j
][
i
]
->
Mod_id
=
j
;
RC
.
eNB
[
j
][
i
]
->
CC_id
=
i
;
RC
.
eNB
[
j
][
i
]
->
CC_id
=
i
;
...
...
openair2/RRC/LITE/rrc_eNB.c
View file @
63ac8b4c
...
@@ -704,12 +704,12 @@ void rrc_eNB_emulation_notify_ue_module_id(
...
@@ -704,12 +704,12 @@ void rrc_eNB_emulation_notify_ue_module_id(
return
;
return
;
}
}
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
if
(
RC
.
rrc
[
enb_module_id
]
.
carrier
[
CC_id
].
sib1
!=
NULL
)
{
if
(
RC
.
rrc
[
enb_module_id
]
->
carrier
[
CC_id
].
sib1
!=
NULL
)
{
if
(
if
(
(
RC
.
rrc
[
enb_module_id
]
.
carrier
[
CC_id
].
sib1
->
cellAccessRelatedInfo
.
cellIdentity
.
buf
[
0
]
==
cell_identity_byte0P
)
&&
(
RC
.
rrc
[
enb_module_id
]
->
carrier
[
CC_id
].
sib1
->
cellAccessRelatedInfo
.
cellIdentity
.
buf
[
0
]
==
cell_identity_byte0P
)
&&
(
RC
.
rrc
[
enb_module_id
]
.
carrier
[
CC_id
].
sib1
->
cellAccessRelatedInfo
.
cellIdentity
.
buf
[
1
]
==
cell_identity_byte1P
)
&&
(
RC
.
rrc
[
enb_module_id
]
->
carrier
[
CC_id
].
sib1
->
cellAccessRelatedInfo
.
cellIdentity
.
buf
[
1
]
==
cell_identity_byte1P
)
&&
(
RC
.
rrc
[
enb_module_id
]
.
carrier
[
CC_id
].
sib1
->
cellAccessRelatedInfo
.
cellIdentity
.
buf
[
2
]
==
cell_identity_byte2P
)
&&
(
RC
.
rrc
[
enb_module_id
]
->
carrier
[
CC_id
].
sib1
->
cellAccessRelatedInfo
.
cellIdentity
.
buf
[
2
]
==
cell_identity_byte2P
)
&&
(
RC
.
rrc
[
enb_module_id
]
.
carrier
[
CC_id
].
sib1
->
cellAccessRelatedInfo
.
cellIdentity
.
buf
[
3
]
==
cell_identity_byte3P
)
(
RC
.
rrc
[
enb_module_id
]
->
carrier
[
CC_id
].
sib1
->
cellAccessRelatedInfo
.
cellIdentity
.
buf
[
3
]
==
cell_identity_byte3P
)
)
{
)
{
ue_context_p
=
rrc_eNB_get_ue_context
(
ue_context_p
=
rrc_eNB_get_ue_context
(
RC
.
rrc
[
enb_module_id
],
RC
.
rrc
[
enb_module_id
],
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/oaiL1.nfapi.usrpb210.conf
View file @
63ac8b4c
...
@@ -19,9 +19,9 @@ L1s = (
...
@@ -19,9 +19,9 @@ L1s = (
{
{
num_cc
=
1
;
num_cc
=
1
;
tr_n_preference
=
"nfapi"
;
tr_n_preference
=
"nfapi"
;
local_n_if_name
=
"e
th0
"
;
local_n_if_name
=
"e
np0s31f6
"
;
remote_n_address
=
"10.0.0.2
0
"
;
remote_n_address
=
"10.0.0.2"
;
local_n_address
=
"10.0.0.1
0
"
;
local_n_address
=
"10.0.0.1"
;
local_n_portc
=
50000
;
local_n_portc
=
50000
;
remote_n_portc
=
50001
;
remote_n_portc
=
50001
;
local_n_portd
=
50010
;
local_n_portd
=
50010
;
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi-STUB.conf
0 → 100644
View file @
63ac8b4c
Active_eNBs
= (
"eNB_Eurecom_LTEBox"
);
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity
=
"none"
;
eNBs
=
(
{
//////////
Identification
parameters
:
eNB_ID
=
0
xe00
;
cell_type
=
"CELL_MACRO_ENB"
;
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
#mobile_network_code = "93";
mobile_network_code
=
"92"
;
tr_s_preference
=
"local_mac"
//////////
Physical
parameters
:
component_carriers
= (
{
node_function
=
"3GPP_eNODEB"
;
node_timing
=
"synch_to_ext_device"
;
node_synch_ref
=
0
;
frame_type
=
"FDD"
;
tdd_config
=
3
;
tdd_config_s
=
0
;
prefix_type
=
"NORMAL"
;
eutra_band
=
7
;
downlink_frequency
=
2685000000
L
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
#N_RB_DL = 50;
N_RB_DL
=
25
;
Nid_cell_mbsfn
=
0
;
nb_antenna_ports
=
1
;
nb_antennas_tx
=
1
;
nb_antennas_rx
=
1
;
tx_gain
=
90
;
rx_gain
=
115
;
pbch_repetition
=
"FALSE"
;
prach_root
=
0
;
prach_config_index
=
0
;
prach_high_speed
=
"DISABLE"
;
prach_zero_correlation
=
1
;
prach_freq_offset
=
2
;
pucch_delta_shift
=
1
;
pucch_nRB_CQI
=
0
;
pucch_nCS_AN
=
0
;
pucch_n1_AN
=
32
;
#pdsch_referenceSignalPower = -27;
pdsch_referenceSignalPower
= -
30
;
pdsch_p_b
=
0
;
pusch_n_SB
=
1
;
pusch_enable64QAM
=
"DISABLE"
;
pusch_hoppingMode
=
"interSubFrame"
;
pusch_hoppingOffset
=
0
;
pusch_groupHoppingEnabled
=
"ENABLE"
;
pusch_groupAssignment
=
0
;
pusch_sequenceHoppingEnabled
=
"DISABLE"
;
pusch_nDMRS1
=
1
;
phich_duration
=
"NORMAL"
;
phich_resource
=
"ONESIXTH"
;
srs_enable
=
"DISABLE"
;
/*
srs_BandwidthConfig
=;
srs_SubframeConfig
=;
srs_ackNackST
=;
srs_MaxUpPts
=;*/
pusch_p0_Nominal
= -
96
;
pusch_alpha
=
"AL1"
;
pucch_p0_Nominal
= -
104
;
msg3_delta_Preamble
=
6
;
pucch_deltaF_Format1
=
"deltaF2"
;
pucch_deltaF_Format1b
=
"deltaF3"
;
pucch_deltaF_Format2
=
"deltaF0"
;
pucch_deltaF_Format2a
=
"deltaF0"
;
pucch_deltaF_Format2b
=
"deltaF0"
;
rach_numberOfRA_Preambles
=
64
;
rach_preamblesGroupAConfig
=
"DISABLE"
;
/*
rach_sizeOfRA_PreamblesGroupA
= ;
rach_messageSizeGroupA
= ;
rach_messagePowerOffsetGroupB
= ;
*/
rach_powerRampingStep
=
4
;
#rach_preambleInitialReceivedTargetPower = -108;
rach_preambleInitialReceivedTargetPower
= -
104
;
rach_preambleTransMax
=
10
;
rach_raResponseWindowSize
=
10
;
rach_macContentionResolutionTimer
=
48
;
rach_maxHARQ_Msg3Tx
=
4
;
pcch_default_PagingCycle
=
128
;
pcch_nB
=
"oneT"
;
bcch_modificationPeriodCoeff
=
2
;
ue_TimersAndConstants_t300
=
1000
;
ue_TimersAndConstants_t301
=
1000
;
ue_TimersAndConstants_t310
=
1000
;
ue_TimersAndConstants_t311
=
10000
;
ue_TimersAndConstants_n310
=
20
;
ue_TimersAndConstants_n311
=
1
;
ue_TransmissionMode
=
1
;
}
);
srb1_parameters
:
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit
=
80
;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering
=
35
;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit
=
0
;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu
=
4
;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte
=
99999
;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold
=
4
;
}
# ------- SCTP definitions
SCTP
:
{
# Number of streams to use in input/output
SCTP_INSTREAMS
=
2
;
SCTP_OUTSTREAMS
=
2
;
};
//////////
MME
parameters
:
mme_ip_address
= ( {
ipv4
=
"192.168.56.102"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
preference
=
"ipv4"
;
}
);
NETWORK_INTERFACES
:
{
ENB_INTERFACE_NAME_FOR_S1_MME
=
"vboxnet0"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.56.1/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"vboxnet0"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"192.168.56.1/24"
;
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};
}
);
MACRLCs
= (
{
num_cc
=
1
;
local_s_if_name
=
"eno1"
;
remote_s_address
=
"10.0.0.2"
;
#local_s_address = "192.168.1.78";
local_s_address
=
"10.0.0.1"
;
local_s_portc
=
50001
;
remote_s_portc
=
50000
;
local_s_portd
=
50011
;
remote_s_portd
=
50010
;
tr_s_preference
=
"nfapi"
;
tr_n_preference
=
"local_RRC"
;
}
);
log_config
:
{
global_log_level
=
"debug"
;
global_log_verbosity
=
"medium"
;
hw_log_level
=
"info"
;
hw_log_verbosity
=
"medium"
;
phy_log_level
=
"info"
;
phy_log_verbosity
=
"medium"
;
mac_log_level
=
"debug"
;
mac_log_verbosity
=
"high"
;
rlc_log_level
=
"debug"
;
rlc_log_verbosity
=
"high"
;
pdcp_log_level
=
"info"
;
pdcp_log_verbosity
=
"medium"
;
rrc_log_level
=
"info"
;
rrc_log_verbosity
=
"high"
;
};
targets/RT/USER/lte-softmodem-stub.c
View file @
63ac8b4c
...
@@ -1358,6 +1358,8 @@ int main( int argc, char **argv )
...
@@ -1358,6 +1358,8 @@ int main( int argc, char **argv )
init_UE_stub
(
1
,
eMBMS_active
,
uecap_xer_in
);
init_UE_stub
(
1
,
eMBMS_active
,
uecap_xer_in
);
//init_UE(1,eMBMS_active,uecap_xer_in);
//init_UE(1,eMBMS_active,uecap_xer_in);
number_of_cards
=
1
;
number_of_cards
=
1
;
config_sync_var
=
0
;
if
(
nfapi_mode
==
3
)
// UE-STUB-PNF
if
(
nfapi_mode
==
3
)
// UE-STUB-PNF
{
{
wait_nfapi_init
(
"main?"
);
wait_nfapi_init
(
"main?"
);
...
...
targets/RT/USER/lte-softmodem.c
View file @
63ac8b4c
...
@@ -116,7 +116,7 @@ pthread_cond_t nfapi_sync_cond;
...
@@ -116,7 +116,7 @@ pthread_cond_t nfapi_sync_cond;
pthread_mutex_t
nfapi_sync_mutex
;
pthread_mutex_t
nfapi_sync_mutex
;
int
nfapi_sync_var
=-
1
;
//!< protected by mutex \ref nfapi_sync_mutex
int
nfapi_sync_var
=-
1
;
//!< protected by mutex \ref nfapi_sync_mutex
uint8_t
nfapi_mode
=
0
;
uint8_t
nfapi_mode
=
2
;
uint16_t
sf_ahead
=
4
;
uint16_t
sf_ahead
=
4
;
...
...
targets/RT/USER/lte-ue.c
View file @
63ac8b4c
...
@@ -875,12 +875,19 @@ static void *UE_phy_stub_thread_rxn_txnp4(void *arg) {
...
@@ -875,12 +875,19 @@ static void *UE_phy_stub_thread_rxn_txnp4(void *arg) {
// Panos: is this the right place to call oai_subframe_indication to invoke p7 nfapi callbacks here?
// Panos: is this the right place to call oai_subframe_indication to invoke p7 nfapi callbacks here?
oai_subframe_ind
(
proc
->
frame_rx
,
proc
->
subframe_rx
);
oai_subframe_ind
(
proc
->
frame_rx
,
proc
->
subframe_rx
);
if
(
UE_mac_inst
[
Mod_id
].
tx_req
!=
NULL
)
printf
(
"Panos-D: UE_phy_stub_thread_rxn_txnp4 after oai_subframe_ind
\n
"
);
if
(
UE_mac_inst
[
Mod_id
].
tx_req
!=
NULL
){
printf
(
"Panos-D: UE_phy_stub_thread_rxn_txnp4 after oai_subframe_ind 2
\n
"
);
tx_req_UE_MAC
(
UE_mac_inst
[
Mod_id
].
tx_req
);
tx_req_UE_MAC
(
UE_mac_inst
[
Mod_id
].
tx_req
);
if
(
UE_mac_inst
[
Mod_id
].
dl_config_req
!=
NULL
)
}
if
(
UE_mac_inst
[
Mod_id
].
dl_config_req
!=
NULL
)
{
printf
(
"Panos-D: UE_phy_stub_thread_rxn_txnp4 after oai_subframe_ind 3
\n
"
);
dl_config_req_UE_MAC
(
UE_mac_inst
[
Mod_id
].
dl_config_req
);
dl_config_req_UE_MAC
(
UE_mac_inst
[
Mod_id
].
dl_config_req
);
if
(
UE_mac_inst
[
Mod_id
].
hi_dci0_req
!=
NULL
)
}
if
(
UE_mac_inst
[
Mod_id
].
hi_dci0_req
!=
NULL
){
printf
(
"Panos-D: UE_phy_stub_thread_rxn_txnp4 after oai_subframe_ind 4
\n
"
);
hi_dci0_req_UE_MAC
(
UE_mac_inst
[
Mod_id
].
hi_dci0_req
);
hi_dci0_req_UE_MAC
(
UE_mac_inst
[
Mod_id
].
hi_dci0_req
);
}
//#endif
//#endif
}
}
...
...
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