Commit 4c2f4df0 authored by Stefan Spettel's avatar Stefan Spettel

Merge branch 'develop' into common_logger

parents 726dd9e0 3322d832
...@@ -60,6 +60,17 @@ static std::string smf_supi_to_string(supi_t const supi) { ...@@ -60,6 +60,17 @@ static std::string smf_supi_to_string(supi_t const supi) {
return supi_str; return supi_str;
} }
static std::string smf_get_supi_with_prefix(
const std::string& prefix, const std::string& supi) {
std::string supi_str = {};
if (!prefix.empty()) {
supi_str = prefix + "-" + supi;
} else {
supi_str = supi;
}
return supi_str;
}
// TODO should we just replace the other function? Because this null chars are // TODO should we just replace the other function? Because this null chars are
// annoying // annoying
static std::string smf_supi_to_string_without_nulls(supi_t const supi) { static std::string smf_supi_to_string_without_nulls(supi_t const supi) {
......
...@@ -184,9 +184,16 @@ void xgpp_conv::sm_context_create_from_openapi( ...@@ -184,9 +184,16 @@ void xgpp_conv::sm_context_create_from_openapi(
if (context_data.supiIsSet()) { if (context_data.supiIsSet()) {
// supi // supi
supi_t supi = {.length = 0}; supi_t supi = {.length = 0};
std::string supi_str = {};
std::string supi_prefix = {};
std::size_t pos = context_data.getSupi().find("-"); std::size_t pos = context_data.getSupi().find("-");
std::string supi_str = context_data.getSupi().substr(pos + 1); if (pos != std::string::npos) {
std::string supi_prefix = context_data.getSupi().substr(0, pos); supi_str = context_data.getSupi().substr(pos + 1);
supi_prefix = context_data.getSupi().substr(0, pos);
} else {
supi_str = context_data.getSupi();
}
smf_string_to_supi(&supi, supi_str.c_str()); smf_string_to_supi(&supi, supi_str.c_str());
pcr.set_supi(supi); pcr.set_supi(supi);
pcr.set_supi_prefix(supi_prefix); pcr.set_supi_prefix(supi_prefix);
......
This diff is collapsed.
...@@ -1359,6 +1359,19 @@ class smf_context : public std::enable_shared_from_this<smf_context> { ...@@ -1359,6 +1359,19 @@ class smf_context : public std::enable_shared_from_this<smf_context> {
const ng_ran_target_id_t& ran_target_id, const ng_ran_target_id_t& ran_target_id,
const pdu_session_id_t& pdu_session_id) const; const pdu_session_id_t& pdu_session_id) const;
/**
* Send a PDU Session Establishment response with a reject
* @param smreq Original request
* @param cause NAS cause value for PDU session establishment reject
* @param application_error PDU session establishment application error
* @param http_status
*/
void send_pdu_session_establishment_response_reject(
const std::shared_ptr<itti_n11_create_sm_context_request> smreq,
cause_value_5gsm_e cause,
pdu_session_application_error_e application_error,
http_status_code_e http_status);
/** /**
* Send a PDU session Create Response, based on the content of resp. * Send a PDU session Create Response, based on the content of resp.
* @param resp * @param resp
......
...@@ -72,8 +72,9 @@ struct policy_association { ...@@ -72,8 +72,9 @@ struct policy_association {
std::string pcf_location; std::string pcf_location;
void set_context( void set_context(
const std::string& supi, const std::string& dnn, const snssai_t& snssai, const std::string& supi, const std::string& supi_prefix,
const plmn_t& plmn, const uint8_t pdu_session_id, const std::string& dnn, const snssai_t& snssai, const plmn_t& plmn,
const uint8_t pdu_session_id,
const pdu_session_type_t& pdu_session_type) { const pdu_session_type_t& pdu_session_type) {
oai::smf_server::model::Snssai snssai_model; oai::smf_server::model::Snssai snssai_model;
snssai_model.setSst(snssai.sst); snssai_model.setSst(snssai.sst);
...@@ -90,8 +91,7 @@ struct policy_association { ...@@ -90,8 +91,7 @@ struct policy_association {
context = {}; context = {};
context.setPduSessionId(pdu_session_id); context.setPduSessionId(pdu_session_id);
// TODO only support imsi SUPI, not NAI context.setSupi(smf_get_supi_with_prefix(supi_prefix, supi));
context.setSupi("imsi-" + supi);
oai::smf_server::model::PduSessionType pdu_session_type_model; oai::smf_server::model::PduSessionType pdu_session_type_model;
// hacky // hacky
from_json(pdu_session_type.to_string(), pdu_session_type_model); from_json(pdu_session_type.to_string(), pdu_session_type_model);
......
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