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
7772e5c3
Commit
7772e5c3
authored
Feb 01, 2021
by
yoshio.inoue
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'fjt_dev/develop_SA_L3' into NR_SA_itti_sim_wk48
parents
6bd2aab1
c4922061
Changes
22
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
409 additions
and
118 deletions
+409
-118
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+0
-1
openair2/RRC/NR/nr_ngap_gNB.c
openair2/RRC/NR/nr_ngap_gNB.c
+0
-57
openair2/RRC/NR/rrc_gNB.c
openair2/RRC/NR/rrc_gNB.c
+4
-0
openair2/RRC/NR/rrc_gNB_NGAP.c
openair2/RRC/NR/rrc_gNB_NGAP.c
+24
-14
openair3/NAS/COMMON/EMM/MSG/FGSAuthenticationResponse.c
openair3/NAS/COMMON/EMM/MSG/FGSAuthenticationResponse.c
+21
-0
openair3/NAS/COMMON/EMM/MSG/FGSAuthenticationResponse.h
openair3/NAS/COMMON/EMM/MSG/FGSAuthenticationResponse.h
+21
-0
openair3/NAS/COMMON/EMM/MSG/FGSIdentityResponse.c
openair3/NAS/COMMON/EMM/MSG/FGSIdentityResponse.c
+21
-0
openair3/NAS/COMMON/EMM/MSG/FGSIdentityResponse.h
openair3/NAS/COMMON/EMM/MSG/FGSIdentityResponse.h
+21
-0
openair3/NAS/COMMON/EMM/MSG/FGSNASSecurityModeComplete.c
openair3/NAS/COMMON/EMM/MSG/FGSNASSecurityModeComplete.c
+21
-0
openair3/NAS/COMMON/EMM/MSG/FGSNASSecurityModeComplete.h
openair3/NAS/COMMON/EMM/MSG/FGSNASSecurityModeComplete.h
+21
-0
openair3/NAS/COMMON/EMM/MSG/FGSUplinkNasTransport.c
openair3/NAS/COMMON/EMM/MSG/FGSUplinkNasTransport.c
+21
-0
openair3/NAS/COMMON/EMM/MSG/FGSUplinkNasTransport.h
openair3/NAS/COMMON/EMM/MSG/FGSUplinkNasTransport.h
+21
-0
openair3/NAS/COMMON/EMM/MSG/RegistrationAccept.c
openair3/NAS/COMMON/EMM/MSG/RegistrationAccept.c
+21
-0
openair3/NAS/COMMON/EMM/MSG/RegistrationAccept.h
openair3/NAS/COMMON/EMM/MSG/RegistrationAccept.h
+21
-0
openair3/NAS/COMMON/EMM/MSG/RegistrationComplete.h
openair3/NAS/COMMON/EMM/MSG/RegistrationComplete.h
+21
-0
openair3/NAS/COMMON/ESM/MSG/PduSessionEstablishRequest.c
openair3/NAS/COMMON/ESM/MSG/PduSessionEstablishRequest.c
+21
-0
openair3/NAS/COMMON/ESM/MSG/PduSessionEstablishRequest.h
openair3/NAS/COMMON/ESM/MSG/PduSessionEstablishRequest.h
+21
-0
openair3/NAS/COMMON/IES/FGCNasMessageContainer.c
openair3/NAS/COMMON/IES/FGCNasMessageContainer.c
+21
-0
openair3/NAS/COMMON/IES/FGCNasMessageContainer.h
openair3/NAS/COMMON/IES/FGCNasMessageContainer.h
+21
-0
openair3/NAS/COMMON/IES/FGSRegistrationResult.c
openair3/NAS/COMMON/IES/FGSRegistrationResult.c
+21
-0
openair3/NAS/COMMON/IES/FGSRegistrationResult.h
openair3/NAS/COMMON/IES/FGSRegistrationResult.h
+21
-0
openair3/NGAP/ngap_gNB.c
openair3/NGAP/ngap_gNB.c
+24
-46
No files found.
cmake_targets/CMakeLists.txt
View file @
7772e5c3
...
...
@@ -485,7 +485,6 @@ add_custom_target (
add_library
(
NR_RRC_LIB
${
nr_rrc_h
}
${
nr_rrc_source
}
${
OPENAIR2_DIR
}
/RRC/NR/MESSAGES/asn1_msg.c
${
OPENAIR2_DIR
}
/RRC/NR/nr_ngap_gNB.c
)
add_dependencies
(
NR_RRC_LIB nr_rrc_flag
)
include_directories
(
"
${
NR_RRC_FULL_DIR
}
"
)
...
...
openair2/RRC/NR/nr_ngap_gNB.c
deleted
100644 → 0
View file @
6bd2aab1
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Author and copyright: Laurent Thomas, open-cells.com
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#include <openair2/RRC/LTE/MESSAGES/asn1_msg.h>
#include <openair2/RRC/NR/nr_rrc_proto.h>
void
rrc_gNB_process_NGAP_DOWNLINK_NAS
(
void
)
{
do_DLInformationTransfer
(
0
,
NULL
,
0
,
0
,
NULL
);
// send it as DL data
/*
rrc_data_req (
&ctxt,
srb_id,
(*rrc_eNB_mui)++,
SDU_CONFIRM_NO,
length,
buffer,
PDCP_TRANSMISSION_MODE_CONTROL);
*/
}
void
rrc_gNB_send_NGAP_NAS_FIRST_REQ
(
void
)
{
// We are noCore only now
// create message that should come from 5GC
// send it dow
rrc_gNB_process_NGAP_DOWNLINK_NAS
();
}
void
nr_rrc_rx_tx
(
void
)
{
// check timers
// check if UEs are lost, to remove them from upper layers
//
}
openair2/RRC/NR/rrc_gNB.c
100644 → 100755
View file @
7772e5c3
...
...
@@ -946,6 +946,7 @@ rrc_gNB_process_RRCReconfigurationComplete(
// rrc_mac_config_req_eNB
}
else
{
// remove LCHAN from MAC/PHY
if
(
ue_context_pP
->
ue_context
.
DRB_active
[
drb_id
]
==
1
)
{
/* TODO : It may be needed if gNB goes into full stack working. */
// DRB has just been removed so remove RLC + PDCP for DRB
/* rrc_pdcp_config_req (ctxt_pP->module_id, frameP, 1, CONFIG_ACTION_REMOVE,
(ue_mod_idP * NB_RB_MAX) + DRB2LCHAN[i],UNDEF_SECURITY_MODE);
...
...
@@ -1045,6 +1046,7 @@ rrc_gNB_generate_RRCReestablishment(
PROTOCOL_NR_RRC_CTXT_UE_ARGS
(
ctxt_pP
),
ue_context
->
Srb0
.
Tx_buffer
.
payload_size
);
#if(0)
/* TODO : It may be needed if gNB goes into full stack working. */
UE_id
=
find_nr_UE_id
(
module_id
,
rnti
);
if
(
UE_id
!=
-
1
)
{
/* Activate reject timer, if RRCComplete not received after 10 frames, reject UE */
...
...
@@ -1554,6 +1556,7 @@ int nr_rrc_gNB_decode_ccch(protocol_ctxt_t *const ctxt_pP,
break
;
}
#if(0)
/* TODO : It may be needed if gNB goes into full stack working. */
int
UE_id
=
find_nr_UE_id
(
ctxt_pP
->
module_id
,
c_rnti
);
if
(
UE_id
==
-
1
)
{
...
...
@@ -2202,6 +2205,7 @@ rrc_gNB_decode_dcch(
}
#if(0)
/* TODO : It may be needed if gNB goes into full stack working. */
//clear
int
UE_id
=
find_nr_UE_id
(
ctxt_pP
->
module_id
,
ctxt_pP
->
rnti
);
...
...
openair2/RRC/NR/rrc_gNB_NGAP.c
View file @
7772e5c3
...
...
@@ -500,13 +500,13 @@ rrc_gNB_process_NGAP_INITIAL_CONTEXT_SETUP_REQ(
gNB_ue_ngap_id
=
NGAP_INITIAL_CONTEXT_SETUP_REQ
(
msg_p
).
gNB_ue_ngap_id
;
ue_context_p
=
rrc_gNB_get_ue_context_from_ngap_ids
(
instance
,
ue_initial_id
,
gNB_ue_ngap_id
);
LOG_I
(
NR_RRC
,
"[gNB %d] Received %s: ue_initial_id %d, gNB_ue_ngap_id %
d
\n
"
,
LOG_I
(
NR_RRC
,
"[gNB %d] Received %s: ue_initial_id %d, gNB_ue_ngap_id %
u
\n
"
,
instance
,
msg_name
,
ue_initial_id
,
gNB_ue_ngap_id
);
if
(
ue_context_p
==
NULL
)
{
/* Can not associate this message to an UE index, send a failure to NGAP and discard it! */
MessageDef
*
msg_fail_p
=
NULL
;
LOG_W
(
NR_RRC
,
"[gNB %d] In NGAP_INITIAL_CONTEXT_SETUP_REQ: unknown UE from NGAP ids (%d, %
d
)
\n
"
,
instance
,
ue_initial_id
,
gNB_ue_ngap_id
);
LOG_W
(
NR_RRC
,
"[gNB %d] In NGAP_INITIAL_CONTEXT_SETUP_REQ: unknown UE from NGAP ids (%d, %
u
)
\n
"
,
instance
,
ue_initial_id
,
gNB_ue_ngap_id
);
msg_fail_p
=
itti_alloc_new_message
(
TASK_RRC_GNB
,
NGAP_INITIAL_CONTEXT_SETUP_FAIL
);
NGAP_INITIAL_CONTEXT_SETUP_FAIL
(
msg_fail_p
).
gNB_ue_ngap_id
=
gNB_ue_ngap_id
;
// TODO add failure cause when defined!
...
...
@@ -722,7 +722,7 @@ rrc_gNB_process_NGAP_DOWNLINK_NAS(
ue_initial_id
=
NGAP_DOWNLINK_NAS
(
msg_p
).
ue_initial_id
;
gNB_ue_ngap_id
=
NGAP_DOWNLINK_NAS
(
msg_p
).
gNB_ue_ngap_id
;
ue_context_p
=
rrc_gNB_get_ue_context_from_ngap_ids
(
instance
,
ue_initial_id
,
gNB_ue_ngap_id
);
LOG_I
(
NR_RRC
,
"[gNB %d] Received %s: ue_initial_id %d, gNB_ue_ngap_id %
d
\n
"
,
LOG_I
(
NR_RRC
,
"[gNB %d] Received %s: ue_initial_id %d, gNB_ue_ngap_id %
u
\n
"
,
instance
,
msg_name
,
ue_initial_id
,
...
...
@@ -740,7 +740,7 @@ rrc_gNB_process_NGAP_DOWNLINK_NAS(
gNB_ue_ngap_id
);
/* Can not associate this message to an UE index, send a failure to NGAP and discard it! */
MessageDef
*
msg_fail_p
;
LOG_W
(
NR_RRC
,
"[gNB %d] In NGAP_DOWNLINK_NAS: unknown UE from NGAP ids (%d, %
d
)
\n
"
,
instance
,
ue_initial_id
,
gNB_ue_ngap_id
);
LOG_W
(
NR_RRC
,
"[gNB %d] In NGAP_DOWNLINK_NAS: unknown UE from NGAP ids (%d, %
u
)
\n
"
,
instance
,
ue_initial_id
,
gNB_ue_ngap_id
);
msg_fail_p
=
itti_alloc_new_message
(
TASK_RRC_GNB
,
NGAP_NAS_NON_DELIVERY_IND
);
NGAP_NAS_NON_DELIVERY_IND
(
msg_fail_p
).
gNB_ue_ngap_id
=
gNB_ue_ngap_id
;
NGAP_NAS_NON_DELIVERY_IND
(
msg_fail_p
).
nas_pdu
.
length
=
NGAP_DOWNLINK_NAS
(
msg_p
).
nas_pdu
.
length
;
...
...
@@ -788,9 +788,9 @@ rrc_gNB_process_NGAP_DOWNLINK_NAS(
#ifdef ITTI_SIM
MessageDef
*
message_p
;
uint8_t
*
message_buffer
;
message_buffer
=
itti_malloc
(
TASK_RRC_GNB
_SIM
,
TASK_RRC_UE_SIM
,
length
);
message_buffer
=
itti_malloc
(
TASK_RRC_GNB
,
TASK_RRC_UE_SIM
,
length
);
memcpy
(
message_buffer
,
buffer
,
length
);
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
).
sdu
=
message_buffer
;
GNB_RRC_DCCH_DATA_IND
(
message_p
).
size
=
length
;
...
...
@@ -948,12 +948,12 @@ rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ(
ue_initial_id
=
NGAP_PDUSESSION_SETUP_REQ
(
msg_p
).
ue_initial_id
;
gNB_ue_ngap_id
=
NGAP_PDUSESSION_SETUP_REQ
(
msg_p
).
gNB_ue_ngap_id
;
ue_context_p
=
rrc_gNB_get_ue_context_from_ngap_ids
(
instance
,
ue_initial_id
,
gNB_ue_ngap_id
);
LOG_I
(
NR_RRC
,
"[gNB %d] Received %s: ue_initial_id %d, gNB_ue_ngap_id %
d
\n
"
,
LOG_I
(
NR_RRC
,
"[gNB %d] Received %s: ue_initial_id %d, gNB_ue_ngap_id %
u
\n
"
,
instance
,
msg_name
,
ue_initial_id
,
gNB_ue_ngap_id
);
if
(
ue_context_p
==
NULL
)
{
MessageDef
*
msg_fail_p
=
NULL
;
LOG_W
(
NR_RRC
,
"[gNB %d] In NGAP_PDUSESSION_SETUP_REQ: unknown UE from NGAP ids (%d, %
d
)
\n
"
,
instance
,
ue_initial_id
,
gNB_ue_ngap_id
);
LOG_W
(
NR_RRC
,
"[gNB %d] In NGAP_PDUSESSION_SETUP_REQ: unknown UE from NGAP ids (%d, %
u
)
\n
"
,
instance
,
ue_initial_id
,
gNB_ue_ngap_id
);
msg_fail_p
=
itti_alloc_new_message
(
TASK_RRC_GNB
,
NGAP_PDUSESSION_SETUP_REQUEST_FAIL
);
NGAP_PDUSESSION_SETUP_REQ
(
msg_fail_p
).
gNB_ue_ngap_id
=
gNB_ue_ngap_id
;
// TODO add failure cause when defined!
...
...
@@ -1066,7 +1066,7 @@ rrc_gNB_process_NGAP_UE_CONTEXT_RELEASE_REQ (
if
(
ue_context_p
==
NULL
)
{
/* Can not associate this message to an UE index, send a failure to ngAP and discard it! */
MessageDef
*
msg_fail_p
;
LOG_W
(
RRC
,
"[gNB %d] In NGAP_UE_CONTEXT_RELEASE_REQ: unknown UE from gNB_ue_ngap_id (%
d
)
\n
"
,
LOG_W
(
RRC
,
"[gNB %d] In NGAP_UE_CONTEXT_RELEASE_REQ: unknown UE from gNB_ue_ngap_id (%
u
)
\n
"
,
instance
,
gNB_ue_ngap_id
);
msg_fail_p
=
itti_alloc_new_message
(
TASK_RRC_GNB
,
NGAP_UE_CONTEXT_RELEASE_RESP
);
/* TODO change message ID. */
...
...
@@ -1108,7 +1108,7 @@ rrc_gNB_process_NGAP_UE_CONTEXT_RELEASE_COMMAND(
if
(
ue_context_p
==
NULL
)
{
/* Can not associate this message to an UE index */
MessageDef
*
msg_complete_p
=
NULL
;
LOG_W
(
RRC
,
"[gNB %d] In NGAP_UE_CONTEXT_RELEASE_COMMAND: unknown UE from gNB_ue_ngap_id (%
d
)
\n
"
,
LOG_W
(
RRC
,
"[gNB %d] In NGAP_UE_CONTEXT_RELEASE_COMMAND: unknown UE from gNB_ue_ngap_id (%
u
)
\n
"
,
instance
,
gNB_ue_ngap_id
);
MSC_LOG_EVENT
(
MSC_RRC_GNB
,
"0 NGAP_UE_CONTEXT_RELEASE_COMPLETE gNB_ue_ngap_id 0x%06"
PRIX32
" context not found"
,
...
...
@@ -1259,7 +1259,7 @@ rrc_gNB_send_NGAP_PDUSESSION_RELEASE_RESPONSE(
memcpy
(
&
(
NGAP_PDUSESSION_RELEASE_RESPONSE
(
msg_p
).
pdusessions_failed
[
0
]),
&
ue_context_pP
->
ue_context
.
pdusessions_release_failed
[
0
],
sizeof
(
pdusession_failed_t
)
*
ue_context_pP
->
ue_context
.
nb_release_of_pdusessions
);
ue_context_pP
->
ue_context
.
setup_pdu_sessions
-=
pdu_sessions_released
;
LOG_I
(
NR_RRC
,
"NGAP PDUSESSION RELEASE RESPONSE: GNB_UE_NGAP_ID %
d
release_pdu_sessions %d setup_pdu_sessions %d
\n
"
,
LOG_I
(
NR_RRC
,
"NGAP PDUSESSION RELEASE RESPONSE: GNB_UE_NGAP_ID %
u
release_pdu_sessions %d setup_pdu_sessions %d
\n
"
,
NGAP_PDUSESSION_RELEASE_RESPONSE
(
msg_p
).
gNB_ue_ngap_id
,
pdu_sessions_released
,
ue_context_pP
->
ue_context
.
setup_pdu_sessions
);
itti_send_msg_to_task
(
TASK_NGAP
,
ctxt_pP
->
instance
,
msg_p
);
...
...
@@ -1302,12 +1302,12 @@ rrc_gNB_process_NGAP_PDUSESSION_RELEASE_COMMAND(
return
-
1
;
}
ue_context_p
=
rrc_gNB_get_ue_context_from_ngap_ids
(
instance
,
UE_INITIAL_ID_INVALID
,
gNB_ue_ngap_id
);
LOG_I
(
NR_RRC
,
"[gNB %d] Received %s: gNB_ue_ngap_id %
d
\n
"
,
instance
,
msg_name
,
gNB_ue_ngap_id
);
LOG_I
(
NR_RRC
,
"[gNB %d] Received %s: gNB_ue_ngap_id %
u
\n
"
,
instance
,
msg_name
,
gNB_ue_ngap_id
);
if
(
ue_context_p
!=
NULL
)
{
PROTOCOL_CTXT_SET_BY_INSTANCE
(
&
ctxt
,
instance
,
GNB_FLAG_YES
,
ue_context_p
->
ue_context
.
rnti
,
0
,
0
);
xid
=
rrc_gNB_get_next_transaction_identifier
(
ctxt
.
module_id
);
LOG_I
(
NR_RRC
,
"PDU Session Release Command: AMF_UE_NGAP_ID %lu GNB_UE_NGAP_ID %
d
release_pdusessions %d
\n
"
,
LOG_I
(
NR_RRC
,
"PDU Session Release Command: AMF_UE_NGAP_ID %lu GNB_UE_NGAP_ID %
u
release_pdusessions %d
\n
"
,
NGAP_PDUSESSION_RELEASE_COMMAND
(
msg_p
).
amf_ue_ngap_id
&
0x000000FFFFFFFFFF
,
gNB_ue_ngap_id
,
nb_pdusessions_torelease
);
for
(
pdusession
=
0
;
pdusession
<
nb_pdusessions_torelease
;
pdusession
++
)
{
...
...
@@ -1385,10 +1385,20 @@ rrc_gNB_process_NGAP_PDUSESSION_RELEASE_COMMAND(
LOG_I
(
NR_RRC
,
"Send PDU Session Release Response
\n
"
);
}
}
else
{
LOG_E
(
NR_RRC
,
"PDU Session Release Command: AMF_UE_NGAP_ID %lu GNB_UE_NGAP_ID %
d
Error ue_context_p NULL
\n
"
,
LOG_E
(
NR_RRC
,
"PDU Session Release Command: AMF_UE_NGAP_ID %lu GNB_UE_NGAP_ID %
u
Error ue_context_p NULL
\n
"
,
NGAP_PDUSESSION_RELEASE_COMMAND
(
msg_p
).
amf_ue_ngap_id
&
0x000000FFFFFFFFFF
,
NGAP_PDUSESSION_RELEASE_COMMAND
(
msg_p
).
gNB_ue_ngap_id
);
return
-
1
;
}
return
0
;
}
void
nr_rrc_rx_tx
(
void
)
{
// check timers
// check if UEs are lost, to remove them from upper layers
//
}
openair3/NAS/COMMON/EMM/MSG/FGSAuthenticationResponse.c
View file @
7772e5c3
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file FGSAuthenticationResponse.c
\brief authentication response procedures
...
...
openair3/NAS/COMMON/EMM/MSG/FGSAuthenticationResponse.h
View file @
7772e5c3
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file FGSAuthenticationResponse.h
\brief authentication response procedures
...
...
openair3/NAS/COMMON/EMM/MSG/FGSIdentityResponse.c
View file @
7772e5c3
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file FGSIdentityResponse.c
\brief identity response procedures for gNB
...
...
openair3/NAS/COMMON/EMM/MSG/FGSIdentityResponse.h
View file @
7772e5c3
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file FGSIdentityResponse.h
\brief identity response procedures for gNB
...
...
openair3/NAS/COMMON/EMM/MSG/FGSNASSecurityModeComplete.c
View file @
7772e5c3
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file FGSNASSecurityModeComplete.c
\brief security mode complete procedures for gNB
...
...
openair3/NAS/COMMON/EMM/MSG/FGSNASSecurityModeComplete.h
View file @
7772e5c3
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file FGSNASSecurityModeComplete.h
\brief security mode complete procedures for gNB
...
...
openair3/NAS/COMMON/EMM/MSG/FGSUplinkNasTransport.c
View file @
7772e5c3
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file FGSUplinkNasTransport.c
\brief uplink nas transport procedures
...
...
openair3/NAS/COMMON/EMM/MSG/FGSUplinkNasTransport.h
View file @
7772e5c3
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file FGSUplinkNasTransport.h
\brief uplink nas transport procedures
...
...
openair3/NAS/COMMON/EMM/MSG/RegistrationAccept.c
View file @
7772e5c3
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file RegistrationAccept.c
\brief 5GS registration accept procedures
...
...
openair3/NAS/COMMON/EMM/MSG/RegistrationAccept.h
View file @
7772e5c3
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file RegistrationAccept.h
\brief 5GS registration accept procedures
...
...
openair3/NAS/COMMON/EMM/MSG/RegistrationComplete.h
View file @
7772e5c3
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file RegistrationRequest.h
\brief registration request procedures for gNB
...
...
openair3/NAS/COMMON/ESM/MSG/PduSessionEstablishRequest.c
View file @
7772e5c3
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file PduSessionEstablishRequest.c
\brief pdu session establishment request procedures
...
...
openair3/NAS/COMMON/ESM/MSG/PduSessionEstablishRequest.h
View file @
7772e5c3
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file PduSessionEstablishRequest.h
\brief pdu session establishment request procedures
...
...
openair3/NAS/COMMON/IES/FGCNasMessageContainer.c
View file @
7772e5c3
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file FGCNasMessageContainer.c
\brief security mode complete procedures for gNB
...
...
openair3/NAS/COMMON/IES/FGCNasMessageContainer.h
View file @
7772e5c3
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file FGCNasMessageContainer.h
\brief security mode complete procedures for gNB
...
...
openair3/NAS/COMMON/IES/FGSRegistrationResult.c
View file @
7772e5c3
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file FGSRegistrationResult.c
\brief 5GS Registration result for registration request procedures
...
...
openair3/NAS/COMMON/IES/FGSRegistrationResult.h
View file @
7772e5c3
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file FGSRegistrationResult.h
\brief 5GS Registration result for registration request procedures
...
...
openair3/NGAP/ngap_gNB.c
View file @
7772e5c3
...
...
@@ -98,7 +98,7 @@ static void ngap_gNB_register_amf(ngap_gNB_instance_t *instance_p,
MessageDef
*
message_p
=
NULL
;
sctp_new_association_req_t
*
sctp_new_association_req_p
=
NULL
;
ngap_gNB_amf_data_t
*
ngap_amf_data_p
=
NULL
;
struct
ngap_gNB_amf_data_s
*
amf
=
NULL
;
DevAssert
(
instance_p
!=
NULL
);
DevAssert
(
amf_ip_address
!=
NULL
);
message_p
=
itti_alloc_new_message
(
TASK_NGAP
,
SCTP_NEW_ASSOCIATION_REQ
);
...
...
@@ -114,55 +114,33 @@ static void ngap_gNB_register_amf(ngap_gNB_instance_t *instance_p,
local_ip_addr
,
sizeof
(
*
local_ip_addr
));
NGAP_INFO
(
"[gNB %d] check the amf registration state
\n
"
,
instance_p
->
instance
);
amf
=
NULL
;
if
(
amf
==
NULL
)
{
/* Create new AMF descriptor */
ngap_amf_data_p
=
calloc
(
1
,
sizeof
(
*
ngap_amf_data_p
));
DevAssert
(
ngap_amf_data_p
!=
NULL
);
ngap_amf_data_p
->
cnx_id
=
ngap_gNB_fetch_add_global_cnx_id
();
sctp_new_association_req_p
->
ulp_cnx_id
=
ngap_amf_data_p
->
cnx_id
;
ngap_amf_data_p
->
assoc_id
=
-
1
;
ngap_amf_data_p
->
broadcast_plmn_num
=
broadcast_plmn_num
;
memcpy
(
&
ngap_amf_data_p
->
amf_s1_ip
,
amf_ip_address
,
sizeof
(
*
amf_ip_address
));
for
(
int
i
=
0
;
i
<
broadcast_plmn_num
;
++
i
)
ngap_amf_data_p
->
broadcast_plmn_index
[
i
]
=
broadcast_plmn_index
[
i
];
ngap_amf_data_p
->
ngap_gNB_instance
=
instance_p
;
STAILQ_INIT
(
&
ngap_amf_data_p
->
served_guami
);
/* Insert the new descriptor in list of known AMF
* but not yet associated.
*/
RB_INSERT
(
ngap_amf_map
,
&
instance_p
->
ngap_amf_head
,
ngap_amf_data_p
);
ngap_amf_data_p
->
state
=
NGAP_GNB_STATE_WAITING
;
instance_p
->
ngap_amf_nb
++
;
instance_p
->
ngap_amf_pending_nb
++
;
}
else
if
(
amf
->
state
==
NGAP_GNB_STATE_WAITING
)
{
instance_p
->
ngap_amf_pending_nb
++
;
sctp_new_association_req_p
->
ulp_cnx_id
=
amf
->
cnx_id
;
NGAP_INFO
(
"[gNB %d] AMF already registered, retrive the data (state %d, cnx %d, amf_nb %d, amf_pending_nb %d)
\n
"
,
instance_p
->
instance
,
amf
->
state
,
amf
->
cnx_id
,
instance_p
->
ngap_amf_nb
,
instance_p
->
ngap_amf_pending_nb
);
/*ngap_amf_data_p->cnx_id = amf->cnx_id;
sctp_new_association_req_p->ulp_cnx_id = amf->cnx_id;
ngap_amf_data_p->assoc_id = -1;
ngap_amf_data_p->ngap_gNB_instance = instance_p;
*/
}
else
{
NGAP_WARN
(
"[gNB %d] AMF already registered but not in the waiting state, retrive the data (state %d, cnx %d, amf_nb %d, amf_pending_nb %d)
\n
"
,
instance_p
->
instance
,
amf
->
state
,
amf
->
cnx_id
,
instance_p
->
ngap_amf_nb
,
instance_p
->
ngap_amf_pending_nb
);
}
/* Create new AMF descriptor */
ngap_amf_data_p
=
calloc
(
1
,
sizeof
(
*
ngap_amf_data_p
));
DevAssert
(
ngap_amf_data_p
!=
NULL
);
ngap_amf_data_p
->
cnx_id
=
ngap_gNB_fetch_add_global_cnx_id
();
sctp_new_association_req_p
->
ulp_cnx_id
=
ngap_amf_data_p
->
cnx_id
;
ngap_amf_data_p
->
assoc_id
=
-
1
;
ngap_amf_data_p
->
broadcast_plmn_num
=
broadcast_plmn_num
;
memcpy
(
&
ngap_amf_data_p
->
amf_s1_ip
,
amf_ip_address
,
sizeof
(
*
amf_ip_address
));
for
(
int
i
=
0
;
i
<
broadcast_plmn_num
;
++
i
)
ngap_amf_data_p
->
broadcast_plmn_index
[
i
]
=
broadcast_plmn_index
[
i
];
ngap_amf_data_p
->
ngap_gNB_instance
=
instance_p
;
STAILQ_INIT
(
&
ngap_amf_data_p
->
served_guami
);
/* Insert the new descriptor in list of known AMF
* but not yet associated.
*/
RB_INSERT
(
ngap_amf_map
,
&
instance_p
->
ngap_amf_head
,
ngap_amf_data_p
);
ngap_amf_data_p
->
state
=
NGAP_GNB_STATE_DISCONNECTED
;
instance_p
->
ngap_amf_nb
++
;
instance_p
->
ngap_amf_pending_nb
++
;
itti_send_msg_to_task
(
TASK_SCTP
,
instance_p
->
instance
,
message_p
);
}
void
ngap_gNB_handle_register_gNB
(
instance_t
instance
,
ngap_register_gnb_req_t
*
ngap_register_gNB
)
{
ngap_gNB_instance_t
*
new_instance
;
uint8_t
index
;
...
...
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