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
8251f33f
Commit
8251f33f
authored
Jan 05, 2021
by
Tien-Thinh Nguyen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Address TODO list
parent
9ce307a1
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
44 additions
and
248 deletions
+44
-248
src/smf_app/smf_app.cpp
src/smf_app/smf_app.cpp
+5
-9
src/smf_app/smf_context.cpp
src/smf_app/smf_context.cpp
+17
-179
src/smf_app/smf_event_sig.hpp
src/smf_app/smf_event_sig.hpp
+5
-6
src/smf_app/smf_n1.cpp
src/smf_app/smf_n1.cpp
+6
-11
src/smf_app/smf_n1.hpp
src/smf_app/smf_n1.hpp
+0
-20
src/smf_app/smf_n2.cpp
src/smf_app/smf_n2.cpp
+7
-14
src/smf_app/smf_n4.cpp
src/smf_app/smf_n4.cpp
+1
-1
src/smf_app/smf_procedure.cpp
src/smf_app/smf_procedure.cpp
+3
-8
No files found.
src/smf_app/smf_app.cpp
View file @
8251f33f
...
...
@@ -355,7 +355,7 @@ void smf_app::start_upf_association(const pfcp::node_id_t &node_id) {
n4_asc
.
get
()
->
get_msg_name
());
}
}
else
{
Logger
::
smf_app
().
warn
(
"
TODO s
tart_association() node_id IPV6, FQDN!"
);
Logger
::
smf_app
().
warn
(
"
S
tart_association() node_id IPV6, FQDN!"
);
}
}
}
...
...
@@ -495,7 +495,7 @@ void smf_app::handle_itti_msg(
}
}
break
;
default:
{
// TODO:
Logger
::
smf_app
().
warn
(
"Unknown procedure type %d"
,
m
.
procedure_type
);
}
}
}
...
...
@@ -1280,11 +1280,10 @@ void smf_app::update_pdu_session_status(const scid_t &scid,
Logger
::
smf_app
().
debug
(
"Retrieve SMF context with SUPI "
SUPI_64_FMT
""
,
supi64
);
}
else
{
Logger
::
smf_app
().
error
(
Logger
::
smf_app
().
warn
(
"Could not retrieve the corresponding SMF context with "
"Supi "
SUPI_64_FMT
"!"
,
supi64
);
// TODO:
}
// get dnn context
...
...
@@ -1336,11 +1335,10 @@ void smf_app::update_pdu_session_upCnx_state(const scid_t &scid,
Logger
::
smf_app
().
debug
(
"Retrieve SMF context with SUPI "
SUPI_64_FMT
""
,
supi64
);
}
else
{
Logger
::
smf_app
().
error
(
Logger
::
smf_app
().
warn
(
"Could not retrieve the corresponding SMF context with "
"Supi "
SUPI_64_FMT
"!"
,
supi64
);
// TODO:
}
// get dnn context
...
...
@@ -1625,9 +1623,7 @@ void smf_app::trigger_http_response(const uint32_t &http_code,
}
}
break
;
default:
{
// TODO:
}
default:
{
Logger
::
smf_app
().
debug
(
"Unknown message type %d"
,
msg_type
);
}
}
}
...
...
src/smf_app/smf_context.cpp
View file @
8251f33f
This diff is collapsed.
Click to expand it.
src/smf_app/smf_event_sig.hpp
View file @
8251f33f
...
...
@@ -49,12 +49,11 @@ typedef bs2::signal_type<void(supi64_t, pdu_session_id_t, uint8_t),
bs2
::
keywords
::
mutex_type
<
bs2
::
dummy_mutex
>>::
type
ee_pdu_session_release_sig_t
;
// ee_ue_ip_address_change_sig_t; //UI IP Address, UE ID
// TODO:
// Access Type Change
// UP Path Change
// PLMN Change
// Downlink data delivery status
// TODO: ee_ue_ip_address_change_sig_t; //UI IP Address, UE ID
// TODO: Access Type Change
// TODO: UP Path Change
// TODO: PLMN Change
// TODO: Downlink data delivery status
}
// namespace smf
#endif
/* FILE_SMF_EVENT_SIG_HPP_SEEN */
src/smf_app/smf_n1.cpp
View file @
8251f33f
...
...
@@ -131,7 +131,6 @@ bool smf_n1::create_n1_pdu_session_establishment_accept(
// SessionAMBR
Logger
::
smf_n1
().
debug
(
"Get default values for Session-AMBR"
);
// TODO: get from subscription DB
supi_t
supi
=
sm_context_res
.
get_supi
();
supi64_t
supi64
=
smf_supi_to_u64
(
supi
);
std
::
shared_ptr
<
smf_context
>
sc
=
{};
...
...
@@ -423,9 +422,8 @@ bool smf_n1::create_n1_pdu_session_modification_command(
sm_msg
->
header
.
procedure_transaction_identity
=
sm_context_res
.
get_pti
().
procedure_transaction_id
;
sm_msg
->
header
.
message_type
=
PDU_SESSION_MODIFICATION_COMMAND
;
// TODO: to be updated
sm_msg
->
pdu_session_modification_command
.
presence
=
0xff
;
0xff
;
// TODO: to be updated
sm_msg
->
pdu_session_modification_command
.
_5gsmcause
=
static_cast
<
uint8_t
>
(
sm_cause
);
// SessionAMBR (default)
...
...
@@ -457,8 +455,7 @@ bool smf_n1::create_n1_pdu_session_modification_command(
&
qos_rules
[
i
],
sizeof
(
QOSRulesIE
));
}
// MappedEPSBearerContexts
// TODO:
// TODO: MappedEPSBearerContexts
// QOSFlowDescriptions
//TODO: get authorized QoS flow descriptions IE
...
...
@@ -561,9 +558,8 @@ bool smf_n1::create_n1_pdu_session_modification_command(
sm_msg
->
header
.
procedure_transaction_identity
=
msg
.
get_pti
().
procedure_transaction_id
;
sm_msg
->
header
.
message_type
=
PDU_SESSION_MODIFICATION_COMMAND
;
// TODO: to be updated
sm_msg
->
pdu_session_modification_command
.
presence
=
0xff
;
0xff
;
// TODO: to be updated
sm_msg
->
pdu_session_modification_command
.
_5gsmcause
=
static_cast
<
uint8_t
>
(
sm_cause
);
// SessionAMBR (default)
...
...
@@ -595,8 +591,7 @@ bool smf_n1::create_n1_pdu_session_modification_command(
&
qos_rules
[
i
],
sizeof
(
QOSRulesIE
));
}
// MappedEPSBearerContexts
// TODO:
// TODO: MappedEPSBearerContexts
// QOSFlowDescriptions, TODO: get authorized QoS flow descriptions IE
if
(
smf_app_inst
->
is_supi_2_smf_context
(
supi64
))
{
...
...
@@ -667,9 +662,9 @@ bool smf_n1::create_n1_pdu_session_release_reject(
sm_msg
->
header
.
message_type
=
PDU_SESSION_RELEASE_REJECT
;
sm_msg
->
pdu_session_release_reject
.
_5gsmcause
=
static_cast
<
uint8_t
>
(
sm_cause
);
// TODO: to be updated when adding the following IE
sm_msg
->
pdu_session_release_command
.
presence
=
0x00
;
0x00
;
// TODO: to be updated
// Extended protocol configuration options
// Encode NAS message
...
...
src/smf_app/smf_n1.hpp
View file @
8251f33f
...
...
@@ -84,26 +84,6 @@ class smf_n1 {
bool
create_n1_pdu_session_establishment_reject
(
pdu_session_msg
&
msg
,
std
::
string
&
nas_msg_str
,
cause_value_5gsm_e
sm_cause
);
// TODO: separate into 4 functions (verify if necessary)
/*
bool
create_n1_pdu_session_establishment_accept(pdu_session_create_sm_context_response
&sm_context_res, std::string &nas_msg_str, cause_value_5gsm_e sm_cause);
bool
create_n1_pdu_session_establishment_reject(pdu_session_create_sm_context_request
&msg, uint8_t msg_type, std::string &nas_msg_str, cause_value_5gsm_e
sm_cause);
bool
create_n1_pdu_session_establishment_reject(pdu_session_update_sm_context_response
&msg, uint8_t msg_type, std::string &nas_msg_str, cause_value_5gsm_e
sm_cause); bool
create_n1_pdu_session_establishment_reject(pdu_session_update_sm_context_request
&msg, uint8_t msg_type, std::string &nas_msg_str, cause_value_5gsm_e
sm_cause);
*/
/*
* Create N1 SM Container: PDU Session Modification Command
* Included in PDU Session Update SM Context Response (PDU Session
...
...
src/smf_app/smf_n2.cpp
View file @
8251f33f
...
...
@@ -173,8 +173,7 @@ bool smf_n2::create_n2_pdu_session_resource_setup_request_transfer(
ASN_SEQUENCE_ADD
(
&
ngap_IEs
->
protocolIEs
.
list
,
upTransportLayerInformation
);
// DataForwardingNotPossible
// TODO:
// TODO: DataForwardingNotPossible
// PDUSessionType
Ngap_PDUSessionResourceSetupRequestTransferIEs_t
*
pduSessionType
=
nullptr
;
...
...
@@ -203,8 +202,7 @@ bool smf_n2::create_n2_pdu_session_resource_setup_request_transfer(
// securityIndication->value.choice.SecurityIndication.confidentialityProtectionIndication
// = Ngap_ConfidentialityProtectionIndication_not_needed;
// NetworkInstance
// TODO:
// TODO: NetworkInstance
// QosFlowSetupRequestList
Ngap_PDUSessionResourceSetupRequestTransferIEs_t
*
qosFlowSetupRequestList
=
...
...
@@ -435,8 +433,7 @@ bool smf_n2::create_n2_pdu_session_resource_setup_request_transfer(
ASN_SEQUENCE_ADD
(
&
ngap_IEs
->
protocolIEs
.
list
,
upTransportLayerInformation
);
// DataForwardingNotPossible
// TODO:
// TODO: DataForwardingNotPossible
// PDUSessionType
Ngap_PDUSessionResourceSetupRequestTransferIEs_t
*
pduSessionType
=
nullptr
;
...
...
@@ -465,8 +462,7 @@ bool smf_n2::create_n2_pdu_session_resource_setup_request_transfer(
// securityIndication->value.choice.SecurityIndication.confidentialityProtectionIndication
// = Ngap_ConfidentialityProtectionIndication_not_needed;
// NetworkInstance
// TODO:
// TODO: NetworkInstance
// QosFlowSetupRequestList
Ngap_PDUSessionResourceSetupRequestTransferIEs_t
*
qosFlowSetupRequestList
=
...
...
@@ -721,8 +717,7 @@ bool smf_n2::create_n2_pdu_session_resource_modify_request_transfer(
ngap_UL_NGU_UP_TNLModifyItem
);
ASN_SEQUENCE_ADD
(
&
ngap_IEs
->
protocolIEs
.
list
,
ul_NGU_UP_TNLModifyList
);
// Ngap_NetworkInstance_t
// TODO
// TODO: Ngap_NetworkInstance_t
// Ngap_QosFlowAddOrModifyRequestList_t
// TODO: to be completed
...
...
@@ -783,10 +778,8 @@ bool smf_n2::create_n2_pdu_session_resource_modify_request_transfer(
// Ngap_E_RAB_ID_t *e_RAB_ID; //optional
ASN_SEQUENCE_ADD
(
&
ngap_IEs
->
protocolIEs
.
list
,
qosFlowAddOrModifyRequestList
);
// Ngap_QosFlowList_t - QoS to release list??
// TODO
// Ngap_UPTransportLayerInformation_t
// TODO
// TODO: Ngap_QosFlowList_t - QoS to release list??
// TODO: Ngap_UPTransportLayerInformation_t
// encode
size_t
buffer_size
=
BUF_LEN
;
...
...
src/smf_app/smf_n4.cpp
View file @
8251f33f
...
...
@@ -393,7 +393,7 @@ void smf_n4::handle_receive_association_setup_request(
send_n4_msg
(
a
);
}
else
{
Logger
::
smf_n4
().
warn
(
"Received N4 ASSOCIATION SETUP REQUEST
TODO
node_id IPV6, FQDN!, "
"Received N4 ASSOCIATION SETUP REQUEST node_id IPV6, FQDN!, "
"ignore message"
);
return
;
}
...
...
src/smf_app/smf_procedure.cpp
View file @
8251f33f
...
...
@@ -105,7 +105,6 @@ int session_create_sm_context_procedure::run(
pfcp
::
node_id_t
up_node_id
=
{};
if
(
not
pfcp_associations
::
get_instance
().
select_up_node
(
up_node_id
,
NODE_SELECTION_CRITERIA_MIN_PFCP_SESSIONS
))
{
// TODO
sm_context_resp
->
res
.
set_cause
(
PDU_SESSION_APPLICATION_ERROR_PEER_NOT_RESPONDING
);
return
RETURNerror
;
...
...
@@ -690,8 +689,7 @@ int session_update_sm_context_procedure::run(
// that PFCP session.
sps
->
generate_pdr_id
(
pdr_id
);
precedence
.
precedence
=
flow
.
precedence
.
precedence
;
// TODO: should be verified
flow
.
precedence
.
precedence
;
pdi
.
set
(
source_interface
);
// pdi.set(local_fteid);
pdi
.
set
(
ue_ip_address
);
...
...
@@ -748,7 +746,7 @@ int session_update_sm_context_procedure::run(
ue_ip_address
.
ipv6_address
=
sps
->
ipv6_address
;
}
precedence
.
precedence
=
flow
.
precedence
.
precedence
;
// TODO: should be verified
flow
.
precedence
.
precedence
;
source_interface
.
interface_value
=
pfcp
::
INTERFACE_VALUE_CORE
;
pdi
.
set
(
source_interface
);
...
...
@@ -973,7 +971,6 @@ void session_update_sm_context_procedure::handle_itti_msg(
if
(
it_update_far
.
get
(
far_id
))
{
smf_qos_flow
flow
=
{};
if
(
sps
->
get_qos_flow
(
far_id
,
flow
))
{
// for (auto qfi: list_of_qfis_to_be_modified){
for
(
auto
it
:
qos_flow_context_to_be_updateds
)
{
if
(
it
.
first
==
flow
.
qfi
.
qfi
)
{
flow
.
dl_fteid
=
dl_fteid
;
...
...
@@ -1032,8 +1029,7 @@ void session_update_sm_context_procedure::handle_itti_msg(
n11_triggered_pending
->
res
.
set_http_code
(
http_status_code_e
::
HTTP_STATUS_CODE_200_OK
);
// TODO
// check we got all responses vs
// TODO: check we got all responses vs
// n11_triggered_pending->res.flow_context_modified
// TODO: Optional: send ITTI message to N10 to trigger UDM registration
...
...
@@ -1255,7 +1251,6 @@ int session_release_sm_context_procedure::run(
pfcp
::
node_id_t
up_node_id
=
{};
if
(
not
pfcp_associations
::
get_instance
().
select_up_node
(
up_node_id
,
NODE_SELECTION_CRITERIA_MIN_PFCP_SESSIONS
))
{
// TODO
sm_context_res
->
res
.
set_cause
(
PDU_SESSION_APPLICATION_ERROR_PEER_NOT_RESPONDING
);
Logger
::
smf_app
().
info
(
"REMOTE_PEER_NOT_RESPONDING"
);
...
...
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