Commit 8251f33f authored by Tien-Thinh Nguyen's avatar Tien-Thinh Nguyen

Address TODO list

parent 9ce307a1
...@@ -355,7 +355,7 @@ void smf_app::start_upf_association(const pfcp::node_id_t &node_id) { ...@@ -355,7 +355,7 @@ void smf_app::start_upf_association(const pfcp::node_id_t &node_id) {
n4_asc.get()->get_msg_name()); n4_asc.get()->get_msg_name());
} }
} else { } else {
Logger::smf_app().warn("TODO start_association() node_id IPV6, FQDN!"); Logger::smf_app().warn("Start_association() node_id IPV6, FQDN!");
} }
} }
} }
...@@ -495,7 +495,7 @@ void smf_app::handle_itti_msg( ...@@ -495,7 +495,7 @@ void smf_app::handle_itti_msg(
} }
} break; } break;
default: { 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, ...@@ -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 "", Logger::smf_app().debug("Retrieve SMF context with SUPI " SUPI_64_FMT "",
supi64); supi64);
} else { } else {
Logger::smf_app().error( Logger::smf_app().warn(
"Could not retrieve the corresponding SMF context with " "Could not retrieve the corresponding SMF context with "
"Supi " SUPI_64_FMT "!", "Supi " SUPI_64_FMT "!",
supi64); supi64);
// TODO:
} }
// get dnn context // get dnn context
...@@ -1336,11 +1335,10 @@ void smf_app::update_pdu_session_upCnx_state(const scid_t &scid, ...@@ -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 "", Logger::smf_app().debug("Retrieve SMF context with SUPI " SUPI_64_FMT "",
supi64); supi64);
} else { } else {
Logger::smf_app().error( Logger::smf_app().warn(
"Could not retrieve the corresponding SMF context with " "Could not retrieve the corresponding SMF context with "
"Supi " SUPI_64_FMT "!", "Supi " SUPI_64_FMT "!",
supi64); supi64);
// TODO:
} }
// get dnn context // get dnn context
...@@ -1625,9 +1623,7 @@ void smf_app::trigger_http_response(const uint32_t &http_code, ...@@ -1625,9 +1623,7 @@ void smf_app::trigger_http_response(const uint32_t &http_code,
} }
} break; } break;
default: { default: { Logger::smf_app().debug("Unknown message type %d", msg_type); }
// TODO:
}
} }
} }
......
This diff is collapsed.
...@@ -49,12 +49,11 @@ typedef bs2::signal_type<void(supi64_t, pdu_session_id_t, uint8_t), ...@@ -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 bs2::keywords::mutex_type<bs2::dummy_mutex>>::type
ee_pdu_session_release_sig_t; ee_pdu_session_release_sig_t;
// ee_ue_ip_address_change_sig_t; //UI IP Address, UE ID // TODO: ee_ue_ip_address_change_sig_t; //UI IP Address, UE ID
// TODO: // TODO: Access Type Change
// Access Type Change // TODO: UP Path Change
// UP Path Change // TODO: PLMN Change
// PLMN Change // TODO: Downlink data delivery status
// Downlink data delivery status
} // namespace smf } // namespace smf
#endif /* FILE_SMF_EVENT_SIG_HPP_SEEN */ #endif /* FILE_SMF_EVENT_SIG_HPP_SEEN */
...@@ -131,7 +131,6 @@ bool smf_n1::create_n1_pdu_session_establishment_accept( ...@@ -131,7 +131,6 @@ bool smf_n1::create_n1_pdu_session_establishment_accept(
// SessionAMBR // SessionAMBR
Logger::smf_n1().debug("Get default values for Session-AMBR"); Logger::smf_n1().debug("Get default values for Session-AMBR");
// TODO: get from subscription DB
supi_t supi = sm_context_res.get_supi(); supi_t supi = sm_context_res.get_supi();
supi64_t supi64 = smf_supi_to_u64(supi); supi64_t supi64 = smf_supi_to_u64(supi);
std::shared_ptr<smf_context> sc = {}; std::shared_ptr<smf_context> sc = {};
...@@ -423,9 +422,8 @@ bool smf_n1::create_n1_pdu_session_modification_command( ...@@ -423,9 +422,8 @@ bool smf_n1::create_n1_pdu_session_modification_command(
sm_msg->header.procedure_transaction_identity = sm_msg->header.procedure_transaction_identity =
sm_context_res.get_pti().procedure_transaction_id; sm_context_res.get_pti().procedure_transaction_id;
sm_msg->header.message_type = PDU_SESSION_MODIFICATION_COMMAND; sm_msg->header.message_type = PDU_SESSION_MODIFICATION_COMMAND;
// TODO: to be updated
sm_msg->pdu_session_modification_command.presence = sm_msg->pdu_session_modification_command.presence =
0xff; 0xff; // TODO: to be updated
sm_msg->pdu_session_modification_command._5gsmcause = sm_msg->pdu_session_modification_command._5gsmcause =
static_cast<uint8_t>(sm_cause); static_cast<uint8_t>(sm_cause);
// SessionAMBR (default) // SessionAMBR (default)
...@@ -457,8 +455,7 @@ bool smf_n1::create_n1_pdu_session_modification_command( ...@@ -457,8 +455,7 @@ bool smf_n1::create_n1_pdu_session_modification_command(
&qos_rules[i], sizeof(QOSRulesIE)); &qos_rules[i], sizeof(QOSRulesIE));
} }
// MappedEPSBearerContexts // TODO: MappedEPSBearerContexts
// TODO:
// QOSFlowDescriptions // QOSFlowDescriptions
//TODO: get authorized QoS flow descriptions IE //TODO: get authorized QoS flow descriptions IE
...@@ -561,9 +558,8 @@ bool smf_n1::create_n1_pdu_session_modification_command( ...@@ -561,9 +558,8 @@ bool smf_n1::create_n1_pdu_session_modification_command(
sm_msg->header.procedure_transaction_identity = sm_msg->header.procedure_transaction_identity =
msg.get_pti().procedure_transaction_id; msg.get_pti().procedure_transaction_id;
sm_msg->header.message_type = PDU_SESSION_MODIFICATION_COMMAND; sm_msg->header.message_type = PDU_SESSION_MODIFICATION_COMMAND;
// TODO: to be updated
sm_msg->pdu_session_modification_command.presence = sm_msg->pdu_session_modification_command.presence =
0xff; 0xff; // TODO: to be updated
sm_msg->pdu_session_modification_command._5gsmcause = sm_msg->pdu_session_modification_command._5gsmcause =
static_cast<uint8_t>(sm_cause); static_cast<uint8_t>(sm_cause);
// SessionAMBR (default) // SessionAMBR (default)
...@@ -595,8 +591,7 @@ bool smf_n1::create_n1_pdu_session_modification_command( ...@@ -595,8 +591,7 @@ bool smf_n1::create_n1_pdu_session_modification_command(
&qos_rules[i], sizeof(QOSRulesIE)); &qos_rules[i], sizeof(QOSRulesIE));
} }
// MappedEPSBearerContexts // TODO: MappedEPSBearerContexts
// TODO:
// QOSFlowDescriptions, TODO: get authorized QoS flow descriptions IE // QOSFlowDescriptions, TODO: get authorized QoS flow descriptions IE
if (smf_app_inst->is_supi_2_smf_context(supi64)) { if (smf_app_inst->is_supi_2_smf_context(supi64)) {
...@@ -667,9 +662,9 @@ bool smf_n1::create_n1_pdu_session_release_reject( ...@@ -667,9 +662,9 @@ bool smf_n1::create_n1_pdu_session_release_reject(
sm_msg->header.message_type = PDU_SESSION_RELEASE_REJECT; sm_msg->header.message_type = PDU_SESSION_RELEASE_REJECT;
sm_msg->pdu_session_release_reject._5gsmcause = sm_msg->pdu_session_release_reject._5gsmcause =
static_cast<uint8_t>(sm_cause); static_cast<uint8_t>(sm_cause);
// TODO: to be updated when adding the following IE
sm_msg->pdu_session_release_command.presence = sm_msg->pdu_session_release_command.presence =
0x00; 0x00; // TODO: to be updated
// Extended protocol configuration options // Extended protocol configuration options
// Encode NAS message // Encode NAS message
......
...@@ -84,26 +84,6 @@ class smf_n1 { ...@@ -84,26 +84,6 @@ class smf_n1 {
bool create_n1_pdu_session_establishment_reject(pdu_session_msg &msg, bool create_n1_pdu_session_establishment_reject(pdu_session_msg &msg,
std::string &nas_msg_str, std::string &nas_msg_str,
cause_value_5gsm_e sm_cause); 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 * Create N1 SM Container: PDU Session Modification Command
* Included in PDU Session Update SM Context Response (PDU Session * Included in PDU Session Update SM Context Response (PDU Session
......
...@@ -173,8 +173,7 @@ bool smf_n2::create_n2_pdu_session_resource_setup_request_transfer( ...@@ -173,8 +173,7 @@ bool smf_n2::create_n2_pdu_session_resource_setup_request_transfer(
ASN_SEQUENCE_ADD(&ngap_IEs->protocolIEs.list, upTransportLayerInformation); ASN_SEQUENCE_ADD(&ngap_IEs->protocolIEs.list, upTransportLayerInformation);
// DataForwardingNotPossible // TODO: DataForwardingNotPossible
// TODO:
// PDUSessionType // PDUSessionType
Ngap_PDUSessionResourceSetupRequestTransferIEs_t *pduSessionType = nullptr; Ngap_PDUSessionResourceSetupRequestTransferIEs_t *pduSessionType = nullptr;
...@@ -203,8 +202,7 @@ bool smf_n2::create_n2_pdu_session_resource_setup_request_transfer( ...@@ -203,8 +202,7 @@ bool smf_n2::create_n2_pdu_session_resource_setup_request_transfer(
// securityIndication->value.choice.SecurityIndication.confidentialityProtectionIndication // securityIndication->value.choice.SecurityIndication.confidentialityProtectionIndication
// = Ngap_ConfidentialityProtectionIndication_not_needed; // = Ngap_ConfidentialityProtectionIndication_not_needed;
// NetworkInstance // TODO: NetworkInstance
// TODO:
// QosFlowSetupRequestList // QosFlowSetupRequestList
Ngap_PDUSessionResourceSetupRequestTransferIEs_t *qosFlowSetupRequestList = Ngap_PDUSessionResourceSetupRequestTransferIEs_t *qosFlowSetupRequestList =
...@@ -435,8 +433,7 @@ bool smf_n2::create_n2_pdu_session_resource_setup_request_transfer( ...@@ -435,8 +433,7 @@ bool smf_n2::create_n2_pdu_session_resource_setup_request_transfer(
ASN_SEQUENCE_ADD(&ngap_IEs->protocolIEs.list, upTransportLayerInformation); ASN_SEQUENCE_ADD(&ngap_IEs->protocolIEs.list, upTransportLayerInformation);
// DataForwardingNotPossible // TODO: DataForwardingNotPossible
// TODO:
// PDUSessionType // PDUSessionType
Ngap_PDUSessionResourceSetupRequestTransferIEs_t *pduSessionType = nullptr; Ngap_PDUSessionResourceSetupRequestTransferIEs_t *pduSessionType = nullptr;
...@@ -465,8 +462,7 @@ bool smf_n2::create_n2_pdu_session_resource_setup_request_transfer( ...@@ -465,8 +462,7 @@ bool smf_n2::create_n2_pdu_session_resource_setup_request_transfer(
// securityIndication->value.choice.SecurityIndication.confidentialityProtectionIndication // securityIndication->value.choice.SecurityIndication.confidentialityProtectionIndication
// = Ngap_ConfidentialityProtectionIndication_not_needed; // = Ngap_ConfidentialityProtectionIndication_not_needed;
// NetworkInstance // TODO: NetworkInstance
// TODO:
// QosFlowSetupRequestList // QosFlowSetupRequestList
Ngap_PDUSessionResourceSetupRequestTransferIEs_t *qosFlowSetupRequestList = Ngap_PDUSessionResourceSetupRequestTransferIEs_t *qosFlowSetupRequestList =
...@@ -721,8 +717,7 @@ bool smf_n2::create_n2_pdu_session_resource_modify_request_transfer( ...@@ -721,8 +717,7 @@ bool smf_n2::create_n2_pdu_session_resource_modify_request_transfer(
ngap_UL_NGU_UP_TNLModifyItem); ngap_UL_NGU_UP_TNLModifyItem);
ASN_SEQUENCE_ADD(&ngap_IEs->protocolIEs.list, ul_NGU_UP_TNLModifyList); ASN_SEQUENCE_ADD(&ngap_IEs->protocolIEs.list, ul_NGU_UP_TNLModifyList);
// Ngap_NetworkInstance_t // TODO: Ngap_NetworkInstance_t
// TODO
// Ngap_QosFlowAddOrModifyRequestList_t // Ngap_QosFlowAddOrModifyRequestList_t
// TODO: to be completed // TODO: to be completed
...@@ -783,10 +778,8 @@ bool smf_n2::create_n2_pdu_session_resource_modify_request_transfer( ...@@ -783,10 +778,8 @@ bool smf_n2::create_n2_pdu_session_resource_modify_request_transfer(
// Ngap_E_RAB_ID_t *e_RAB_ID; //optional // Ngap_E_RAB_ID_t *e_RAB_ID; //optional
ASN_SEQUENCE_ADD(&ngap_IEs->protocolIEs.list, qosFlowAddOrModifyRequestList); ASN_SEQUENCE_ADD(&ngap_IEs->protocolIEs.list, qosFlowAddOrModifyRequestList);
// Ngap_QosFlowList_t - QoS to release list?? // TODO: Ngap_QosFlowList_t - QoS to release list??
// TODO // TODO: Ngap_UPTransportLayerInformation_t
// Ngap_UPTransportLayerInformation_t
// TODO
// encode // encode
size_t buffer_size = BUF_LEN; size_t buffer_size = BUF_LEN;
......
...@@ -393,7 +393,7 @@ void smf_n4::handle_receive_association_setup_request( ...@@ -393,7 +393,7 @@ void smf_n4::handle_receive_association_setup_request(
send_n4_msg(a); send_n4_msg(a);
} else { } else {
Logger::smf_n4().warn( 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"); "ignore message");
return; return;
} }
......
...@@ -105,7 +105,6 @@ int session_create_sm_context_procedure::run( ...@@ -105,7 +105,6 @@ int session_create_sm_context_procedure::run(
pfcp::node_id_t up_node_id = {}; pfcp::node_id_t up_node_id = {};
if (not pfcp_associations::get_instance().select_up_node( if (not pfcp_associations::get_instance().select_up_node(
up_node_id, NODE_SELECTION_CRITERIA_MIN_PFCP_SESSIONS)) { up_node_id, NODE_SELECTION_CRITERIA_MIN_PFCP_SESSIONS)) {
// TODO
sm_context_resp->res.set_cause( sm_context_resp->res.set_cause(
PDU_SESSION_APPLICATION_ERROR_PEER_NOT_RESPONDING); PDU_SESSION_APPLICATION_ERROR_PEER_NOT_RESPONDING);
return RETURNerror; return RETURNerror;
...@@ -690,8 +689,7 @@ int session_update_sm_context_procedure::run( ...@@ -690,8 +689,7 @@ int session_update_sm_context_procedure::run(
// that PFCP session. // that PFCP session.
sps->generate_pdr_id(pdr_id); sps->generate_pdr_id(pdr_id);
precedence.precedence = precedence.precedence =
flow.precedence.precedence; // TODO: should be verified flow.precedence.precedence;
pdi.set(source_interface); pdi.set(source_interface);
// pdi.set(local_fteid); // pdi.set(local_fteid);
pdi.set(ue_ip_address); pdi.set(ue_ip_address);
...@@ -748,7 +746,7 @@ int session_update_sm_context_procedure::run( ...@@ -748,7 +746,7 @@ int session_update_sm_context_procedure::run(
ue_ip_address.ipv6_address = sps->ipv6_address; ue_ip_address.ipv6_address = sps->ipv6_address;
} }
precedence.precedence = precedence.precedence =
flow.precedence.precedence; // TODO: should be verified flow.precedence.precedence;
source_interface.interface_value = pfcp::INTERFACE_VALUE_CORE; source_interface.interface_value = pfcp::INTERFACE_VALUE_CORE;
pdi.set(source_interface); pdi.set(source_interface);
...@@ -973,7 +971,6 @@ void session_update_sm_context_procedure::handle_itti_msg( ...@@ -973,7 +971,6 @@ void session_update_sm_context_procedure::handle_itti_msg(
if (it_update_far.get(far_id)) { if (it_update_far.get(far_id)) {
smf_qos_flow flow = {}; smf_qos_flow flow = {};
if (sps->get_qos_flow(far_id, 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) { for (auto it : qos_flow_context_to_be_updateds) {
if (it.first == flow.qfi.qfi) { if (it.first == flow.qfi.qfi) {
flow.dl_fteid = dl_fteid; flow.dl_fteid = dl_fteid;
...@@ -1032,8 +1029,7 @@ void session_update_sm_context_procedure::handle_itti_msg( ...@@ -1032,8 +1029,7 @@ void session_update_sm_context_procedure::handle_itti_msg(
n11_triggered_pending->res.set_http_code( n11_triggered_pending->res.set_http_code(
http_status_code_e::HTTP_STATUS_CODE_200_OK); http_status_code_e::HTTP_STATUS_CODE_200_OK);
// TODO // TODO: check we got all responses vs
// check we got all responses vs
// n11_triggered_pending->res.flow_context_modified // n11_triggered_pending->res.flow_context_modified
// TODO: Optional: send ITTI message to N10 to trigger UDM registration // TODO: Optional: send ITTI message to N10 to trigger UDM registration
...@@ -1255,7 +1251,6 @@ int session_release_sm_context_procedure::run( ...@@ -1255,7 +1251,6 @@ int session_release_sm_context_procedure::run(
pfcp::node_id_t up_node_id = {}; pfcp::node_id_t up_node_id = {};
if (not pfcp_associations::get_instance().select_up_node( if (not pfcp_associations::get_instance().select_up_node(
up_node_id, NODE_SELECTION_CRITERIA_MIN_PFCP_SESSIONS)) { up_node_id, NODE_SELECTION_CRITERIA_MIN_PFCP_SESSIONS)) {
// TODO
sm_context_res->res.set_cause( sm_context_res->res.set_cause(
PDU_SESSION_APPLICATION_ERROR_PEER_NOT_RESPONDING); PDU_SESSION_APPLICATION_ERROR_PEER_NOT_RESPONDING);
Logger::smf_app().info("REMOTE_PEER_NOT_RESPONDING"); Logger::smf_app().info("REMOTE_PEER_NOT_RESPONDING");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment