Follow-on up #1794

This commit is contained in:
Sukchan Lee 2022-10-02 19:41:52 +09:00
parent 1f2a8678ed
commit c537166d37
4 changed files with 17 additions and 12 deletions

View File

@ -651,6 +651,9 @@ typedef struct ogs_slice_data_s {
bool default_indicator; bool default_indicator;
uint32_t context_identifier; /* EPC for checking default APN */ uint32_t context_identifier; /* EPC for checking default APN */
#define OGS_ALL_APN_CONFIGURATIONS_INCLUDED 0
#define OGS_MODIFIED_ADDED_APN_CONFIGURATIONS_INCLUDED 1
uint32_t all_apn_config_inc; uint32_t all_apn_config_inc;
int num_of_session; int num_of_session;

View File

@ -1190,7 +1190,7 @@ int hss_db_poll_change_stream(void)
int hss_handle_change_event(const bson_t *document) int hss_handle_change_event(const bson_t *document)
{ {
bson_iter_t iter, child1_iter, child2_iter, child3_iter; bson_iter_t iter, child1_iter, child2_iter;
char *utf8 = NULL; char *utf8 = NULL;
uint32_t length = 0; uint32_t length = 0;

View File

@ -458,7 +458,7 @@ static int hss_s6a_avp_add_subscription_data(
ogs_diam_s6a_all_apn_configuration_included_indicator, 0, ogs_diam_s6a_all_apn_configuration_included_indicator, 0,
&all_apn_configuration_included_indicator); &all_apn_configuration_included_indicator);
ogs_assert(ret == 0); ogs_assert(ret == 0);
val.i32 = 0; val.i32 = OGS_ALL_APN_CONFIGURATIONS_INCLUDED;
ret = fd_msg_avp_setvalue( ret = fd_msg_avp_setvalue(
all_apn_configuration_included_indicator, &val); all_apn_configuration_included_indicator, &val);
ogs_assert(ret == 0); ogs_assert(ret == 0);

View File

@ -77,7 +77,7 @@ uint8_t mme_s6a_handle_ula(
ogs_diam_s6a_ula_message_t *ula_message = NULL; ogs_diam_s6a_ula_message_t *ula_message = NULL;
ogs_subscription_data_t *subscription_data = NULL; ogs_subscription_data_t *subscription_data = NULL;
ogs_slice_data_t *slice_data = NULL; ogs_slice_data_t *slice_data = NULL;
int rv; int rv, num_of_session;
ogs_assert(mme_ue); ogs_assert(mme_ue);
ogs_assert(s6a_message); ogs_assert(s6a_message);
@ -98,12 +98,12 @@ uint8_t mme_s6a_handle_ula(
mme_session_remove_all(mme_ue); mme_session_remove_all(mme_ue);
rv = mme_ue_session_from_slice_data(mme_ue, slice_data); num_of_session = mme_ue_session_from_slice_data(mme_ue, slice_data);
if (rv == 0) { if (num_of_session == 0) {
ogs_error("No Session"); ogs_error("No Session");
return OGS_NAS_EMM_CAUSE_SEVERE_NETWORK_FAILURE; return OGS_NAS_EMM_CAUSE_SEVERE_NETWORK_FAILURE;
} }
mme_ue->num_of_session = rv; mme_ue->num_of_session = num_of_session;
mme_ue->context_identifier = slice_data->context_identifier; mme_ue->context_identifier = slice_data->context_identifier;
@ -132,7 +132,7 @@ uint8_t mme_s6a_handle_idr(
ogs_diam_s6a_idr_message_t *idr_message = NULL; ogs_diam_s6a_idr_message_t *idr_message = NULL;
ogs_subscription_data_t *subscription_data = NULL; ogs_subscription_data_t *subscription_data = NULL;
ogs_slice_data_t *slice_data = NULL; ogs_slice_data_t *slice_data = NULL;
int rv; int num_of_session;
ogs_assert(mme_ue); ogs_assert(mme_ue);
ogs_assert(s6a_message); ogs_assert(s6a_message);
@ -149,16 +149,18 @@ uint8_t mme_s6a_handle_idr(
ogs_assert(subscription_data->num_of_slice == 1); ogs_assert(subscription_data->num_of_slice == 1);
slice_data = &subscription_data->slice[0]; slice_data = &subscription_data->slice[0];
if (!slice_data->all_apn_config_inc) { if (slice_data->all_apn_config_inc ==
OGS_ALL_APN_CONFIGURATIONS_INCLUDED) {
mme_session_remove_all(mme_ue); mme_session_remove_all(mme_ue);
rv = mme_ue_session_from_slice_data(mme_ue, slice_data); num_of_session = mme_ue_session_from_slice_data(mme_ue, slice_data);
if (rv == 0) { if (num_of_session == 0) {
ogs_error("No Session"); ogs_error("No Session");
return OGS_ERROR; return OGS_ERROR;
} }
mme_ue->num_of_session = rv; mme_ue->num_of_session = num_of_session;
} else { } else {
ogs_error ("Partial APN-Configuration Not Supported in IDR."); ogs_error ("[%d] Partial APN-Configuration Not Supported in IDR.",
slice_data->all_apn_config_inc);
return OGS_ERROR; return OGS_ERROR;
} }