Commit c42713eb authored by Tien-Thinh Nguyen's avatar Tien-Thinh Nguyen

Merge branch 'add_function_header' into 'develop'

Add function header

See merge request oai/cn5g/oai-cn5g-amf!109
parents d0417184 98900aa5
......@@ -188,7 +188,7 @@ std::shared_ptr<ue_context> amf_app::amf_ue_id_2_ue_context(
//------------------------------------------------------------------------------
void amf_app::set_amf_ue_ngap_id_2_ue_context(
const long& amf_ue_ngap_id, std::shared_ptr<ue_context> uc) {
const long& amf_ue_ngap_id, const std::shared_ptr<ue_context>& uc) {
std::unique_lock lock(m_amf_ue_ngap_id2ue_ctx);
amf_ue_ngap_id2ue_ctx[amf_ue_ngap_id] = uc;
}
......@@ -220,7 +220,7 @@ bool amf_app::ran_amf_id_2_ue_context(
//------------------------------------------------------------------------------
void amf_app::set_ran_amf_id_2_ue_context(
const string& ue_context_key, std::shared_ptr<ue_context> uc) {
const string& ue_context_key, const std::shared_ptr<ue_context>& uc) {
std::unique_lock lock(m_ue_ctx_key);
ue_ctx_key[ue_context_key] = uc;
}
......@@ -240,7 +240,7 @@ std::shared_ptr<ue_context> amf_app::supi_2_ue_context(
//------------------------------------------------------------------------------
void amf_app::set_supi_2_ue_context(
const string& supi, std::shared_ptr<ue_context>& uc) {
const string& supi, const std::shared_ptr<ue_context>& uc) {
std::unique_lock lock(m_supi2ue_ctx);
supi2ue_ctx[supi] = uc;
}
......@@ -280,8 +280,8 @@ void amf_app::handle_itti_message(
"Handle ITTI N1N2 Message Transfer Request for Paging");
std::shared_ptr<itti_paging> i =
std::make_shared<itti_paging>(TASK_AMF_APP, TASK_AMF_N2);
i.get()->amf_ue_ngap_id = amf_n1_inst->supi2amfId.at(itti_msg.supi);
i.get()->ran_ue_ngap_id = amf_n1_inst->supi2ranId.at(itti_msg.supi);
amf_n1_inst->supi_2_amf_id(itti_msg.supi, i.get()->amf_ue_ngap_id);
amf_n1_inst->supi_2_ran_id(itti_msg.supi, i.get()->ran_ue_ngap_id);
int ret = itti_inst->send_msg(i);
if (0 != ret) {
......@@ -315,8 +315,8 @@ void amf_app::handle_itti_message(
dl_msg->is_n2sm_set = true;
dl_msg->n2sm_info_type = itti_msg.n2sm_info_type;
}
dl_msg->amf_ue_ngap_id = amf_n1_inst->supi2amfId.at(itti_msg.supi);
dl_msg->ran_ue_ngap_id = amf_n1_inst->supi2ranId.at(itti_msg.supi);
amf_n1_inst->supi_2_amf_id(itti_msg.supi, dl_msg->amf_ue_ngap_id);
amf_n1_inst->supi_2_ran_id(itti_msg.supi, dl_msg->ran_ue_ngap_id);
std::shared_ptr<itti_downlink_nas_transfer> i =
std::shared_ptr<itti_downlink_nas_transfer>(dl_msg);
int ret = itti_inst->send_msg(i);
......@@ -619,7 +619,8 @@ uint32_t amf_app::generate_tmsi() {
//------------------------------------------------------------------------------
bool amf_app::generate_5g_guti(
uint32_t ranid, long amfid, string& mcc, string& mnc, uint32_t& tmsi) {
const uint32_t ranid, const long amfid, string& mcc, string& mnc,
uint32_t& tmsi) {
string ue_context_key =
"app_ue_ranid_" + to_string(ranid) + ":amfid_" + to_string(amfid);
if (!is_ran_amf_id_2_ue_context(ue_context_key)) {
......@@ -706,7 +707,7 @@ void amf_app::generate_uuid() {
//---------------------------------------------------------------------------------------------
void amf_app::add_event_subscription(
evsub_id_t sub_id, amf_event_type_t ev,
const evsub_id_t& sub_id, const amf_event_type_t& ev,
std::shared_ptr<amf_subscription> ss) {
Logger::amf_app().debug(
"Add an Event subscription (Sub ID %d, Event %d)", sub_id, (uint8_t) ev);
......@@ -715,7 +716,7 @@ void amf_app::add_event_subscription(
}
//---------------------------------------------------------------------------------------------
bool amf_app::remove_event_subscription(evsub_id_t sub_id) {
bool amf_app::remove_event_subscription(const evsub_id_t& sub_id) {
Logger::amf_app().debug("Remove an Event subscription (Sub ID %d)", sub_id);
std::unique_lock lock(m_amf_event_subscriptions);
for (auto it = amf_event_subscriptions.cbegin();
......@@ -736,7 +737,7 @@ bool amf_app::remove_event_subscription(evsub_id_t sub_id) {
//---------------------------------------------------------------------------------------------
void amf_app::get_ee_subscriptions(
amf_event_type_t ev,
const amf_event_type_t& ev,
std::vector<std::shared_ptr<amf_subscription>>& subscriptions) {
for (auto const& i : amf_event_subscriptions) {
if ((uint8_t) std::get<1>(i.first) == (uint8_t) ev) {
......@@ -750,7 +751,7 @@ void amf_app::get_ee_subscriptions(
//---------------------------------------------------------------------------------------------
void amf_app::get_ee_subscriptions(
evsub_id_t sub_id,
const evsub_id_t& sub_id,
std::vector<std::shared_ptr<amf_subscription>>& subscriptions) {
for (auto const& i : amf_event_subscriptions) {
if (i.first.first == sub_id) {
......@@ -761,7 +762,7 @@ void amf_app::get_ee_subscriptions(
//---------------------------------------------------------------------------------------------
void amf_app::get_ee_subscriptions(
amf_event_type_t ev, std::string& supi,
const amf_event_type_t& ev, std::string& supi,
std::vector<std::shared_ptr<amf_subscription>>& subscriptions) {
for (auto const& i : amf_event_subscriptions) {
if ((i.first.second == ev) && (i.second->supi == supi)) {
......@@ -856,7 +857,7 @@ void amf_app::trigger_nf_registration_request() {
}
//------------------------------------------------------------------------------
void amf_app::trigger_nf_deregistration() {
void amf_app::trigger_nf_deregistration() const {
Logger::amf_app().debug(
"Send ITTI msg to N11 task to trigger the deregistration request to NRF");
......@@ -873,25 +874,28 @@ void amf_app::trigger_nf_deregistration() {
}
void amf_app::add_promise(
uint32_t pid, boost::shared_ptr<boost::promise<uint32_t>>& p) {
const uint32_t pid, const boost::shared_ptr<boost::promise<uint32_t>>& p) {
std::unique_lock lock(m_curl_handle_responses_smf);
curl_handle_responses_smf.emplace(pid, p);
}
//---------------------------------------------------------------------------------------------
void amf_app::add_promise(
uint32_t id, boost::shared_ptr<boost::promise<std::string>>& p) {
const uint32_t id,
const boost::shared_ptr<boost::promise<std::string>>& p) {
std::unique_lock lock(m_curl_handle_responses_n2_sm);
curl_handle_responses_n2_sm.emplace(id, p);
}
//---------------------------------------------------------------------------------------------
void amf_app::add_promise(
uint32_t pid, boost::shared_ptr<boost::promise<nlohmann::json>>& p) {
const uint32_t pid,
const boost::shared_ptr<boost::promise<nlohmann::json>>& p) {
std::unique_lock lock(m_curl_handle_responses_n11);
curl_handle_responses_n11.emplace(pid, p);
}
void amf_app::trigger_process_response(uint32_t pid, uint32_t http_code) {
void amf_app::trigger_process_response(
const uint32_t pid, const uint32_t http_code) {
Logger::amf_app().debug(
"Trigger process response: Set promise with ID %u "
"to ready",
......@@ -904,7 +908,8 @@ void amf_app::trigger_process_response(uint32_t pid, uint32_t http_code) {
}
}
//------------------------------------------------------------------------------
void amf_app::trigger_process_response(uint32_t pid, std::string n2_sm) {
void amf_app::trigger_process_response(
const uint32_t pid, const std::string& n2_sm) {
Logger::amf_app().debug(
"Trigger process response: Set promise with ID %u "
"to ready",
......@@ -919,7 +924,7 @@ void amf_app::trigger_process_response(uint32_t pid, std::string n2_sm) {
//------------------------------------------------------------------------------
void amf_app::trigger_process_response(
uint32_t pid, nlohmann::json& json_data) {
const uint32_t pid, const nlohmann::json& json_data) {
Logger::amf_app().debug(
"Trigger process response: Set promise with ID %u "
"to ready",
......
This diff is collapsed.
......@@ -203,16 +203,65 @@ class amf_config {
public:
amf_config();
~amf_config();
/*
* Load AMF configuration file
* @param [const std::string&] config_file: Configuration file
* @return RETURNclear/RETURNerror/RETURNok
*/
int load(const std::string& config_file);
/*
* Read the network interface configuration
* @param [const Setting&] if_cfg: Configuration for the network interface
* @param [interface_cfg_t&] cfg: Interface config
* @return RETURNclear/RETURNerror/RETURNok
*/
int load_interface(const Setting& if_cfg, interface_cfg_t& cfg);
/*
* Get the URI of NRF NF Discovery Service
* @param void
* @return URI in string format
*/
std::string get_nrf_nf_discovery_service_uri();
/*
* Get the URI of NRF NF Registration Service
* @param [const std::string&] nf_instance_id: NF instance ID
* @return URI in string format
*/
std::string get_nrf_nf_registration_uri(const std::string& nf_instance_id);
/*
* Get the URI of UDM Slice Selection Subscription Data Retrieval Service
* @param [const std::string&] supi: UE SUPI
* @return URI in string format
*/
std::string get_udm_slice_selection_subscription_data_retrieval_uri(
const std::string& supi);
/*
* Get the URI of NSSF Network Slice Selection Information Service
* @param void
* @return URI in string format
*/
std::string get_nssf_network_slice_selection_information_uri();
/*
* Get the URI of AUSF UE Authentication Service
* @param void
* @return URI in string format
*/
std::string get_ausf_ue_authentications_uri();
/*
* Display the AMF configuration parameters
* @param void
* @return void
*/
void display();
unsigned int instance;
std::string pid_dir;
interface_cfg_t n2;
......
......@@ -50,15 +50,24 @@ namespace config {
class amf_modules {
public:
/*
* Load AMF modules configuration
* @param [const std::string&] config_file: Configuration file
* @return RETURNclear/RETURNerror/RETURNok
*/
int load(const std::string& config_file);
/*
* Display the AMF modules configuration parameters
* @param void
* @return void
*/
void display();
void makeModulesAlive();
private:
std::string msgName; // vector to store more msgs
Ngap_NGAP_PDU_PR typeOfMsg;
Ngap_ProcedureCode_t procedureCode;
// NGSetupRequestMsg *ngSetupRequest;
};
} // namespace config
......
......@@ -75,11 +75,11 @@ class event_exposure_msg {
bool m_supi_is_set;
bool m_any_ue; // anyUE, Conditional
// subsChangeNotifyUri:
// subsChangeNotifyCorrelationId:
// groupId:
// gpsi:
// pei:
// subsChangeNotifyUri
// subsChangeNotifyCorrelationId
// groupId
// gpsi
// pei
// options: AmfEventMode
};
......
This diff is collapsed.
This diff is collapsed.
......@@ -437,8 +437,8 @@ void amf_n11::handle_itti_message(itti_nsmf_pdusession_create_sm_context& smf) {
//------------------------------------------------------------------------------
void amf_n11::send_pdu_session_update_sm_context_request(
std::string supi, std::shared_ptr<pdu_session_context> psc,
std::string smf_addr, bstring sm_msg, std::string dnn) {
const std::string& supi, std::shared_ptr<pdu_session_context>& psc,
const std::string& smf_addr, bstring sm_msg, const std::string& dnn) {
Logger::amf_n11().debug(
"Send PDU Session Update SM Context Request to SMF (SUPI %s, PDU Session "
"ID %d, %s)",
......@@ -479,9 +479,9 @@ void amf_n11::send_pdu_session_update_sm_context_request(
//------------------------------------------------------------------------------
void amf_n11::handle_pdu_session_initial_request(
std::string supi, std::shared_ptr<pdu_session_context> psc,
std::string smf_addr, std::string smf_api_version, std::string smf_port,
bstring sm_msg, std::string dnn) {
const std::string& supi, std::shared_ptr<pdu_session_context>& psc,
const std::string& smf_addr, const std::string& smf_api_version,
const std::string& smf_port, bstring sm_msg, const std::string& dnn) {
Logger::amf_n11().debug(
"Handle PDU Session Establishment Request (SUPI %s, PDU Session ID %d)",
supi.c_str(), psc.get()->pdu_session_id);
......@@ -827,8 +827,8 @@ bool amf_n11::smf_selection_from_configuration(
//------------------------------------------------------------------------------
void amf_n11::handle_post_sm_context_response_error(
long code, std::string cause, bstring n1sm, std::string supi,
uint8_t pdu_session_id) {
const long code, const std::string& cause, bstring n1sm,
const std::string& supi, const uint8_t pdu_session_id) {
comUt::print_buffer(
"amf_n11", "n1 sm", (uint8_t*) bdata(n1sm), blength(n1sm));
itti_n1n2_message_transfer_request* itti_msg =
......@@ -851,7 +851,7 @@ void amf_n11::handle_post_sm_context_response_error(
//-----------------------------------------------------------------------------------------------------
bool amf_n11::discover_smf(
std::string& smf_addr, std::string& smf_port, std::string& smf_api_version,
const snssai_t snssai, const plmn_t plmn, const std::string dnn,
const snssai_t& snssai, const plmn_t& plmn, const std::string& dnn,
const std::string& nrf_uri) {
Logger::amf_n11().debug(
"Send NFDiscovery to NRF to discover the available SMFs");
......@@ -996,8 +996,9 @@ void amf_n11::register_nf_instance(
//-----------------------------------------------------------------------------------------------------
bool amf_n11::send_ue_authentication_request(
oai::amf::model::AuthenticationInfo& auth_info,
oai::amf::model::UEAuthenticationCtx& ue_auth_ctx, uint8_t http_version) {
const oai::amf::model::AuthenticationInfo& auth_info,
oai::amf::model::UEAuthenticationCtx& ue_auth_ctx,
const uint8_t& http_version) {
Logger::amf_n11().debug(
"Send UE Authentication Request to AUSF (HTTP version %d)", http_version);
......@@ -1040,9 +1041,10 @@ bool amf_n11::send_ue_authentication_request(
//------------------------------------------------------------------------------
void amf_n11::curl_http_client(
std::string remote_uri, std::string json_data, std::string n1sm_msg,
std::string n2sm_msg, std::string supi, uint8_t pdu_session_id,
uint8_t http_version, uint32_t promise_id) {
const std::string& remote_uri, const std::string& json_data,
const std::string& n1sm_msg, const std::string& n2sm_msg,
const std::string& supi, const uint8_t& pdu_session_id,
const uint8_t& http_version, const uint32_t& promise_id) {
Logger::amf_n11().debug("Call SMF service: %s", remote_uri.c_str());
uint8_t number_parts = 0;
......@@ -1316,9 +1318,9 @@ void amf_n11::curl_http_client(
//------------------------------------------------------------------------------
void amf_n11::curl_http_client(
std::string& remote_uri, std::string& json_data, std::string& n1sm_msg,
std::string& n2sm_msg, uint8_t http_version, uint32_t& response_code,
uint32_t promise_id) {
const std::string& remote_uri, std::string& json_data,
std::string& n1sm_msg, std::string& n2sm_msg, const uint8_t& http_version,
uint32_t& response_code, const uint32_t& promise_id) {
Logger::amf_n11().debug("Call SMF service: %s", remote_uri.c_str());
uint8_t number_parts = 0;
......@@ -1482,9 +1484,9 @@ void amf_n11::curl_http_client(
//-----------------------------------------------------------------------------------------------------
void amf_n11::curl_http_client(
std::string remote_uri, std::string method, std::string msg_body,
nlohmann::json& response_json, uint32_t& response_code,
uint8_t http_version) {
const std::string& remote_uri, const std::string& method,
const std::string& msg_body, nlohmann::json& response_json,
uint32_t& response_code, const uint8_t& http_version) {
Logger::amf_n11().info("Send HTTP message to %s", remote_uri.c_str());
Logger::amf_n11().info("HTTP message Body: %s", msg_body.c_str());
......
This diff is collapsed.
......@@ -2168,7 +2168,8 @@ std::shared_ptr<ue_ngap_context> amf_n2::ran_ue_id_2_ue_ngap_context(
//------------------------------------------------------------------------------
void amf_n2::set_ran_ue_ngap_id_2_ue_ngap_context(
const uint32_t& ran_ue_ngap_id, std::shared_ptr<ue_ngap_context> unc) {
const uint32_t& ran_ue_ngap_id,
const std::shared_ptr<ue_ngap_context>& unc) {
std::unique_lock lock(m_ranid2uecontext);
ranid2uecontext[ran_ue_ngap_id] = unc;
}
......@@ -2285,30 +2286,10 @@ void amf_n2::remove_ue_context_with_amf_ue_ngap_id(
remove_amf_ue_ngap_id_2_ue_ngap_context(amf_ue_ngap_id);
}
//------------------------------------------------------------------------------
bool amf_n2::verifyPlmn(vector<SupportedItem_t> list) {
for (int i = 0; i < amf_cfg.plmn_list.size(); i++) {
for (int j = 0; j < list.size(); j++) {
Logger::amf_n2().debug(
"TAC configured %d, TAC received %d", amf_cfg.plmn_list[i].tac,
list[j].tac);
if (amf_cfg.plmn_list[i].tac != list[j].tac) {
continue;
}
for (int k = 0; k < list[j].b_plmn_list.size(); k++) {
if (!(list[j].b_plmn_list[k].mcc.compare(amf_cfg.plmn_list[i].mcc)) &&
!(list[j].b_plmn_list[k].mnc.compare(amf_cfg.plmn_list[i].mnc))) {
return true;
}
}
}
}
return false;
}
//------------------------------------------------------------------------------
bool amf_n2::get_common_plmn(
std::vector<SupportedItem_t> list, std::vector<SupportedItem_t>& result) {
const std::vector<SupportedItem_t>& list,
std::vector<SupportedItem_t>& result) {
std::vector<SupportedItem_t> plmn_list = {};
bool found_common_plmn = false;
for (int i = 0; i < amf_cfg.plmn_list.size(); i++) {
......
......@@ -191,44 +191,118 @@ class amf_n2 : public ngap::ngap_app {
*/
void handle_itti_message(itti_paging& itti_msg);
// TODO
/*
* Send Handover Preparaton Failure message
* @param [const unsigned long] amf_ue_ngap_id: AMF UE NGAP ID
* @param [const uint32_t] ran_ue_ngap_id: RAN UE NGAP ID
* @param [const sctp_assoc_id_t&] gnb_assoc_id: gNB Association ID
* @return void
*/
void send_handover_preparation_failure(
const unsigned long amf_ue_ngap_id, const uint32_t ran_ue_ngap_id,
const sctp_assoc_id_t& gnb_assoc_id);
// TODO
bool verifyPlmn(std::vector<SupportedItem_t> list);
// TODO
/*
* Get list of common PLMN between AMF and gNB
* @param [const std::vector<SupportedItem_t>&] list: Supported TA list from
* gNB
* @param [std::vector<SupportedItem_t>&] result: list of common TA
* @return true if there's at least 1 common TA, otherwise return false
*/
bool get_common_plmn(
std::vector<SupportedItem_t> list, std::vector<SupportedItem_t>& result);
// TODO
const std::vector<SupportedItem_t>& list,
std::vector<SupportedItem_t>& result);
/*
* Get UE NGAP context associated with a RAN UE NGAP ID
* @param [const uint32_t&] ran_ue_ngap_id: RAN UE NGAP ID
* @return shared pointer to the UE NGAP context
*/
std::shared_ptr<ue_ngap_context> ran_ue_id_2_ue_ngap_context(
const uint32_t& ran_ue_ngap_id) const;
// TODO
/*
* Verify whether a UE NGAP context associated with a RAN UE NGAP ID exist
* @param [const uint32_t&] ran_ue_ngap_id: RAN UE NGAP ID
* @return true if exist, otherwise return false
*/
bool is_ran_ue_id_2_ue_ngap_context(const uint32_t& ran_ue_ngap_id) const;
// TODO
/*
* Store UE NGAP context associated with a RAN UE NGAP ID
* @param [const uint32_t&] ran_ue_ngap_id: RAN UE NGAP ID
* @param [const std::shared_ptr<ue_ngap_context>&] unc: pointer to UE NGAP
* context
* @return void
*/
void set_ran_ue_ngap_id_2_ue_ngap_context(
const uint32_t& ran_ue_ngap_id, std::shared_ptr<ue_ngap_context> unc);
const uint32_t& ran_ue_ngap_id,
const std::shared_ptr<ue_ngap_context>& unc);
/*
* Remove UE NGAP context associated with a RAN UE NGAP ID
* @param [const uint32_t&] ran_ue_ngap_id: RAN UE NGAP ID
* @return void
*/
void remove_ran_ue_ngap_id_2_ngap_context(const uint32_t& ran_ue_ngap_id);
// TODO:
/*
* Remove UE Context associated with a RAN UE NGAP ID
* @param [const uint32_t&] ran_ue_ngap_id: RAN UE NGAP ID
* @return void
*/
void remove_ue_context_with_ran_ue_ngap_id(const uint32_t& ran_ue_ngap_id);
// TODO
/*
* Get UE NGAP context associated with a AMF UE NGAP ID
* @param [const unsigned long&] amf_ue_ngap_id: AMF UE NGAP ID
* @return shared pointer to the UE NGAP context
*/
std::shared_ptr<ue_ngap_context> amf_ue_id_2_ue_ngap_context(
const unsigned long& amf_ue_ngap_id) const;
// TODO
/*
* Verify whether a UE NGAP context associated with a AMF UE NGAP ID exist
* @param [const unsigned long&] amf_ue_ngap_id: AMF UE NGAP ID
* @return true if exist, otherwise return false
*/
bool is_amf_ue_id_2_ue_ngap_context(
const unsigned long& amf_ue_ngap_id) const;
// TODO
/*
* Store UE NGAP context associated with a AMF UE NGAP ID
* @param [const unsigned long&] amf_ue_ngap_id: AMF UE NGAP ID
* @param [const std::shared_ptr<ue_ngap_context>&] unc: pointer to UE NGAP
* context
* @return void
*/
void set_amf_ue_ngap_id_2_ue_ngap_context(
const unsigned long& amf_ue_ngap_id,
std::shared_ptr<ue_ngap_context> unc);
/*
* Remove UE NGAP context associated with a AMF UE NGAP ID
* @param [const unsigned long&] amf_ue_ngap_id: AMF UE NGAP ID
* @return void
*/
void remove_amf_ue_ngap_id_2_ue_ngap_context(
const unsigned long& amf_ue_ngap_id);
/*
* Remove UE Context associated with a AMF UE NGAP ID
* @param [const unsigned long&] amf_ue_ngap_id: AMF UE NGAP ID
* @return void
*/
void remove_ue_context_with_amf_ue_ngap_id(
const unsigned long& amf_ue_ngap_id);
/*
* Get list of UE Context associated with a gNB
* @param [const sctp_assoc_id_t&] gnb_assoc_id: gNB Association ID
* @param [std::vector<std::shared_ptr<ue_ngap_context>>&] ue_contexts: vector
* of UE Context
* @return void
*/
void get_ue_ngap_contexts(
const sctp_assoc_id_t& gnb_assoc_id,
std::vector<std::shared_ptr<ue_ngap_context>>& ue_contexts);
......
......@@ -141,7 +141,7 @@ void statistics::update_5gmm_state(
}
//------------------------------------------------------------------------------
void statistics::remove_gnb(const uint32_t gnb_id) {
void statistics::remove_gnb(const uint32_t& gnb_id) {
std::unique_lock lock(m_gnbs);
if (gnbs.count(gnb_id) > 0) {
gnbs.erase(gnb_id);
......
......@@ -76,13 +76,52 @@ typedef struct ue_info_s {
class statistics {
public:
void display();
statistics();
~statistics();
/*
* Display the AMF configuration parameters
* @param void
* @return void
*/
void display();
/*
* Update UE information
* @param [const ue_info_t&] ue_info: UE information
* @return void
*/
void update_ue_info(const ue_info_t& ue_info);
/*
* Update UE 5GMM state
* @param [const std::string&] imsi: UE IMSI
* @param [const std::string&] state: UE State
* @return void
*/
void update_5gmm_state(const std::string& imsi, const std::string& state);
void remove_gnb(const uint32_t gnb_id);
/*
* Remove gNB from the list connected gNB to this AMF
* @param [const uint32_t] gnb_id: gNB ID
* @return void
*/
void remove_gnb(const uint32_t& gnb_id);
/*
* Add gNB to the list connected gNB to this AMF
* @param [const uint32_t&] gnb_id: gNB ID
* @param [const gnb_infos&] gnb: gNB Info
* @return void
*/
void add_gnb(const uint32_t& gnb_id, const gnb_infos& gnb);
/*
* Update gNB info
* @param [const uint32_t&] gnb_id: gNB ID
* @param [const gnb_infos&] gnb: gNB Info
* @return void
*/
void update_gnb(const uint32_t& gnb_id, const gnb_infos& gnb);
public:
......
......@@ -47,6 +47,12 @@ class amf_subscription {
nf_id() {
supi_is_set = false;
}
/*
* Display the AMF Subscription information
* @param void
* @return void
*/
void display();
evsub_id_t sub_id;
......
......@@ -37,7 +37,7 @@ extern amf_config amf_cfg;
//------------------------------------------------------------------------------
bool amf_n1::get_mysql_auth_info(
std::string imsi,
const std::string& imsi,
mysql_auth_info_t&
resp) { // openair-cn/tree/v0.5.0/src/oai_hss/db/db_connector.c
MYSQL_RES* res;
......@@ -116,7 +116,7 @@ bool amf_n1::connect_to_mysql() {
//------------------------------------------------------------------------------
void amf_n1::mysql_push_rand_sqn(
std::string imsi, uint8_t* rand_p, uint8_t* sqn) {
const std::string& imsi, uint8_t* rand_p, uint8_t* sqn) {
int status = 0;
MYSQL_RES* res;
char query[1000];
......@@ -171,7 +171,7 @@ void amf_n1::mysql_push_rand_sqn(
}
//------------------------------------------------------------------------------
void amf_n1::mysql_increment_sqn(std::string imsi) {
void amf_n1::mysql_increment_sqn(const std::string& imsi) {
int status;
MYSQL_RES* res;
char query[1000];
......
......@@ -63,4 +63,16 @@ constexpr uint64_t SECONDS_SINCE_FIRST_EPOCH = 2208988800;
#define NAMF_COMMUNICATION_BASE "/namf-comm/"
#define NAMF_COMMUNICATION_N1N2_MESSAGE_TRANSFER_URL \
"/ue-contexts/{}/n1-n2-messages" // context id
#define NAS_MESSAGE_DOWNLINK 1
#define NAS_MESSAGE_UPLINK 0
typedef enum {
PlainNasMsg = 0x0,
IntegrityProtected = 0x1,
IntegrityProtectedAndCiphered = 0x2,
IntegrityProtectedWithNew5GNASSecurityContext = 0x3,
IntegrityProtectedAndCipheredWithNew5GNASSecurityContext = 0x4,
} SecurityHeaderType_t;
#endif
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