Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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
OpenXG
OpenXG UE
Commits
e813899a
Commit
e813899a
authored
Jun 01, 2020
by
Andrew Burger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Changes to allow dl_config_req and tx_req to be sent without crashing
parent
37cb2aca
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
50 additions
and
36 deletions
+50
-36
openair2/PHY_INTERFACE/phy_stub_UE.c
openair2/PHY_INTERFACE/phy_stub_UE.c
+44
-25
targets/RT/USER/lte-ue.c
targets/RT/USER/lte-ue.c
+3
-3
targets/RT/USER/lte-uesoftmodem.c
targets/RT/USER/lte-uesoftmodem.c
+3
-8
No files found.
openair2/PHY_INTERFACE/phy_stub_UE.c
View file @
e813899a
...
@@ -886,34 +886,37 @@ void hi_dci0_req_UE_MAC(int sfn,
...
@@ -886,34 +886,37 @@ void hi_dci0_req_UE_MAC(int sfn,
int
memcpy_dl_config_req
(
L1_rxtx_proc_t
*
proc
,
int
memcpy_dl_config_req
(
L1_rxtx_proc_t
*
proc
,
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_dl_config_request_t
*
req
)
{
nfapi_dl_config_request_t
*
req
)
{
dl_config_req
=
(
nfapi_dl_config_request_t
*
)
malloc
(
sizeof
(
nfapi_dl_config_request_t
));
// UE_mac_inst[Mod_id].dl_config_req->header = req->header;
nfapi_dl_config_request_t
*
p
=
malloc
(
sizeof
(
nfapi_dl_config_request_t
));
dl_config_req
->
sfn_sf
=
req
->
sfn_sf
;
dl_config_req
->
vendor_extension
=
req
->
vendor_extension
;
// UE_mac_inst[Mod_id].p->header = req->header;
p
->
sfn_sf
=
req
->
sfn_sf
;
dl_config_req
->
dl_config_request_body
.
number_dci
=
req
->
dl_config_request_body
.
number_dci
;
p
->
vendor_extension
=
req
->
vendor_extension
;
dl_config_req
->
dl_config_request_body
.
number_pdcch_ofdm_symbols
=
req
->
dl_config_request_body
.
number_pdcch_ofdm_symbols
;
dl_config_req
->
dl_config_request_body
.
number_pdsch_rnti
=
req
->
dl_config_request_body
.
number_pdsch_rnti
;
dl_config_req
->
dl_config_request_body
.
number_pdu
=
req
->
dl_config_request_body
.
number_pdu
;
dl_config_req
->
dl_config_request_body
.
tl
.
tag
=
req
->
dl_config_request_body
.
tl
.
tag
;
p
->
dl_config_request_body
.
number_dci
=
req
->
dl_config_request_body
.
number_dci
;
dl_config_req
->
dl_config_request_body
.
tl
.
length
=
req
->
dl_config_request_body
.
tl
.
length
;
p
->
dl_config_request_body
.
number_pdcch_ofdm_symbols
=
req
->
dl_config_request_body
.
number_pdcch_ofdm_symbols
;
p
->
dl_config_request_body
.
number_pdsch_rnti
=
req
->
dl_config_request_body
.
number_pdsch_rnti
;
p
->
dl_config_request_body
.
number_pdu
=
req
->
dl_config_request_body
.
number_pdu
;
dl_config_req
->
dl_config_request_body
.
dl_config_pdu_list
=
p
->
dl_config_request_body
.
tl
.
tag
=
req
->
dl_config_request_body
.
tl
.
tag
;
p
->
dl_config_request_body
.
tl
.
length
=
req
->
dl_config_request_body
.
tl
.
length
;
p
->
dl_config_request_body
.
dl_config_pdu_list
=
calloc
(
req
->
dl_config_request_body
.
number_pdu
,
calloc
(
req
->
dl_config_request_body
.
number_pdu
,
sizeof
(
nfapi_dl_config_request_pdu_t
));
sizeof
(
nfapi_dl_config_request_pdu_t
));
for
(
int
i
=
0
;
i
<
dl_config_req
->
dl_config_request_body
.
number_pdu
;
i
++
)
{
for
(
int
i
=
0
;
i
<
p
->
dl_config_request_body
.
number_pdu
;
i
++
)
{
dl_config_req
->
dl_config_request_body
.
dl_config_pdu_list
[
i
]
=
p
->
dl_config_request_body
.
dl_config_pdu_list
[
i
]
=
req
->
dl_config_request_body
.
dl_config_pdu_list
[
i
];
req
->
dl_config_request_body
.
dl_config_pdu_list
[
i
];
}
}
dl_config_req
=
p
;
return
0
;
return
0
;
}
}
int
memcpy_ul_config_req
(
L1_rxtx_proc_t
*
proc
,
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_ul_config_request_t
*
req
)
int
memcpy_ul_config_req
(
L1_rxtx_proc_t
*
proc
,
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_ul_config_request_t
*
req
)
{
{
// make same changes as in dl_config_req
ul_config_req
=
malloc
(
sizeof
(
nfapi_ul_config_request_t
));
ul_config_req
=
malloc
(
sizeof
(
nfapi_ul_config_request_t
));
...
@@ -939,23 +942,25 @@ int memcpy_ul_config_req (L1_rxtx_proc_t *proc, nfapi_pnf_p7_config_t* pnf_p7, n
...
@@ -939,23 +942,25 @@ int memcpy_ul_config_req (L1_rxtx_proc_t *proc, nfapi_pnf_p7_config_t* pnf_p7, n
}
}
int
memcpy_tx_req
(
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_tx_request_t
*
req
)
{
int
memcpy_tx_req
(
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_tx_request_t
*
req
)
{
// make same changes as in dl_config_req
tx_req_num_elems
=
req
->
tx_request_body
.
number_of_pdus
;
tx_req_num_elems
=
req
->
tx_request_body
.
number_of_pdus
;
tx_request_pdu_list
=
calloc
(
tx_req_num_elems
,
sizeof
(
nfapi_tx_request_pdu_t
));
nfapi_tx_request_pdu_t
*
p
=
calloc
(
tx_req_num_elems
,
sizeof
(
nfapi_tx_request_pdu_t
));
for
(
int
i
=
0
;
i
<
tx_req_num_elems
;
i
++
)
{
for
(
int
i
=
0
;
i
<
tx_req_num_elems
;
i
++
)
{
tx_request_pdu_list
[
i
].
num_segments
=
req
->
tx_request_body
.
tx_pdu_list
[
i
].
num_segments
;
p
[
i
].
num_segments
=
req
->
tx_request_body
.
tx_pdu_list
[
i
].
num_segments
;
tx_request_pdu_list
[
i
].
pdu_index
=
req
->
tx_request_body
.
tx_pdu_list
[
i
].
pdu_index
;
p
[
i
].
pdu_index
=
req
->
tx_request_body
.
tx_pdu_list
[
i
].
pdu_index
;
tx_request_pdu_list
[
i
].
pdu_length
=
req
->
tx_request_body
.
tx_pdu_list
[
i
].
pdu_length
;
p
[
i
].
pdu_length
=
req
->
tx_request_body
.
tx_pdu_list
[
i
].
pdu_length
;
for
(
int
j
=
0
;
j
<
req
->
tx_request_body
.
tx_pdu_list
[
i
].
num_segments
;
j
++
)
{
for
(
int
j
=
0
;
j
<
req
->
tx_request_body
.
tx_pdu_list
[
i
].
num_segments
;
j
++
)
{
tx_request_pdu_list
[
i
].
segments
[
j
].
segment_length
=
req
->
tx_request_body
.
tx_pdu_list
[
i
].
segments
[
j
].
segment_length
;
p
[
i
].
segments
[
j
].
segment_length
=
req
->
tx_request_body
.
tx_pdu_list
[
i
].
segments
[
j
].
segment_length
;
if
(
tx_request_pdu_list
[
i
].
segments
[
j
].
segment_length
>
0
)
{
if
(
p
[
i
].
segments
[
j
].
segment_length
>
0
)
{
tx_request_pdu_list
[
i
].
segments
[
j
].
segment_data
=
calloc
(
p
[
i
].
segments
[
j
].
segment_data
=
calloc
(
tx_request_pdu_list
[
i
].
segments
[
j
].
segment_length
,
sizeof
(
uint8_t
));
p
[
i
].
segments
[
j
].
segment_length
,
sizeof
(
uint8_t
));
memcpy
(
tx_request_pdu_list
[
i
].
segments
[
j
].
segment_data
,
memcpy
(
p
[
i
].
segments
[
j
].
segment_data
,
req
->
tx_request_body
.
tx_pdu_list
[
i
].
segments
[
j
].
segment_data
,
req
->
tx_request_body
.
tx_pdu_list
[
i
].
segments
[
j
].
segment_data
,
tx_request_pdu_list
[
i
].
segments
[
j
].
segment_length
);
p
[
i
].
segments
[
j
].
segment_length
);
}
}
}
}
}
}
tx_request_pdu_list
=
p
;
return
0
;
return
0
;
}
}
...
@@ -963,6 +968,7 @@ int memcpy_tx_req(nfapi_pnf_p7_config_t *pnf_p7, nfapi_tx_request_t *req) {
...
@@ -963,6 +968,7 @@ int memcpy_tx_req(nfapi_pnf_p7_config_t *pnf_p7, nfapi_tx_request_t *req) {
int
memcpy_hi_dci0_req
(
L1_rxtx_proc_t
*
proc
,
int
memcpy_hi_dci0_req
(
L1_rxtx_proc_t
*
proc
,
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_hi_dci0_request_t
*
req
)
{
nfapi_hi_dci0_request_t
*
req
)
{
// make same changes as in dl_config_req
hi_dci0_req
=
(
nfapi_hi_dci0_request_t
*
)
malloc
(
sizeof
(
nfapi_hi_dci0_request_t
));
hi_dci0_req
=
(
nfapi_hi_dci0_request_t
*
)
malloc
(
sizeof
(
nfapi_hi_dci0_request_t
));
//if(req!=0){
//if(req!=0){
...
@@ -1076,6 +1082,7 @@ int ue_init_standalone_socket(const char *addr, int port)
...
@@ -1076,6 +1082,7 @@ int ue_init_standalone_socket(const char *addr, int port)
void
*
ue_standalone_pnf_task
(
void
*
context
)
void
*
ue_standalone_pnf_task
(
void
*
context
)
{
{
const
char
*
standalone_addr
=
"127.0.0.1"
;
const
char
*
standalone_addr
=
"127.0.0.1"
;
int
standalone_port
=
3289
;
int
standalone_port
=
3289
;
char
buffer
[
1024
];
char
buffer
[
1024
];
...
@@ -1098,7 +1105,7 @@ void *ue_standalone_pnf_task(void *context)
...
@@ -1098,7 +1105,7 @@ void *ue_standalone_pnf_task(void *context)
continue
;
continue
;
}
}
LOG_I
(
MAC
,
"Bruins header
_t
.message_id: %u
\n
"
,
header
.
message_id
);
LOG_I
(
MAC
,
"Bruins header.message_id: %u
\n
"
,
header
.
message_id
);
switch
(
header
.
message_id
)
switch
(
header
.
message_id
)
{
{
...
@@ -1118,8 +1125,20 @@ void *ue_standalone_pnf_task(void *context)
...
@@ -1118,8 +1125,20 @@ void *ue_standalone_pnf_task(void *context)
break
;
break
;
}
}
case
NFAPI_TX_REQUEST
:
case
NFAPI_TX_REQUEST
:
{
nfapi_tx_request_t
tx_req
;
if
(
nfapi_p7_message_unpack
((
void
*
)
buffer
,
len
,
&
tx_req
,
sizeof
(
tx_req
),
NULL
)
<
0
)
{
LOG_E
(
MAC
,
"Message tx_req failed to unpack
\n
"
);
}
else
{
LOG_I
(
MAC
,
"Sending tx_req to memcpy function
\n
"
);
memcpy_tx_req
(
NULL
,
&
tx_req
);
}
break
;
break
;
}
case
NFAPI_HI_DCI0_REQUEST
:
case
NFAPI_HI_DCI0_REQUEST
:
break
;
break
;
...
...
targets/RT/USER/lte-ue.c
View file @
e813899a
...
@@ -416,10 +416,10 @@ void init_UE_stub_single_thread(int nb_inst,
...
@@ -416,10 +416,10 @@ void init_UE_stub_single_thread(int nb_inst,
init_timer_thread
();
// dont need this
init_timer_thread
();
// dont need this
init_UE_single_thread_stub
(
nb_inst
);
init_UE_single_thread_stub
(
nb_inst
);
printf
(
"UE threads created
\n
"
);
printf
(
"UE threads created
\n
"
);
LOG_I
(
PHY
,
"Starting multicast link on %s
\n
"
,
emul_iface
);
//
LOG_I(PHY,"Starting multicast link on %s\n",emul_iface);
if
(
NFAPI_MODE
!=
NFAPI_UE_STUB
_PNF
)
// dont need this
//if(NFAPI_MODE!=NFAPI_UE_STUB_PNF || NFAPI_MODE!=NFAPI_MODE_STANDALONE
_PNF) // dont need this
multicast_link_start
(
ue_stub_rx_handler
,
0
,
emul_iface
);
//
multicast_link_start(ue_stub_rx_handler,0,emul_iface);
}
}
void
init_UE_standalone_thread
()
void
init_UE_standalone_thread
()
...
...
targets/RT/USER/lte-uesoftmodem.c
View file @
e813899a
...
@@ -632,7 +632,7 @@ int main( int argc, char **argv ) {
...
@@ -632,7 +632,7 @@ int main( int argc, char **argv ) {
NB_INST
=
1
;
NB_INST
=
1
;
if
(
NFAPI_MODE
==
NFAPI_UE_STUB_PNF
||
NFAPI_MODE_STANDALONE_PNF
)
{
// || NFAPI_MODE_STANDALONE_PNF
if
(
NFAPI_MODE
==
NFAPI_UE_STUB_PNF
||
NFAPI_MODE
==
NFAPI_MODE
_STANDALONE_PNF
)
{
// || NFAPI_MODE_STANDALONE_PNF
PHY_vars_UE_g
=
malloc
(
sizeof
(
PHY_VARS_UE
**
)
*
NB_UE_INST
);
PHY_vars_UE_g
=
malloc
(
sizeof
(
PHY_VARS_UE
**
)
*
NB_UE_INST
);
for
(
int
i
=
0
;
i
<
NB_UE_INST
;
i
++
)
{
for
(
int
i
=
0
;
i
<
NB_UE_INST
;
i
++
)
{
...
@@ -705,16 +705,10 @@ int main( int argc, char **argv ) {
...
@@ -705,16 +705,10 @@ int main( int argc, char **argv ) {
exit
(
-
1
);
// need a softer mode
exit
(
-
1
);
// need a softer mode
}
}
nfapi_setmode
(
NFAPI_MODE_STANDALONE_PNF
);
// make sure to hammer out this nfapi mode crap
if
(
NFAPI_MODE
==
NFAPI_UE_STUB_PNF
)
{
// UE-STUB-PNF
if
(
NFAPI_MODE
==
NFAPI_UE_STUB_PNF
)
{
// UE-STUB-PNF
UE_config_stub_pnf
();
UE_config_stub_pnf
();
}
}
// hard-coding address and port for now fix later
// beggining of test
if
(
NFAPI_MODE
==
NFAPI_MODE_STANDALONE_PNF
)
{
init_UE_standalone_thread
();
}
// end of test
// end of test
printf
(
"ITTI tasks created
\n
"
);
printf
(
"ITTI tasks created
\n
"
);
mlockall
(
MCL_CURRENT
|
MCL_FUTURE
);
mlockall
(
MCL_CURRENT
|
MCL_FUTURE
);
...
@@ -729,8 +723,9 @@ int main( int argc, char **argv ) {
...
@@ -729,8 +723,9 @@ int main( int argc, char **argv ) {
init_UE_stub_single_thread
(
NB_UE_INST
,
eMBMS_active
,
uecap_xer_in
,
emul_iface
);
init_UE_stub_single_thread
(
NB_UE_INST
,
eMBMS_active
,
uecap_xer_in
,
emul_iface
);
}
else
if
(
NFAPI_MODE
==
NFAPI_MODE_STANDALONE_PNF
)
{
}
else
if
(
NFAPI_MODE
==
NFAPI_MODE_STANDALONE_PNF
)
{
// init thread and open socket
// init thread and open socket
config_sync_var
=
0
;
init_UE_stub_single_thread
(
NB_UE_INST
,
eMBMS_active
,
uecap_xer_in
,
emul_iface
);
init_UE_stub_single_thread
(
NB_UE_INST
,
eMBMS_active
,
uecap_xer_in
,
emul_iface
);
init_UE_standalone_thread
();
}
}
else
{
else
{
init_UE
(
NB_UE_INST
,
eMBMS_active
,
uecap_xer_in
,
0
,
get_softmodem_params
()
->
phy_test
,
UE_scan
,
UE_scan_carrier
,
mode
,(
int
)
rx_gain
[
0
][
0
],
tx_max_power
[
0
],
init_UE
(
NB_UE_INST
,
eMBMS_active
,
uecap_xer_in
,
0
,
get_softmodem_params
()
->
phy_test
,
UE_scan
,
UE_scan_carrier
,
mode
,(
int
)
rx_gain
[
0
][
0
],
tx_max_power
[
0
],
...
...
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