Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-SMF
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
Operations
Operations
Metrics
Environments
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-SMF
Commits
40751a58
Commit
40751a58
authored
Jul 21, 2021
by
Tien-Thinh Nguyen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Addressing Cmake warnings
parent
8f2660cf
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
32 additions
and
26 deletions
+32
-26
docs/FEATURE_SET.md
docs/FEATURE_SET.md
+1
-1
src/common/3gpp_29.518.h
src/common/3gpp_29.518.h
+3
-3
src/smf_app/smf_context.cpp
src/smf_app/smf_context.cpp
+11
-12
src/smf_app/smf_msg.hpp
src/smf_app/smf_msg.hpp
+17
-10
No files found.
docs/FEATURE_SET.md
View file @
40751a58
...
@@ -55,6 +55,6 @@ Based on document **3GPP TS 23.501 v16.0.0 (Section 6.2.2)**.
...
@@ -55,6 +55,6 @@ Based on document **3GPP TS 23.501 v16.0.0 (Section 6.2.2)**.
| 12 | Determine SSC mode of a session | :heavy_check_mark: | Only support SSC mode 1 |
| 12 | Determine SSC mode of a session | :heavy_check_mark: | Only support SSC mode 1 |
| 13 | Initiator of AN specific SM information, sent via AMF over N2 to AN | :heavy_check_mark: | |
| 13 | Initiator of AN specific SM information, sent via AMF over N2 to AN | :heavy_check_mark: | |
| 14 | Support for Control Plane CIoT 5GS Optimisation | :x: | |
| 14 | Support for Control Plane CIoT 5GS Optimisation | :x: | |
| 15 | Support of header compression
.
| :x: | |
| 15 | Support of header compression
| :x: | |
| 16 | Act as I-SMF in deployments | :x: | |
| 16 | Act as I-SMF in deployments | :x: | |
| 17 | Provisioning of external parameters | :x: | |
| 17 | Provisioning of external parameters | :x: | |
src/common/3gpp_29.518.h
View file @
40751a58
...
@@ -24,9 +24,9 @@
...
@@ -24,9 +24,9 @@
#include "3gpp_29.571.h"
#include "3gpp_29.571.h"
#include "3gpp_23.003.h"
#include "3gpp_23.003.h"
typedef
struct
ng_ran_target_id_s
{
typedef
struct
ng_ran_target_id_s
{
global_ran_node_id_t
global_ran_node_id
;
global_ran_node_id_t
global_ran_node_id
;
tai_t
tai
;
tai_t
tai
;
}
ng_ran_target_id_t
;
}
ng_ran_target_id_t
;
#endif
#endif
src/smf_app/smf_context.cpp
View file @
40751a58
...
@@ -3036,7 +3036,8 @@ bool smf_context::handle_ho_path_switch_req(
...
@@ -3036,7 +3036,8 @@ bool smf_context::handle_ho_path_switch_req(
std
::
shared_ptr
<
itti_n11_update_sm_context_request
>&
sm_context_request
,
std
::
shared_ptr
<
itti_n11_update_sm_context_request
>&
sm_context_request
,
std
::
shared_ptr
<
itti_n11_update_sm_context_response
>&
sm_context_resp
,
std
::
shared_ptr
<
itti_n11_update_sm_context_response
>&
sm_context_resp
,
std
::
shared_ptr
<
smf_pdu_session
>&
sp
)
{
std
::
shared_ptr
<
smf_pdu_session
>&
sp
)
{
std
::
string
n1_sm_msg
,
n1_sm_msg_hex
;
std
::
string
n1_sm_msg
=
{};
std
::
string
n1_sm_msg_hex
=
{};
// If the PDU session is requested to be switched to a new N3 endpoint
// If the PDU session is requested to be switched to a new N3 endpoint
if
(
sm_context_request
->
req
.
get_to_be_switched
())
{
if
(
sm_context_request
->
req
.
get_to_be_switched
())
{
...
@@ -3056,7 +3057,6 @@ bool smf_context::handle_ho_path_switch_req(
...
@@ -3056,7 +3057,6 @@ bool smf_context::handle_ho_path_switch_req(
http_status_code_e
::
HTTP_STATUS_CODE_403_FORBIDDEN
,
http_status_code_e
::
HTTP_STATUS_CODE_403_FORBIDDEN
,
PDU_SESSION_APPLICATION_ERROR_N2_SM_ERROR
,
PDU_SESSION_APPLICATION_ERROR_N2_SM_ERROR
,
sm_context_request
.
get
()
->
pid
);
sm_context_request
.
get
()
->
pid
);
return
false
;
return
false
;
}
}
...
@@ -3124,7 +3124,8 @@ bool smf_context::handle_ho_preparation_request(
...
@@ -3124,7 +3124,8 @@ bool smf_context::handle_ho_preparation_request(
std
::
shared_ptr
<
itti_n11_update_sm_context_request
>&
sm_context_request
,
std
::
shared_ptr
<
itti_n11_update_sm_context_request
>&
sm_context_request
,
std
::
shared_ptr
<
itti_n11_update_sm_context_response
>&
sm_context_resp
,
std
::
shared_ptr
<
itti_n11_update_sm_context_response
>&
sm_context_resp
,
std
::
shared_ptr
<
smf_pdu_session
>&
sp
)
{
std
::
shared_ptr
<
smf_pdu_session
>&
sp
)
{
std
::
string
n2_sm_info
,
n2_sm_info_hex
;
std
::
string
n2_sm_info
=
{};
std
::
string
n2_sm_info_hex
=
{};
sm_context_resp
.
get
()
->
session_procedure_type
=
sm_context_resp
.
get
()
->
session_procedure_type
=
session_management_procedures_type_e
::
N2_HO_PREPARATION_PHASE_STEP1
;
session_management_procedures_type_e
::
N2_HO_PREPARATION_PHASE_STEP1
;
...
@@ -3145,7 +3146,6 @@ bool smf_context::handle_ho_preparation_request(
...
@@ -3145,7 +3146,6 @@ bool smf_context::handle_ho_preparation_request(
http_status_code_e
::
HTTP_STATUS_CODE_403_FORBIDDEN
,
http_status_code_e
::
HTTP_STATUS_CODE_403_FORBIDDEN
,
PDU_SESSION_APPLICATION_ERROR_N2_SM_ERROR
,
PDU_SESSION_APPLICATION_ERROR_N2_SM_ERROR
,
sm_context_request
.
get
()
->
pid
);
sm_context_request
.
get
()
->
pid
);
return
false
;
return
false
;
}
}
...
@@ -3214,7 +3214,8 @@ bool smf_context::handle_ho_preparation_request_ack(
...
@@ -3214,7 +3214,8 @@ bool smf_context::handle_ho_preparation_request_ack(
std
::
shared_ptr
<
itti_n11_update_sm_context_request
>&
sm_context_request
,
std
::
shared_ptr
<
itti_n11_update_sm_context_request
>&
sm_context_request
,
std
::
shared_ptr
<
itti_n11_update_sm_context_response
>&
sm_context_resp
,
std
::
shared_ptr
<
itti_n11_update_sm_context_response
>&
sm_context_resp
,
std
::
shared_ptr
<
smf_pdu_session
>&
sp
)
{
std
::
shared_ptr
<
smf_pdu_session
>&
sp
)
{
std
::
string
n2_sm_info
,
n2_sm_info_hex
;
std
::
string
n2_sm_info
=
{};
std
::
string
n2_sm_info_hex
=
{};
sm_context_resp
.
get
()
->
session_procedure_type
=
sm_context_resp
.
get
()
->
session_procedure_type
=
session_management_procedures_type_e
::
N2_HO_PREPARATION_PHASE_STEP2
;
session_management_procedures_type_e
::
N2_HO_PREPARATION_PHASE_STEP2
;
...
@@ -3235,7 +3236,6 @@ bool smf_context::handle_ho_preparation_request_ack(
...
@@ -3235,7 +3236,6 @@ bool smf_context::handle_ho_preparation_request_ack(
http_status_code_e
::
HTTP_STATUS_CODE_403_FORBIDDEN
,
http_status_code_e
::
HTTP_STATUS_CODE_403_FORBIDDEN
,
PDU_SESSION_APPLICATION_ERROR_N2_SM_ERROR
,
PDU_SESSION_APPLICATION_ERROR_N2_SM_ERROR
,
sm_context_request
.
get
()
->
pid
);
sm_context_request
.
get
()
->
pid
);
return
false
;
return
false
;
}
}
...
@@ -3277,6 +3277,7 @@ bool smf_context::handle_ho_preparation_request_ack(
...
@@ -3277,6 +3277,7 @@ bool smf_context::handle_ho_preparation_request_ack(
(
decoded_msg
->
qosFlowSetupResponseList
.
list
.
array
[
i
])
(
decoded_msg
->
qosFlowSetupResponseList
.
list
.
array
[
i
])
->
qosFlowIdentifier
);
->
qosFlowIdentifier
);
}
}
return
true
;
}
}
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
...
@@ -3285,7 +3286,8 @@ bool smf_context::handle_ho_preparation_request_fail(
...
@@ -3285,7 +3286,8 @@ bool smf_context::handle_ho_preparation_request_fail(
std
::
shared_ptr
<
itti_n11_update_sm_context_request
>&
sm_context_request
,
std
::
shared_ptr
<
itti_n11_update_sm_context_request
>&
sm_context_request
,
std
::
shared_ptr
<
itti_n11_update_sm_context_response
>&
sm_context_resp
,
std
::
shared_ptr
<
itti_n11_update_sm_context_response
>&
sm_context_resp
,
std
::
shared_ptr
<
smf_pdu_session
>&
sp
)
{
std
::
shared_ptr
<
smf_pdu_session
>&
sp
)
{
std
::
string
n2_sm_info
,
n2_sm_info_hex
;
std
::
string
n2_sm_info
=
{};
std
::
string
n2_sm_info_hex
=
{};
sm_context_resp
.
get
()
->
session_procedure_type
=
sm_context_resp
.
get
()
->
session_procedure_type
=
session_management_procedures_type_e
::
N2_HO_PREPARATION_PHASE_STEP2
;
session_management_procedures_type_e
::
N2_HO_PREPARATION_PHASE_STEP2
;
...
@@ -3307,7 +3309,6 @@ bool smf_context::handle_ho_preparation_request_fail(
...
@@ -3307,7 +3309,6 @@ bool smf_context::handle_ho_preparation_request_fail(
http_status_code_e
::
HTTP_STATUS_CODE_403_FORBIDDEN
,
http_status_code_e
::
HTTP_STATUS_CODE_403_FORBIDDEN
,
PDU_SESSION_APPLICATION_ERROR_N2_SM_ERROR
,
PDU_SESSION_APPLICATION_ERROR_N2_SM_ERROR
,
sm_context_request
.
get
()
->
pid
);
sm_context_request
.
get
()
->
pid
);
return
false
;
return
false
;
}
}
...
@@ -3316,7 +3317,6 @@ bool smf_context::handle_ho_preparation_request_fail(
...
@@ -3316,7 +3317,6 @@ bool smf_context::handle_ho_preparation_request_fail(
sp
.
get
()
->
set_ho_state
(
ho_state_e
::
HO_STATE_NONE
);
sp
.
get
()
->
set_ho_state
(
ho_state_e
::
HO_STATE_NONE
);
// Release resource ??
// Release resource ??
// Create Handover Preparation Unsuccessful Transfer IE
// Create Handover Preparation Unsuccessful Transfer IE
smf_n2
::
get_instance
().
create_n2_handover_preparation_unsuccessful_transfer
(
smf_n2
::
get_instance
().
create_n2_handover_preparation_unsuccessful_transfer
(
sm_context_resp
->
res
,
n2_sm_info_type_e
::
HANDOVER_RES_ALLOC_FAIL
,
sm_context_resp
->
res
,
n2_sm_info_type_e
::
HANDOVER_RES_ALLOC_FAIL
,
n2_sm_info
);
n2_sm_info
);
...
@@ -3351,7 +3351,8 @@ bool smf_context::handle_ho_execution(
...
@@ -3351,7 +3351,8 @@ bool smf_context::handle_ho_execution(
std
::
shared_ptr
<
itti_n11_update_sm_context_request
>&
sm_context_request
,
std
::
shared_ptr
<
itti_n11_update_sm_context_request
>&
sm_context_request
,
std
::
shared_ptr
<
itti_n11_update_sm_context_response
>&
sm_context_resp
,
std
::
shared_ptr
<
itti_n11_update_sm_context_response
>&
sm_context_resp
,
std
::
shared_ptr
<
smf_pdu_session
>&
sp
)
{
std
::
shared_ptr
<
smf_pdu_session
>&
sp
)
{
std
::
string
n2_sm_info
,
n2_sm_info_hex
;
std
::
string
n2_sm_info
=
{};
std
::
string
n2_sm_info_hex
=
{};
sm_context_resp
.
get
()
->
session_procedure_type
=
sm_context_resp
.
get
()
->
session_procedure_type
=
session_management_procedures_type_e
::
N2_HO_EXECUTION_PHASE
;
session_management_procedures_type_e
::
N2_HO_EXECUTION_PHASE
;
...
@@ -3393,8 +3394,6 @@ bool smf_context::handle_ho_cancellation(
...
@@ -3393,8 +3394,6 @@ bool smf_context::handle_ho_cancellation(
std
::
shared_ptr
<
itti_n11_update_sm_context_request
>&
sm_context_request
,
std
::
shared_ptr
<
itti_n11_update_sm_context_request
>&
sm_context_request
,
std
::
shared_ptr
<
itti_n11_update_sm_context_response
>&
sm_context_resp
,
std
::
shared_ptr
<
itti_n11_update_sm_context_response
>&
sm_context_resp
,
std
::
shared_ptr
<
smf_pdu_session
>&
sp
)
{
std
::
shared_ptr
<
smf_pdu_session
>&
sp
)
{
std
::
string
n2_sm_info
,
n2_sm_info_hex
;
sm_context_resp
.
get
()
->
session_procedure_type
=
sm_context_resp
.
get
()
->
session_procedure_type
=
session_management_procedures_type_e
::
N2_HO_CANCELLATION_PHASE
;
session_management_procedures_type_e
::
N2_HO_CANCELLATION_PHASE
;
...
...
src/smf_app/smf_msg.hpp
View file @
40751a58
...
@@ -336,16 +336,23 @@ class pdu_session_update_sm_context_request
...
@@ -336,16 +336,23 @@ class pdu_session_update_sm_context_request
public:
public:
pdu_session_update_sm_context_request
()
pdu_session_update_sm_context_request
()
:
pdu_session_sm_context_request
(
PDU_SESSION_UPDATE_SM_CONTEXT_REQUEST
)
{
:
pdu_session_sm_context_request
(
PDU_SESSION_UPDATE_SM_CONTEXT_REQUEST
)
{
m_5gMm_cause_value
=
0
;
m_5gMm_cause_value
=
0
;
m_data_forwarding
=
false
;
m_data_forwarding
=
false
;
m_upCnx_state_is_set
=
false
;
m_upCnx_state_is_set
=
false
;
qfis
=
{};
qfis
=
{};
dl_fteid
=
{};
dl_fteid
=
{};
m_release
=
false
;
m_release
=
false
;
m_release_is_set
=
false
;
m_release_is_set
=
false
;
m_an_type_is_set
=
false
;
m_to_be_switched
=
false
;
m_rat_type_is_set
=
false
;
m_to_be_switched_is_set
=
false
;
m_ho_state_is_set
=
false
;
m_failed_to_be_switched
=
false
;
m_is_failed_to_be_switched
=
false
;
m_failed_to_be_switched_is_set
=
false
;
m_an_type_is_set
=
false
;
m_rat_type_is_set
=
false
;
m_ho_state_is_set
=
false
;
m_target_id_is_set
=
false
;
m_target_serving_nf_id_is_set
=
false
;
};
};
void
add_qfi
(
const
pfcp
::
qfi_t
&
qfi
);
void
add_qfi
(
const
pfcp
::
qfi_t
&
qfi
);
...
...
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