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
常顺宇
OpenXG-RAN
Commits
d5696baf
Commit
d5696baf
authored
Dec 21, 2020
by
yaojie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix merge conflict
parent
37d52bdf
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
270 additions
and
283 deletions
+270
-283
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+1
-1
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+0
-4
openair2/RRC/NR/nr_ngap_gNB.c
openair2/RRC/NR/nr_ngap_gNB.c
+1
-1
openair2/RRC/NR/nr_rrc_defs.h
openair2/RRC/NR/nr_rrc_defs.h
+0
-2
openair2/RRC/NR/rrc_gNB.c
openair2/RRC/NR/rrc_gNB.c
+262
-224
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+6
-7
openair3/NAS/NR_UE/nr_nas_msg_sim.h
openair3/NAS/NR_UE/nr_nas_msg_sim.h
+0
-19
openair3/NGAP/ngap_gNB_nas_procedures.c
openair3/NGAP/ngap_gNB_nas_procedures.c
+0
-25
No files found.
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
d5696baf
...
@@ -523,7 +523,7 @@ typedef struct gNB_MAC_INST_s {
...
@@ -523,7 +523,7 @@ typedef struct gNB_MAC_INST_s {
/// UL handle
/// UL handle
uint32_t
ul_handle
;
uint32_t
ul_handle
;
UE_info_t
UE_info
;
//
UE_info_t UE_info;
// MAC function execution peformance profiler
// MAC function execution peformance profiler
/// processing time of eNB scheduler
/// processing time of eNB scheduler
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
d5696baf
...
@@ -1193,10 +1193,6 @@ LOG_D(NR_RRC,"RRCSetupComplete Encoded %zd bits (%zd bytes)\n",enc_rval.encoded,
...
@@ -1193,10 +1193,6 @@ LOG_D(NR_RRC,"RRCSetupComplete Encoded %zd bits (%zd bytes)\n",enc_rval.encoded,
return
((
enc_rval
.
encoded
+
7
)
/
8
);
return
((
enc_rval
.
encoded
+
7
)
/
8
);
}
}
int
do_DLInformationTransfer_NR
(
void
*
p
)
{
return
0
;
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
uint8_t
uint8_t
do_NR_DLInformationTransfer
(
do_NR_DLInformationTransfer
(
...
...
openair2/RRC/NR/nr_ngap_gNB.c
View file @
d5696baf
...
@@ -47,7 +47,7 @@ void rrc_gNB_send_NGAP_NAS_FIRST_REQ(void ) {
...
@@ -47,7 +47,7 @@ void rrc_gNB_send_NGAP_NAS_FIRST_REQ(void ) {
rrc_gNB_process_NGAP_DOWNLINK_NAS
();
rrc_gNB_process_NGAP_DOWNLINK_NAS
();
}
}
void
nr_rrc_rx_tx
()
{
void
nr_rrc_rx_tx
(
void
)
{
// check timers
// check timers
// check if UEs are lost, to remove them from upper layers
// check if UEs are lost, to remove them from upper layers
...
...
openair2/RRC/NR/nr_rrc_defs.h
View file @
d5696baf
...
@@ -345,8 +345,6 @@ typedef struct gNB_RRC_UE_s {
...
@@ -345,8 +345,6 @@ typedef struct gNB_RRC_UE_s {
uint8_t
nb_of_e_rabs
;
uint8_t
nb_of_e_rabs
;
/* Total number of pdu session already setup in the list */
/* Total number of pdu session already setup in the list */
uint8_t
setup_pdu_sessions
;
uint8_t
setup_pdu_sessions
;
/* Number of e_rab to be setup in the list */
uint8_t
nb_of_e_rabs
;
/* Number of pdu session to be setup in the list */
/* Number of pdu session to be setup in the list */
uint8_t
nb_of_pdusessions
;
uint8_t
nb_of_pdusessions
;
/* Number of e_rab to be modified in the list */
/* Number of e_rab to be modified in the list */
...
...
openair2/RRC/NR/rrc_gNB.c
View file @
d5696baf
...
@@ -360,7 +360,7 @@ rrc_gNB_generate_RRCSetup(
...
@@ -360,7 +360,7 @@ rrc_gNB_generate_RRCSetup(
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
{
{
LOG_I
(
NR_RRC
,
"rrc_gNB_generate_RRCSetup
\n
"
);
LOG_I
(
NR_RRC
,
"rrc_gNB_generate_RRCSetup
\n
"
);
NR_SRB_ToAddModList_t
*
SRB_configList
=
NULL
;
NR_SRB_ToAddModList_t
*
*
SRB_configList
=
NULL
;
// T(T_GNB_RRC_SETUP,
// T(T_GNB_RRC_SETUP,
// T_INT(ctxt_pP->module_id),
// T_INT(ctxt_pP->module_id),
...
@@ -368,7 +368,7 @@ rrc_gNB_generate_RRCSetup(
...
@@ -368,7 +368,7 @@ rrc_gNB_generate_RRCSetup(
// T_INT(ctxt_pP->subframe),
// T_INT(ctxt_pP->subframe),
// T_INT(ctxt_pP->rnti));
// T_INT(ctxt_pP->rnti));
gNB_RRC_UE_t
*
ue_p
=
&
ue_context_pP
->
ue_context
;
gNB_RRC_UE_t
*
ue_p
=
&
ue_context_pP
->
ue_context
;
SRB_configList
=
ue_p
->
SRB_configList
;
SRB_configList
=
&
ue_p
->
SRB_configList
;
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
=
do_RRCSetup
(
ctxt_pP
,
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
=
do_RRCSetup
(
ctxt_pP
,
ue_context_pP
,
ue_context_pP
,
CC_id
,
CC_id
,
...
@@ -409,10 +409,10 @@ rrc_gNB_generate_RRCSetup(
...
@@ -409,10 +409,10 @@ rrc_gNB_generate_RRCSetup(
#ifdef ITTI_SIM
#ifdef ITTI_SIM
MessageDef
*
message_p
;
MessageDef
*
message_p
;
uint8_t
*
message_buffer
;
uint8_t
*
message_buffer
;
message_buffer
=
itti_malloc
(
TASK_RRC_GNB
_SIM
,
TASK_RRC_UE_SIM
,
message_buffer
=
itti_malloc
(
TASK_RRC_GNB
,
TASK_RRC_UE_SIM
,
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
);
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
);
memcpy
(
message_buffer
,
(
uint8_t
*
)
ue_p
->
Srb0
.
Tx_buffer
.
Payload
,
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
);
memcpy
(
message_buffer
,
(
uint8_t
*
)
ue_p
->
Srb0
.
Tx_buffer
.
Payload
,
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_GNB
_SIM
,
GNB_RRC_CCCH_DATA_IND
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_GNB
,
GNB_RRC_CCCH_DATA_IND
);
GNB_RRC_CCCH_DATA_IND
(
message_p
).
sdu
=
message_buffer
;
GNB_RRC_CCCH_DATA_IND
(
message_p
).
sdu
=
message_buffer
;
GNB_RRC_CCCH_DATA_IND
(
message_p
).
size
=
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
;
GNB_RRC_CCCH_DATA_IND
(
message_p
).
size
=
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
;
itti_send_msg_to_task
(
TASK_RRC_UE_SIM
,
ctxt_pP
->
instance
,
message_p
);
itti_send_msg_to_task
(
TASK_RRC_UE_SIM
,
ctxt_pP
->
instance
,
message_p
);
...
@@ -527,10 +527,10 @@ rrc_gNB_generate_RRCReject(
...
@@ -527,10 +527,10 @@ rrc_gNB_generate_RRCReject(
#ifdef ITTI_SIM
#ifdef ITTI_SIM
MessageDef
*
message_p
;
MessageDef
*
message_p
;
uint8_t
*
message_buffer
;
uint8_t
*
message_buffer
;
message_buffer
=
itti_malloc
(
TASK_RRC_GNB
_SIM
,
TASK_RRC_UE_SIM
,
message_buffer
=
itti_malloc
(
TASK_RRC_GNB
,
TASK_RRC_UE_SIM
,
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
);
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
);
memcpy
(
message_buffer
,
(
uint8_t
*
)
ue_p
->
Srb0
.
Tx_buffer
.
Payload
,
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
);
memcpy
(
message_buffer
,
(
uint8_t
*
)
ue_p
->
Srb0
.
Tx_buffer
.
Payload
,
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_GNB
_SIM
,
GNB_RRC_CCCH_DATA_IND
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_GNB
,
GNB_RRC_CCCH_DATA_IND
);
GNB_RRC_CCCH_DATA_IND
(
message_p
).
sdu
=
message_buffer
;
GNB_RRC_CCCH_DATA_IND
(
message_p
).
sdu
=
message_buffer
;
GNB_RRC_CCCH_DATA_IND
(
message_p
).
size
=
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
;
GNB_RRC_CCCH_DATA_IND
(
message_p
).
size
=
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
;
itti_send_msg_to_task
(
TASK_RRC_UE_SIM
,
ctxt_pP
->
instance
,
message_p
);
itti_send_msg_to_task
(
TASK_RRC_UE_SIM
,
ctxt_pP
->
instance
,
message_p
);
...
@@ -810,9 +810,9 @@ rrc_gNB_generate_dedicatedRRCReconfiguration_release(
...
@@ -810,9 +810,9 @@ rrc_gNB_generate_dedicatedRRCReconfiguration_release(
#ifdef ITTI_SIM
#ifdef ITTI_SIM
MessageDef
*
message_p
;
MessageDef
*
message_p
;
uint8_t
*
message_buffer
;
uint8_t
*
message_buffer
;
message_buffer
=
itti_malloc
(
TASK_RRC_GNB
_SIM
,
TASK_RRC_UE_SIM
,
size
);
message_buffer
=
itti_malloc
(
TASK_RRC_GNB
,
TASK_RRC_UE_SIM
,
size
);
memcpy
(
message_buffer
,
buffer
,
size
);
memcpy
(
message_buffer
,
buffer
,
size
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_GNB
_SIM
,
GNB_RRC_DCCH_DATA_IND
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_GNB
,
GNB_RRC_DCCH_DATA_IND
);
GNB_RRC_DCCH_DATA_IND
(
message_p
).
rbid
=
DCCH
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
rbid
=
DCCH
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
sdu
=
message_buffer
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
sdu
=
message_buffer
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
size
=
size
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
size
=
size
;
...
@@ -923,12 +923,12 @@ rrc_gNB_process_RRCReconfigurationComplete(
...
@@ -923,12 +923,12 @@ rrc_gNB_process_RRCReconfigurationComplete(
for
(
int
i
=
0
;
i
<
DRB_configList
->
list
.
count
;
i
++
)
{
for
(
int
i
=
0
;
i
<
DRB_configList
->
list
.
count
;
i
++
)
{
if
(
DRB_configList
->
list
.
array
[
i
])
{
if
(
DRB_configList
->
list
.
array
[
i
])
{
drb_id
=
(
int
)
DRB_configList
->
list
.
array
[
i
]
->
drb_Identity
;
drb_id
=
(
int
)
DRB_configList
->
list
.
array
[
i
]
->
drb_Identity
;
LOG_I
(
NR_RRC
,
"[gNB %d] Frame %d : Logical Channel UL-DCCH, Received NR_RRCReconfigurationComplete from UE rnti %x, reconfiguring DRB %d
/LCID %d
\n
"
,
LOG_I
(
NR_RRC
,
"[gNB %d] Frame %d : Logical Channel UL-DCCH, Received NR_RRCReconfigurationComplete from UE rnti %x, reconfiguring DRB %d
\n
"
,
ctxt_pP
->
module_id
,
ctxt_pP
->
module_id
,
ctxt_pP
->
frame
,
ctxt_pP
->
frame
,
ctxt_pP
->
rnti
,
ctxt_pP
->
rnti
,
(
int
)
DRB_configList
->
list
.
array
[
i
]
->
drb_Identity
,
(
int
)
DRB_configList
->
list
.
array
[
i
]
->
drb_Identity
);
(
int
)
*
DRB_configList
->
list
.
array
[
i
]
->
pdcp_Config
->
moreThanOneRLC
->
primaryPath
.
logicalChannel
);
//
(int)*DRB_configList->list.array[i]->pdcp_Config->moreThanOneRLC->primaryPath.logicalChannel);
if
(
ue_context_pP
->
ue_context
.
DRB_active
[
drb_id
]
==
0
)
{
if
(
ue_context_pP
->
ue_context
.
DRB_active
[
drb_id
]
==
0
)
{
ue_context_pP
->
ue_context
.
DRB_active
[
drb_id
]
=
1
;
ue_context_pP
->
ue_context
.
DRB_active
[
drb_id
]
=
1
;
...
@@ -939,9 +939,9 @@ rrc_gNB_process_RRCReconfigurationComplete(
...
@@ -939,9 +939,9 @@ rrc_gNB_process_RRCReconfigurationComplete(
PROTOCOL_NR_RRC_CTXT_UE_FMT
" RRC_gNB --- MAC_CONFIG_REQ (DRB) ---> MAC_gNB
\n
"
,
PROTOCOL_NR_RRC_CTXT_UE_FMT
" RRC_gNB --- MAC_CONFIG_REQ (DRB) ---> MAC_gNB
\n
"
,
PROTOCOL_NR_RRC_CTXT_UE_ARGS
(
ctxt_pP
));
PROTOCOL_NR_RRC_CTXT_UE_ARGS
(
ctxt_pP
));
if
(
DRB_configList
->
list
.
array
[
i
]
->
pdcp_Config
->
moreThanOneRLC
->
primaryPath
.
logicalChannel
)
{
//
if (DRB_configList->list.array[i]->pdcp_Config->moreThanOneRLC->primaryPath.logicalChannel) {
nr_DRB2LCHAN
[
i
]
=
(
uint8_t
)
*
DRB_configList
->
list
.
array
[
i
]
->
pdcp_Config
->
moreThanOneRLC
->
primaryPath
.
logicalChannel
;
//
nr_DRB2LCHAN[i] = (uint8_t) * DRB_configList->list.array[i]->pdcp_Config->moreThanOneRLC->primaryPath.logicalChannel;
}
//
}
// rrc_mac_config_req_eNB
// rrc_mac_config_req_eNB
}
else
{
// remove LCHAN from MAC/PHY
}
else
{
// remove LCHAN from MAC/PHY
...
@@ -950,12 +950,12 @@ rrc_gNB_process_RRCReconfigurationComplete(
...
@@ -950,12 +950,12 @@ rrc_gNB_process_RRCReconfigurationComplete(
/* rrc_pdcp_config_req (ctxt_pP->module_id, frameP, 1, CONFIG_ACTION_REMOVE,
/* rrc_pdcp_config_req (ctxt_pP->module_id, frameP, 1, CONFIG_ACTION_REMOVE,
(ue_mod_idP * NB_RB_MAX) + DRB2LCHAN[i],UNDEF_SECURITY_MODE);
(ue_mod_idP * NB_RB_MAX) + DRB2LCHAN[i],UNDEF_SECURITY_MODE);
*/
*/
rrc_rlc_config_req
(
ctxt_pP
,
/*
rrc_rlc_config_req(ctxt_pP,
SRB_FLAG_NO,
SRB_FLAG_NO,
MBMS_FLAG_NO,
MBMS_FLAG_NO,
CONFIG_ACTION_REMOVE,
CONFIG_ACTION_REMOVE,
nr_DRB2LCHAN[i],
nr_DRB2LCHAN[i],
Rlc_info_um
);
Rlc_info_um);
*/
}
}
ue_context_pP
->
ue_context
.
DRB_active
[
drb_id
]
=
0
;
ue_context_pP
->
ue_context
.
DRB_active
[
drb_id
]
=
0
;
...
@@ -1359,6 +1359,15 @@ int nr_rrc_gNB_decode_ccch(protocol_ctxt_t *const ctxt_pP,
...
@@ -1359,6 +1359,15 @@ int nr_rrc_gNB_decode_ccch(protocol_ctxt_t *const ctxt_pP,
0
);
0
);
if
(
dec_rval
.
consumed
==
0
)
{
if
(
dec_rval
.
consumed
==
0
)
{
/* TODO */
LOG_E
(
NR_RRC
,
PROTOCOL_NR_RRC_CTXT_UE_FMT
" FATAL Error in receiving CCCH
\n
"
,
PROTOCOL_NR_RRC_CTXT_UE_ARGS
(
ctxt_pP
));
return
-
1
;
}
if
(
ul_ccch_msg
->
message
.
present
==
NR_UL_CCCH_MessageType_PR_c1
)
{
switch
(
ul_ccch_msg
->
message
.
choice
.
c1
->
present
)
{
case
NR_UL_CCCH_MessageType__c1_PR_NOTHING
:
/* TODO */
/* TODO */
LOG_I
(
NR_RRC
,
LOG_I
(
NR_RRC
,
PROTOCOL_NR_RRC_CTXT_FMT
" Received PR_NOTHING on UL-CCCH-Message
\n
"
,
PROTOCOL_NR_RRC_CTXT_FMT
" Received PR_NOTHING on UL-CCCH-Message
\n
"
,
...
@@ -1366,6 +1375,7 @@ int nr_rrc_gNB_decode_ccch(protocol_ctxt_t *const ctxt_pP,
...
@@ -1366,6 +1375,7 @@ int nr_rrc_gNB_decode_ccch(protocol_ctxt_t *const ctxt_pP,
break
;
break
;
case
NR_UL_CCCH_MessageType__c1_PR_rrcSetupRequest
:
case
NR_UL_CCCH_MessageType__c1_PR_rrcSetupRequest
:
LOG_I
(
NR_RRC
,
"Received RRCSetupRequest on UL-CCCH-Message (UE rnti %x)
\n
"
,
ctxt_pP
->
rnti
);
ue_context_p
=
rrc_gNB_get_ue_context
(
gnb_rrc_inst
,
ctxt_pP
->
rnti
);
ue_context_p
=
rrc_gNB_get_ue_context
(
gnb_rrc_inst
,
ctxt_pP
->
rnti
);
if
(
ue_context_p
!=
NULL
)
{
if
(
ue_context_p
!=
NULL
)
{
rrc_gNB_free_mem_UE_context
(
ctxt_pP
,
ue_context_p
);
rrc_gNB_free_mem_UE_context
(
ctxt_pP
,
ue_context_p
);
...
@@ -1483,6 +1493,10 @@ int nr_rrc_gNB_decode_ccch(protocol_ctxt_t *const ctxt_pP,
...
@@ -1483,6 +1493,10 @@ int nr_rrc_gNB_decode_ccch(protocol_ctxt_t *const ctxt_pP,
CC_id
);
CC_id
);
break
;
break
;
case
NR_UL_CCCH_MessageType__c1_PR_rrcResumeRequest
:
LOG_I
(
NR_RRC
,
"receive rrcResumeRequest message
\n
"
);
break
;
case
NR_UL_CCCH_MessageType__c1_PR_rrcReestablishmentRequest
:
case
NR_UL_CCCH_MessageType__c1_PR_rrcReestablishmentRequest
:
LOG_I
(
NR_RRC
,
"receive rrcReestablishmentRequest message
\n
"
);
LOG_I
(
NR_RRC
,
"receive rrcReestablishmentRequest message
\n
"
);
LOG_DUMPMSG
(
NR_RRC
,
DEBUG_RRC
,(
char
*
)(
buffer
),
buffer_length
,
LOG_DUMPMSG
(
NR_RRC
,
DEBUG_RRC
,(
char
*
)(
buffer
),
buffer_length
,
...
@@ -1694,16 +1708,6 @@ int nr_rrc_gNB_decode_ccch(protocol_ctxt_t *const ctxt_pP,
...
@@ -1694,16 +1708,6 @@ int nr_rrc_gNB_decode_ccch(protocol_ctxt_t *const ctxt_pP,
}
}
break
;
break
;
case
NR_UL_CCCH_MessageType__c1_PR_rrcResumeRequest
:
LOG_I
(
NR_RRC
,
"receive rrcResumeRequest message
\n
"
);
/* TODO */
break
;
case
NR_UL_CCCH_MessageType__c1_PR_rrcReestablishmentRequest
:
LOG_I
(
NR_RRC
,
"receive rrcReestablishmentRequest message
\n
"
);
/* TODO */
break
;
case
NR_UL_CCCH_MessageType__c1_PR_rrcSystemInfoRequest
:
case
NR_UL_CCCH_MessageType__c1_PR_rrcSystemInfoRequest
:
LOG_I
(
NR_RRC
,
"receive rrcSystemInfoRequest message
\n
"
);
LOG_I
(
NR_RRC
,
"receive rrcSystemInfoRequest message
\n
"
);
/* TODO */
/* TODO */
...
@@ -1808,8 +1812,9 @@ rrc_gNB_decode_dcch(
...
@@ -1808,8 +1812,9 @@ rrc_gNB_decode_dcch(
break
;
break
;
case
NR_UL_DCCH_MessageType__c1_PR_rrcReconfigurationComplete
:
case
NR_UL_DCCH_MessageType__c1_PR_rrcReconfigurationComplete
:
LOG_I
(
NR_RRC
,
"Receive RRC Reconfiguration Complete message UE %x
\n
"
,
ctxt_pP
->
rnti
);
if
(
!
ue_context_p
)
{
if
(
!
ue_context_p
)
{
LOG_
I
(
NR_RRC
,
"Processing NR_RRCReconfigurationComplete UE %x, ue_context_p is NULL
\n
"
,
ctxt_pP
->
rnti
);
LOG_
E
(
NR_RRC
,
"Processing NR_RRCReconfigurationComplete UE %x, ue_context_p is NULL
\n
"
,
ctxt_pP
->
rnti
);
break
;
break
;
}
}
...
@@ -1840,7 +1845,39 @@ rrc_gNB_decode_dcch(
...
@@ -1840,7 +1845,39 @@ rrc_gNB_decode_dcch(
ul_dcch_msg
->
message
.
choice
.
c1
->
choice
.
rrcReconfigurationComplete
->
rrc_TransactionIdentifier
);
ul_dcch_msg
->
message
.
choice
.
c1
->
choice
.
rrcReconfigurationComplete
->
rrc_TransactionIdentifier
);
}
}
if
(
AMF_MODE_ENABLED
)
{
if
(
ue_context_p
->
ue_context
.
pdu_session_release_command_flag
==
1
)
{
xid
=
ul_dcch_msg
->
message
.
choice
.
c1
->
choice
.
rrcReconfigurationComplete
->
rrc_TransactionIdentifier
;
ue_context_p
->
ue_context
.
pdu_session_release_command_flag
=
0
;
//gtp tunnel delete
msg_delete_tunnels_p
=
itti_alloc_new_message
(
TASK_RRC_GNB
,
GTPV1U_GNB_DELETE_TUNNEL_REQ
);
memset
(
&
GTPV1U_GNB_DELETE_TUNNEL_REQ
(
msg_delete_tunnels_p
),
0
,
sizeof
(
GTPV1U_GNB_DELETE_TUNNEL_REQ
(
msg_delete_tunnels_p
)));
GTPV1U_GNB_DELETE_TUNNEL_REQ
(
msg_delete_tunnels_p
).
rnti
=
ue_context_p
->
ue_context
.
rnti
;
for
(
i
=
0
;
i
<
NB_RB_MAX
;
i
++
)
{
if
(
xid
==
ue_context_p
->
ue_context
.
pdusession
[
i
].
xid
)
{
GTPV1U_GNB_DELETE_TUNNEL_REQ
(
msg_delete_tunnels_p
).
pdusession_id
[
GTPV1U_GNB_DELETE_TUNNEL_REQ
(
msg_delete_tunnels_p
).
num_pdusession
++
]
=
ue_context_p
->
ue_context
.
gnb_gtp_psi
[
i
];
ue_context_p
->
ue_context
.
gnb_gtp_teid
[
i
]
=
0
;
memset
(
&
ue_context_p
->
ue_context
.
gnb_gtp_addrs
[
i
],
0
,
sizeof
(
ue_context_p
->
ue_context
.
gnb_gtp_addrs
[
i
]));
ue_context_p
->
ue_context
.
gnb_gtp_psi
[
i
]
=
0
;
}
}
itti_send_msg_to_task
(
TASK_GTPV1_U
,
ctxt_pP
->
instance
,
msg_delete_tunnels_p
);
//NGAP_PDUSESSION_RELEASE_RESPONSE
rrc_gNB_send_NGAP_PDUSESSION_RELEASE_RESPONSE
(
ctxt_pP
,
ue_context_p
,
xid
);
}
else
{
rrc_gNB_send_NGAP_PDUSESSION_SETUP_RESP
(
ctxt_pP
,
ue_context_p
,
ul_dcch_msg
->
message
.
choice
.
c1
->
choice
.
rrcReconfigurationComplete
->
rrc_TransactionIdentifier
);
}
}
if
(
first_rrcreconfiguration
==
0
){
first_rrcreconfiguration
=
1
;
rrc_gNB_send_NGAP_INITIAL_CONTEXT_SETUP_RESP
(
ctxt_pP
,
ue_context_p
);
rrc_gNB_send_NGAP_INITIAL_CONTEXT_SETUP_RESP
(
ctxt_pP
,
ue_context_p
);
}
break
;
break
;
...
@@ -1922,7 +1959,7 @@ rrc_gNB_decode_dcch(
...
@@ -1922,7 +1959,7 @@ rrc_gNB_decode_dcch(
ctxt_pP
,
ctxt_pP
,
ue_context_p
,
ue_context_p
,
ul_dcch_msg
->
message
.
choice
.
c1
->
choice
.
rrcSetupComplete
->
criticalExtensions
.
choice
.
rrcSetupComplete
);
ul_dcch_msg
->
message
.
choice
.
c1
->
choice
.
rrcSetupComplete
->
criticalExtensions
.
choice
.
rrcSetupComplete
);
LOG_I
(
NR_RRC
,
PROTOCOL_NR_RRC_CTXT_UE_FMT
" UE State = RRC_CONNECTED
\n
"
,
LOG_I
(
NR_RRC
,
PROTOCOL_NR_RRC_CTXT_UE_FMT
" UE State =
NR_
RRC_CONNECTED
\n
"
,
PROTOCOL_NR_RRC_CTXT_UE_ARGS
(
ctxt_pP
));
PROTOCOL_NR_RRC_CTXT_UE_ARGS
(
ctxt_pP
));
}
}
...
@@ -2390,6 +2427,7 @@ void *rrc_gnb_task(void *args_p) {
...
@@ -2390,6 +2427,7 @@ void *rrc_gnb_task(void *args_p) {
case
NGAP_INITIAL_CONTEXT_SETUP_REQ
:
case
NGAP_INITIAL_CONTEXT_SETUP_REQ
:
rrc_gNB_process_NGAP_INITIAL_CONTEXT_SETUP_REQ
(
msg_p
,
msg_name_p
,
instance
);
rrc_gNB_process_NGAP_INITIAL_CONTEXT_SETUP_REQ
(
msg_p
,
msg_name_p
,
instance
);
break
;
case
X2AP_ENDC_SGNB_RELEASE_REQUEST
:
case
X2AP_ENDC_SGNB_RELEASE_REQUEST
:
LOG_I
(
NR_RRC
,
"Received ENDC sgNB release request from X2AP
\n
"
);
LOG_I
(
NR_RRC
,
"Received ENDC sgNB release request from X2AP
\n
"
);
...
@@ -2469,9 +2507,9 @@ rrc_gNB_generate_SecurityModeCommand(
...
@@ -2469,9 +2507,9 @@ rrc_gNB_generate_SecurityModeCommand(
#ifdef ITTI_SIM
#ifdef ITTI_SIM
MessageDef
*
message_p
;
MessageDef
*
message_p
;
uint8_t
*
message_buffer
;
uint8_t
*
message_buffer
;
message_buffer
=
itti_malloc
(
TASK_RRC_GNB
_SIM
,
TASK_RRC_UE_SIM
,
size
);
message_buffer
=
itti_malloc
(
TASK_RRC_GNB
,
TASK_RRC_UE_SIM
,
size
);
memcpy
(
message_buffer
,
buffer
,
size
);
memcpy
(
message_buffer
,
buffer
,
size
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_GNB
_SIM
,
GNB_RRC_DCCH_DATA_IND
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_GNB
,
GNB_RRC_DCCH_DATA_IND
);
GNB_RRC_DCCH_DATA_IND
(
message_p
).
rbid
=
DCCH
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
rbid
=
DCCH
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
sdu
=
message_buffer
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
sdu
=
message_buffer
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
size
=
size
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
size
=
size
;
...
@@ -2526,9 +2564,9 @@ rrc_gNB_generate_UECapabilityEnquiry(
...
@@ -2526,9 +2564,9 @@ rrc_gNB_generate_UECapabilityEnquiry(
#ifdef ITTI_SIM
#ifdef ITTI_SIM
MessageDef
*
message_p
;
MessageDef
*
message_p
;
uint8_t
*
message_buffer
;
uint8_t
*
message_buffer
;
message_buffer
=
itti_malloc
(
TASK_RRC_GNB
_SIM
,
TASK_RRC_UE_SIM
,
size
);
message_buffer
=
itti_malloc
(
TASK_RRC_GNB
,
TASK_RRC_UE_SIM
,
size
);
memcpy
(
message_buffer
,
buffer
,
size
);
memcpy
(
message_buffer
,
buffer
,
size
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_GNB
_SIM
,
GNB_RRC_DCCH_DATA_IND
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_GNB
,
GNB_RRC_DCCH_DATA_IND
);
GNB_RRC_DCCH_DATA_IND
(
message_p
).
rbid
=
DCCH
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
rbid
=
DCCH
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
sdu
=
message_buffer
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
sdu
=
message_buffer
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
size
=
size
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
size
=
size
;
...
...
openair2/RRC/NR_UE/rrc_UE.c
View file @
d5696baf
...
@@ -1393,9 +1393,9 @@ static void rrc_ue_generate_RRCSetupComplete(
...
@@ -1393,9 +1393,9 @@ static void rrc_ue_generate_RRCSetupComplete(
#ifdef ITTI_SIM
#ifdef ITTI_SIM
MessageDef
*
message_p
;
MessageDef
*
message_p
;
uint8_t
*
message_buffer
;
uint8_t
*
message_buffer
;
message_buffer
=
itti_malloc
(
TASK_RRC_
UE_SIM
,
TASK_RRC_GNB_SIM
,
size
);
message_buffer
=
itti_malloc
(
TASK_RRC_
NRUE
,
TASK_RRC_GNB_SIM
,
size
);
memcpy
(
message_buffer
,
buffer
,
size
);
memcpy
(
message_buffer
,
buffer
,
size
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_
UE_SIM
,
UE_RRC_DCCH_DATA_IND
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_
NRUE
,
UE_RRC_DCCH_DATA_IND
);
UE_RRC_DCCH_DATA_IND
(
message_p
).
rbid
=
1
;
UE_RRC_DCCH_DATA_IND
(
message_p
).
rbid
=
1
;
UE_RRC_DCCH_DATA_IND
(
message_p
).
sdu
=
message_buffer
;
UE_RRC_DCCH_DATA_IND
(
message_p
).
sdu
=
message_buffer
;
UE_RRC_DCCH_DATA_IND
(
message_p
).
size
=
size
;
UE_RRC_DCCH_DATA_IND
(
message_p
).
size
=
size
;
...
@@ -1483,7 +1483,6 @@ int8_t nr_rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const NR_SRB
...
@@ -1483,7 +1483,6 @@ int8_t nr_rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const NR_SRB
}
}
}
}
}
}
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_CCCH
,
VCD_FUNCTION_OUT
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_CCCH
,
VCD_FUNCTION_OUT
);
return
rval
;
return
rval
;
...
@@ -1725,11 +1724,11 @@ nr_rrc_ue_process_securityModeCommand(
...
@@ -1725,11 +1724,11 @@ nr_rrc_ue_process_securityModeCommand(
#ifdef ITTI_SIM
#ifdef ITTI_SIM
MessageDef
*
message_p
;
MessageDef
*
message_p
;
uint8_t
*
message_buffer
;
uint8_t
*
message_buffer
;
message_buffer
=
itti_malloc
(
TASK_RRC_
UE_SIM
,
TASK_RRC_GNB_SIM
,
message_buffer
=
itti_malloc
(
TASK_RRC_
NRUE
,
TASK_RRC_GNB_SIM
,
(
enc_rval
.
encoded
+
7
)
/
8
);
(
enc_rval
.
encoded
+
7
)
/
8
);
memcpy
(
message_buffer
,
buffer
,
(
enc_rval
.
encoded
+
7
)
/
8
);
memcpy
(
message_buffer
,
buffer
,
(
enc_rval
.
encoded
+
7
)
/
8
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_
UE_SIM
,
UE_RRC_DCCH_DATA_IND
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_
NRUE
,
UE_RRC_DCCH_DATA_IND
);
GNB_RRC_DCCH_DATA_IND
(
message_p
).
rbid
=
DCCH
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
rbid
=
DCCH
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
sdu
=
message_buffer
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
sdu
=
message_buffer
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
size
=
(
enc_rval
.
encoded
+
7
)
/
8
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
size
=
(
enc_rval
.
encoded
+
7
)
/
8
;
...
@@ -2733,11 +2732,11 @@ nr_rrc_ue_process_ueCapabilityEnquiry(
...
@@ -2733,11 +2732,11 @@ nr_rrc_ue_process_ueCapabilityEnquiry(
#ifdef ITTI_SIM
#ifdef ITTI_SIM
MessageDef
*
message_p
;
MessageDef
*
message_p
;
uint8_t
*
message_buffer
;
uint8_t
*
message_buffer
;
message_buffer
=
itti_malloc
(
TASK_RRC_
UE_SIM
,
TASK_RRC_GNB_SIM
,
message_buffer
=
itti_malloc
(
TASK_RRC_
NRUE
,
TASK_RRC_GNB_SIM
,
(
enc_rval
.
encoded
+
7
)
/
8
);
(
enc_rval
.
encoded
+
7
)
/
8
);
memcpy
(
message_buffer
,
buffer
,
(
enc_rval
.
encoded
+
7
)
/
8
);
memcpy
(
message_buffer
,
buffer
,
(
enc_rval
.
encoded
+
7
)
/
8
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_
UE_SIM
,
UE_RRC_DCCH_DATA_IND
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_
NRUE
,
UE_RRC_DCCH_DATA_IND
);
GNB_RRC_DCCH_DATA_IND
(
message_p
).
rbid
=
DCCH
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
rbid
=
DCCH
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
sdu
=
message_buffer
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
sdu
=
message_buffer
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
size
=
(
enc_rval
.
encoded
+
7
)
/
8
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
size
=
(
enc_rval
.
encoded
+
7
)
/
8
;
...
...
openair3/NAS/NR_UE/nr_nas_msg_sim.h
View file @
d5696baf
...
@@ -49,32 +49,13 @@
...
@@ -49,32 +49,13 @@
#define REGISTRATION_REQUEST 0b01000001
/* 65 = 0x41 */
#define REGISTRATION_REQUEST 0b01000001
/* 65 = 0x41 */
#define REGISTRATION_ACCEPT 0b01000010
/* 66 = 0x42 */
#define REGISTRATION_ACCEPT 0b01000010
/* 66 = 0x42 */
#define REGISTRATION_COMPLETE 0b01000011
/* 67 = 0x43 */
#define REGISTRATION_COMPLETE 0b01000011
/* 67 = 0x43 */
#define REGISTRATION_REJECT 0b01000100
/* 68 = 0x44 */
#define DEREGISTRATION_REQUEST_UE_ORIGINATING 0b01000101
/* 69 = 0x45 */
#define DEREGISTRATION_ACCEPT_UE_ORIGINATING 0b01000110
/* 70 = 0x46 */
#define DEREGISTRATION_REQUEST_UE_TERMINATED 0b01000111
/* 71 = 0x47 */
#define DEREGISTRATION_ACCEPT_UE_TERMINATED 0b01001000
/* 72 = 0x48 */
#define FIVEGMM_SERVICE_REQUEST 0b01001100
/* 76 = 0x4c */
#define FIVEGMM_SERVICE_REJECT 0b01001101
/* 77 = 0x4d */
#define FIVEGMM_SERVICE_ACCEPT 0b01001110
/* 78 = 0x4e */
#define CONFIGURATION_UPDATE_COMMAND 0b01010100
/* 84 = 0x54 */
#define CONFIGURATION_UPDATE_COMPLETE 0b01010101
/* 85 = 0x55 */
#define FGS_AUTHENTICATION_REQUEST 0b01010110
/* 86 = 0x56 */
#define FGS_AUTHENTICATION_REQUEST 0b01010110
/* 86 = 0x56 */
#define FGS_AUTHENTICATION_RESPONSE 0b01010111
/* 87 = 0x57 */
#define FGS_AUTHENTICATION_RESPONSE 0b01010111
/* 87 = 0x57 */
#define AUTHENTICATION_REJECT 0b01011000
/* 88 = 0x58 */
#define AUTHENTICATION_FAILURE 0b01011001
/* 89 = 0x59 */
#define AUTHENTICATION_RESULT 0b01011010
/* 90 = 0x5a */
#define FGS_IDENTITY_REQUEST 0b01011011
/* 91 = 0x5b */
#define FGS_IDENTITY_REQUEST 0b01011011
/* 91 = 0x5b */
#define FGS_IDENTITY_RESPONSE 0b01011100
/* 92 = 0x5c */
#define FGS_IDENTITY_RESPONSE 0b01011100
/* 92 = 0x5c */
#define FGS_SECURITY_MODE_COMMAND 0b01011101
/* 93 = 0x5d */
#define FGS_SECURITY_MODE_COMMAND 0b01011101
/* 93 = 0x5d */
#define FGS_SECURITY_MODE_COMPLETE 0b01011110
/* 94 = 0x5e */
#define FGS_SECURITY_MODE_COMPLETE 0b01011110
/* 94 = 0x5e */
#define FIVEGMM_SECURITY_MODE_REJECT 0b01011111
/* 95 = 0x5f */
#define FIVEGMM_STATUS 0b01100100
/* 100 = 0x64 */
#define NOTIFICATION 0b01100101
/* 101 = 0x65 */
#define NOTIFICATION_RESPONSE 0b01100110
/* 102 = 0x66 */
#define FGS_UPLINK_NAS_TRANSPORT 0b01100111
/* 103= 0x67 */
#define FGS_UPLINK_NAS_TRANSPORT 0b01100111
/* 103= 0x67 */
#define DL_NAS_TRANSPORT 0b01101000
/* 104 = 0x68 */
// message type for 5GS session management
// message type for 5GS session management
#define FGS_PDU_SESSION_ESTABLISHMENT_REQ 0b11000001
/* 193= 0xc1 */
#define FGS_PDU_SESSION_ESTABLISHMENT_REQ 0b11000001
/* 193= 0xc1 */
...
...
openair3/NGAP/ngap_gNB_nas_procedures.c
View file @
d5696baf
...
@@ -1417,22 +1417,6 @@ int ngap_gNB_pdusession_release_resp(instance_t instance,
...
@@ -1417,22 +1417,6 @@ int ngap_gNB_pdusession_release_resp(instance_t instance,
ie
->
value
.
choice
.
RAN_UE_NGAP_ID
=
pdusession_release_resp_p
->
gNB_ue_ngap_id
;
ie
->
value
.
choice
.
RAN_UE_NGAP_ID
=
pdusession_release_resp_p
->
gNB_ue_ngap_id
;
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
/* optional */
if
(
pdusession_release_resp_p
->
nb_of_pdusessions_released
>
0
)
{
ie
=
(
NGAP_PDUSessionResourceReleaseResponseIEs_t
*
)
calloc
(
1
,
sizeof
(
NGAP_PDUSessionResourceReleaseResponseIEs_t
));
ie
->
id
=
NGAP_ProtocolIE_ID_id_PDUSessionResourceReleasedListRelRes
;
ie
->
criticality
=
NGAP_Criticality_ignore
;
ie
->
value
.
present
=
NGAP_PDUSessionResourceReleaseResponseIEs__value_PR_AMF_UE_NGAP_ID
;
asn_uint642INTEGER
(
&
ie
->
value
.
choice
.
AMF_UE_NGAP_ID
,
ue_context_p
->
amf_ue_ngap_id
);
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
/* mandatory */
ie
=
(
NGAP_PDUSessionResourceReleaseResponseIEs_t
*
)
calloc
(
1
,
sizeof
(
NGAP_PDUSessionResourceReleaseResponseIEs_t
));
ie
->
id
=
NGAP_ProtocolIE_ID_id_RAN_UE_NGAP_ID
;
ie
->
criticality
=
NGAP_Criticality_ignore
;
ie
->
value
.
present
=
NGAP_PDUSessionResourceReleaseResponseIEs__value_PR_RAN_UE_NGAP_ID
;
ie
->
value
.
choice
.
RAN_UE_NGAP_ID
=
pdusession_release_resp_p
->
gNB_ue_ngap_id
;
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
/* optional */
/* optional */
if
(
pdusession_release_resp_p
->
nb_of_pdusessions_released
>
0
)
{
if
(
pdusession_release_resp_p
->
nb_of_pdusessions_released
>
0
)
{
ie
=
(
NGAP_PDUSessionResourceReleaseResponseIEs_t
*
)
calloc
(
1
,
sizeof
(
NGAP_PDUSessionResourceReleaseResponseIEs_t
));
ie
=
(
NGAP_PDUSessionResourceReleaseResponseIEs_t
*
)
calloc
(
1
,
sizeof
(
NGAP_PDUSessionResourceReleaseResponseIEs_t
));
...
@@ -1469,15 +1453,6 @@ int ngap_gNB_pdusession_release_resp(instance_t instance,
...
@@ -1469,15 +1453,6 @@ int ngap_gNB_pdusession_release_resp(instance_t instance,
ASN_SEQUENCE_ADD
(
&
ie
->
value
.
choice
.
PDUSessionResourceReleasedListRelRes
.
list
,
item
);
ASN_SEQUENCE_ADD
(
&
ie
->
value
.
choice
.
PDUSessionResourceReleasedListRelRes
.
list
,
item
);
}
}
for
(
i
=
0
;
i
<
pdusession_release_resp_p
->
nb_of_pdusessions_released
;
i
++
)
{
NGAP_PDUSessionResourceReleasedItemRelRes_t
*
item
;
item
=
(
NGAP_PDUSessionResourceReleasedItemRelRes_t
*
)
calloc
(
1
,
sizeof
(
NGAP_PDUSessionResourceReleasedItemRelRes_t
));
item
->
pDUSessionID
=
pdusession_release_resp_p
->
pdusession_release
[
i
].
pdusession_id
;
NGAP_DEBUG
(
"pdusession_release_resp: pdusession ID %ld
\n
"
,
item
->
pDUSessionID
);
ASN_SEQUENCE_ADD
(
&
ie
->
value
.
choice
.
PDUSessionResourceReleasedListRelRes
.
list
,
item
);
}
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
}
}
...
...
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