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
alex037yang
OpenXG-RAN
Commits
73ff5dec
Commit
73ff5dec
authored
Jan 20, 2021
by
Xue Song
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modify INITIAL_UL_RRC_MESSAGE_TRANSFER
fix build errors about nrUE c-plane is ok
parent
4ea8b38d
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
69 additions
and
25 deletions
+69
-25
executables/nr-uesoftmodem.c
executables/nr-uesoftmodem.c
+3
-0
openair2/F1AP/f1ap_cu_rrc_message_transfer.c
openair2/F1AP/f1ap_cu_rrc_message_transfer.c
+38
-12
openair2/F1AP/f1ap_du_task.c
openair2/F1AP/f1ap_du_task.c
+9
-0
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+1
-2
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
+5
-9
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
+13
-2
No files found.
executables/nr-uesoftmodem.c
View file @
73ff5dec
...
@@ -601,6 +601,9 @@ int main( int argc, char **argv ) {
...
@@ -601,6 +601,9 @@ int main( int argc, char **argv ) {
protocol_ctxt_t
ctxt_pP
=
{
0
};
protocol_ctxt_t
ctxt_pP
=
{
0
};
ctxt_pP
.
enb_flag
=
ENB_FLAG_NO
;
ctxt_pP
.
enb_flag
=
ENB_FLAG_NO
;
ctxt_pP
.
rnti
=
0x1234
;
ctxt_pP
.
rnti
=
0x1234
;
RC
.
nrrrc
=
(
gNB_RRC_INST
**
)
malloc
(
1
*
sizeof
(
gNB_RRC_INST
*
));
RC
.
nrrrc
[
0
]
=
(
gNB_RRC_INST
*
)
malloc
(
sizeof
(
gNB_RRC_INST
));
RC
.
nrrrc
[
0
]
->
node_type
=
ngran_gNB
;
rrc_ue_generate_RRCSetupRequest
(
&
ctxt_pP
,
0
);
rrc_ue_generate_RRCSetupRequest
(
&
ctxt_pP
,
0
);
if
(
create_tasks_nrue
(
1
)
<
0
)
{
if
(
create_tasks_nrue
(
1
)
<
0
)
{
printf
(
"cannot create ITTI tasks
\n
"
);
printf
(
"cannot create ITTI tasks
\n
"
);
...
...
openair2/F1AP/f1ap_cu_rrc_message_transfer.c
View file @
73ff5dec
...
@@ -169,19 +169,45 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -169,19 +169,45 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
f1ap_cu_inst
[
rrc_inst
].
f1ap_ue
[
f1ap_uid
].
du_ue_f1ap_id
=
du_ue_f1ap_id
;
f1ap_cu_inst
[
rrc_inst
].
f1ap_ue
[
f1ap_uid
].
du_ue_f1ap_id
=
du_ue_f1ap_id
;
if
(
RC
.
nrrrc
[
GNB_INSTANCE_TO_MODULE_ID
(
instance
)]
->
node_type
==
ngran_gNB_CU
)
{
if
(
RC
.
nrrrc
[
GNB_INSTANCE_TO_MODULE_ID
(
instance
)]
->
node_type
==
ngran_gNB_CU
)
{
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
frame
=
0
;
if
(
0
)
{
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
sub_frame
=
0
;
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
frame
=
0
;
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
sdu_size
=
ccch_sdu_len
;
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
sub_frame
=
0
;
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
gnb_index
=
rrc_inst
;
// CU instance
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
sdu_size
=
ccch_sdu_len
;
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
rnti
=
rnti
;
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
gnb_index
=
rrc_inst
;
// CU instance
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
CC_id
=
CC_id
;
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
rnti
=
rnti
;
itti_send_msg_to_task
(
TASK_RRC_GNB
,
instance
,
message_p
);
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
CC_id
=
CC_id
;
itti_send_msg_to_task
(
TASK_RRC_GNB
,
instance
,
message_p
);
}
protocol_ctxt_t
ctxt
;
ctxt
.
module_id
=
instance
;
ctxt
.
instance
=
instance
;
ctxt
.
rnti
=
0x1234
;
//f1ap_get_rnti_by_cu_id(&f1ap_cu_inst[instance], cu_ue_f1ap_id);
ctxt
.
enb_flag
=
1
;
ctxt
.
eNB_index
=
0
;
ctxt
.
configured
=
1
;
mem_block_t
*
mb
=
get_free_mem_block
(
ie
->
value
.
choice
.
RRCContainer
.
size
,
__func__
);
memcpy
((
void
*
)
mb
->
data
,(
void
*
)
ie
->
value
.
choice
.
RRCContainer
.
buf
,
ie
->
value
.
choice
.
RRCContainer
.
size
);
LOG_I
(
F1AP
,
"Calling pdcp_data_ind for UE RNTI %x srb_id %lu with size %ld (DCCH)
\n
"
,
ctxt
.
rnti
,
1
,
ie
->
value
.
choice
.
RRCContainer
.
size
);
LOG_I
(
F1AP
,
"%s() RRCContainer size %lu: "
,
__func__
,
ie
->
value
.
choice
.
RRCContainer
.
size
);
for
(
int
i
=
0
;
i
<
ie
->
value
.
choice
.
RRCContainer
.
size
;
i
++
)
printf
(
"%02x "
,
mb
->
data
[
i
]);
printf
(
"
\n
"
);
pdcp_data_ind
(
&
ctxt
,
1
,
// srb_flag
0
,
// embms_flag
1
,
ie
->
value
.
choice
.
RRCContainer
.
size
,
mb
);
return
0
;
}
else
{
}
else
{
RRC_MAC_CCCH_DATA_IND
(
message_p
).
frame
=
0
;
RRC_MAC_CCCH_DATA_IND
(
message_p
).
frame
=
0
;
RRC_MAC_CCCH_DATA_IND
(
message_p
).
sub_frame
=
0
;
RRC_MAC_CCCH_DATA_IND
(
message_p
).
sub_frame
=
0
;
RRC_MAC_CCCH_DATA_IND
(
message_p
).
sdu_size
=
ccch_sdu_len
;
RRC_MAC_CCCH_DATA_IND
(
message_p
).
sdu_size
=
ccch_sdu_len
;
RRC_MAC_CCCH_DATA_IND
(
message_p
).
enb_index
=
rrc_inst
;
// CU instance
RRC_MAC_CCCH_DATA_IND
(
message_p
).
enb_index
=
rrc_inst
;
// CU instance
RRC_MAC_CCCH_DATA_IND
(
message_p
).
rnti
=
rnti
;
RRC_MAC_CCCH_DATA_IND
(
message_p
).
rnti
=
rnti
;
RRC_MAC_CCCH_DATA_IND
(
message_p
).
CC_id
=
CC_id
;
RRC_MAC_CCCH_DATA_IND
(
message_p
).
CC_id
=
CC_id
;
itti_send_msg_to_task
(
TASK_RRC_ENB
,
instance
,
message_p
);
itti_send_msg_to_task
(
TASK_RRC_ENB
,
instance
,
message_p
);
}
}
...
...
openair2/F1AP/f1ap_du_task.c
View file @
73ff5dec
...
@@ -175,6 +175,15 @@ void *F1AP_DU_task(void *arg) {
...
@@ -175,6 +175,15 @@ void *F1AP_DU_task(void *arg) {
&
received_msg
->
ittiMsg
.
sctp_data_ind
);
&
received_msg
->
ittiMsg
.
sctp_data_ind
);
break
;
break
;
case
F1AP_INITIAL_UL_RRC_MESSAGE
:
// to rrc
LOG_I
(
F1AP
,
"DU Task Received F1AP_INITIAL_UL_RRC_MESSAGE
\n
"
);
f1ap_initial_ul_rrc_message_t
*
msg
=
&
F1AP_INITIAL_UL_RRC_MESSAGE
(
received_msg
);
DU_send_INITIAL_UL_RRC_MESSAGE_TRANSFER
(
0
,
0
,
0
,
msg
->
crnti
,
msg
->
rrc_container
,
msg
->
rrc_container_length
);
break
;
case
F1AP_UL_RRC_MESSAGE
:
// to rrc
case
F1AP_UL_RRC_MESSAGE
:
// to rrc
LOG_I
(
F1AP
,
"DU Task Received F1AP_UL_RRC_MESSAGE
\n
"
);
LOG_I
(
F1AP
,
"DU Task Received F1AP_UL_RRC_MESSAGE
\n
"
);
if
(
RC
.
nrrrc
[
0
]
->
node_type
==
ngran_gNB_DU
)
{
if
(
RC
.
nrrrc
[
0
]
->
node_type
==
ngran_gNB_DU
)
{
...
...
openair2/GNB_APP/gnb_config.c
View file @
73ff5dec
...
@@ -80,7 +80,7 @@
...
@@ -80,7 +80,7 @@
extern
uint16_t
sf_ahead
;
extern
uint16_t
sf_ahead
;
int
macrlc_has_f1
=
0
;
int
macrlc_has_f1
=
0
;
ngran_node_t
node_type
=
ngran_gNB
;
extern
ngran_node_t
node_type
;
extern
int
config_check_band_frequencies
(
int
ind
,
int16_t
band
,
uint64_t
downlink_frequency
,
extern
int
config_check_band_frequencies
(
int
ind
,
int16_t
band
,
uint64_t
downlink_frequency
,
int32_t
uplink_frequency_offset
,
uint32_t
frame_type
);
int32_t
uplink_frequency_offset
,
uint32_t
frame_type
);
...
@@ -1477,7 +1477,6 @@ void gNB_app_handle_f1ap_setup_resp(f1ap_setup_resp_t *resp) {
...
@@ -1477,7 +1477,6 @@ void gNB_app_handle_f1ap_setup_resp(f1ap_setup_resp_t *resp) {
void
set_node_type
(
void
)
{
void
set_node_type
(
void
)
{
int
j
;
int
j
;
// ngran_node_t node_type;
paramdef_t
MacRLC_Params
[]
=
MACRLCPARAMS_DESC
;
paramdef_t
MacRLC_Params
[]
=
MACRLCPARAMS_DESC
;
paramlist_def_t
MacRLC_ParamList
=
{
CONFIG_STRING_MACRLC_LIST
,
NULL
,
0
};
paramlist_def_t
MacRLC_ParamList
=
{
CONFIG_STRING_MACRLC_LIST
,
NULL
,
0
};
paramdef_t
GNBParams
[]
=
GNBPARAMS_DESC
;
paramdef_t
GNBParams
[]
=
GNBPARAMS_DESC
;
...
...
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
View file @
73ff5dec
...
@@ -47,7 +47,7 @@ hash_table_t *pdcp_coll_p;
...
@@ -47,7 +47,7 @@ hash_table_t *pdcp_coll_p;
static
uint64_t
pdcp_optmask
;
static
uint64_t
pdcp_optmask
;
#include "common/ran_context.h"
#include "common/ran_context.h"
extern
RAN_CONTEXT_t
RC
;
extern
RAN_CONTEXT_t
RC
;
extern
ngran_node_t
node_type
;
ngran_node_t
node_type
=
ngran_gNB
;
uint8_t
first_dcch
=
0
;
uint8_t
first_dcch
=
0
;
/****************************************************************************/
/****************************************************************************/
...
@@ -623,15 +623,11 @@ static void deliver_sdu_srb(protocol_ctxt_t *ctxt_pP, void *_ue, nr_pdcp_entity_
...
@@ -623,15 +623,11 @@ static void deliver_sdu_srb(protocol_ctxt_t *ctxt_pP, void *_ue, nr_pdcp_entity_
int
srb_id
;
int
srb_id
;
int
i
;
int
i
;
if
(
NODE_IS_CU
(
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
if
(
ccch_or_dcch
==
0
)
{
nr_rrc_data_ind
(
ctxt_pP
,
1
,
size
,
buf
);
nr_rrc_data_ind_ccch
(
ctxt_pP
,
1
,
size
,
buf
);
ccch_or_dcch
=
1
;
}
else
{
}
else
{
if
(
ccch_or_dcch
==
0
)
{
nr_rrc_data_ind
(
ctxt_pP
,
1
,
size
,
buf
);
nr_rrc_data_ind_ccch
(
ctxt_pP
,
1
,
size
,
buf
);
ccch_or_dcch
=
1
;
}
else
{
nr_rrc_data_ind
(
ctxt_pP
,
1
,
size
,
buf
);
}
}
}
return
;
return
;
...
...
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
View file @
73ff5dec
...
@@ -474,6 +474,7 @@ rb_found:
...
@@ -474,6 +474,7 @@ rb_found:
"Can't be CU, bad node type %d
\n
"
,
type
);
"Can't be CU, bad node type %d
\n
"
,
type
);
if
(
NODE_IS_DU
(
type
)
&&
is_srb
==
1
)
{
if
(
NODE_IS_DU
(
type
)
&&
is_srb
==
1
)
{
MessageDef
*
msg
;
if
(
ccch_flag
)
{
if
(
ccch_flag
)
{
/* for rfsim, because UE send RRCSetupRequest in SRB1 */
/* for rfsim, because UE send RRCSetupRequest in SRB1 */
asn_dec_rval_t
dec_rval
;
asn_dec_rval_t
dec_rval
;
...
@@ -493,7 +494,17 @@ rb_found:
...
@@ -493,7 +494,17 @@ rb_found:
if
(
ul_ccch_msg
->
message
.
present
==
NR_UL_CCCH_MessageType_PR_c1
)
{
if
(
ul_ccch_msg
->
message
.
present
==
NR_UL_CCCH_MessageType_PR_c1
)
{
if
(
ul_ccch_msg
->
message
.
choice
.
c1
->
present
==
NR_UL_CCCH_MessageType__c1_PR_rrcSetupRequest
)
{
if
(
ul_ccch_msg
->
message
.
choice
.
c1
->
present
==
NR_UL_CCCH_MessageType__c1_PR_rrcSetupRequest
)
{
LOG_I
(
RLC
,
"[MSG] RRC Setup Request
\n
"
);
LOG_I
(
RLC
,
"[MSG] RRC Setup Request
\n
"
);
DU_send_INITIAL_UL_RRC_MESSAGE_TRANSFER
(
0
,
0
,
0
,
ue
->
rnti
,(
uint8_t
*
)
buf
,
size
);
// DU_send_INITIAL_UL_RRC_MESSAGE_TRANSFER(0,0,0,ue->rnti,(uint8_t *)buf,size);
msg
=
itti_alloc_new_message
(
TASK_RLC_ENB
,
F1AP_INITIAL_UL_RRC_MESSAGE
);
F1AP_INITIAL_UL_RRC_MESSAGE
(
msg
).
gNB_DU_ue_id
=
0
;
F1AP_INITIAL_UL_RRC_MESSAGE
(
msg
).
mcc
=
RC
.
nrrrc
[
0
]
->
configuration
.
mcc
[
0
];
F1AP_INITIAL_UL_RRC_MESSAGE
(
msg
).
mnc
=
RC
.
nrrrc
[
0
]
->
configuration
.
mnc
[
0
];
F1AP_INITIAL_UL_RRC_MESSAGE
(
msg
).
mnc_digit_length
=
RC
.
nrrrc
[
0
]
->
configuration
.
mnc_digit_length
[
0
];
F1AP_INITIAL_UL_RRC_MESSAGE
(
msg
).
nr_cellid
=
RC
.
nrrrc
[
0
]
->
nr_cellid
;
F1AP_INITIAL_UL_RRC_MESSAGE
(
msg
).
crnti
=
ue
->
rnti
;
F1AP_INITIAL_UL_RRC_MESSAGE
(
msg
).
rrc_container
=
(
unsigned
char
*
)
buf
;
F1AP_INITIAL_UL_RRC_MESSAGE
(
msg
).
rrc_container_length
=
size
;
itti_send_msg_to_task
(
TASK_DU_F1
,
ENB_MODULE_ID_TO_INSTANCE
(
0
),
msg
);
ccch_flag
=
0
;
ccch_flag
=
0
;
return
;
return
;
}
}
...
@@ -501,7 +512,7 @@ rb_found:
...
@@ -501,7 +512,7 @@ rb_found:
}
}
}
}
MessageDef
*
msg
=
itti_alloc_new_message
(
TASK_RLC_ENB
,
F1AP_UL_RRC_MESSAGE
);
msg
=
itti_alloc_new_message
(
TASK_RLC_ENB
,
F1AP_UL_RRC_MESSAGE
);
F1AP_UL_RRC_MESSAGE
(
msg
).
rnti
=
ue
->
rnti
;
F1AP_UL_RRC_MESSAGE
(
msg
).
rnti
=
ue
->
rnti
;
F1AP_UL_RRC_MESSAGE
(
msg
).
srb_id
=
rb_id
;
F1AP_UL_RRC_MESSAGE
(
msg
).
srb_id
=
rb_id
;
F1AP_UL_RRC_MESSAGE
(
msg
).
rrc_container
=
(
unsigned
char
*
)
buf
;
F1AP_UL_RRC_MESSAGE
(
msg
).
rrc_container
=
(
unsigned
char
*
)
buf
;
...
...
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