forked from acouzens/open5gs
Follow-on up #1794
This commit is contained in:
parent
1f2a8678ed
commit
c537166d37
|
@ -651,6 +651,9 @@ typedef struct ogs_slice_data_s {
|
|||
bool default_indicator;
|
||||
|
||||
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;
|
||||
|
||||
int num_of_session;
|
||||
|
|
|
@ -1190,7 +1190,7 @@ int hss_db_poll_change_stream(void)
|
|||
|
||||
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;
|
||||
uint32_t length = 0;
|
||||
|
|
|
@ -458,7 +458,7 @@ static int hss_s6a_avp_add_subscription_data(
|
|||
ogs_diam_s6a_all_apn_configuration_included_indicator, 0,
|
||||
&all_apn_configuration_included_indicator);
|
||||
ogs_assert(ret == 0);
|
||||
val.i32 = 0;
|
||||
val.i32 = OGS_ALL_APN_CONFIGURATIONS_INCLUDED;
|
||||
ret = fd_msg_avp_setvalue(
|
||||
all_apn_configuration_included_indicator, &val);
|
||||
ogs_assert(ret == 0);
|
||||
|
|
|
@ -77,7 +77,7 @@ uint8_t mme_s6a_handle_ula(
|
|||
ogs_diam_s6a_ula_message_t *ula_message = NULL;
|
||||
ogs_subscription_data_t *subscription_data = NULL;
|
||||
ogs_slice_data_t *slice_data = NULL;
|
||||
int rv;
|
||||
int rv, num_of_session;
|
||||
|
||||
ogs_assert(mme_ue);
|
||||
ogs_assert(s6a_message);
|
||||
|
@ -98,12 +98,12 @@ uint8_t mme_s6a_handle_ula(
|
|||
|
||||
mme_session_remove_all(mme_ue);
|
||||
|
||||
rv = mme_ue_session_from_slice_data(mme_ue, slice_data);
|
||||
if (rv == 0) {
|
||||
num_of_session = mme_ue_session_from_slice_data(mme_ue, slice_data);
|
||||
if (num_of_session == 0) {
|
||||
ogs_error("No Session");
|
||||
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;
|
||||
|
||||
|
@ -132,7 +132,7 @@ uint8_t mme_s6a_handle_idr(
|
|||
ogs_diam_s6a_idr_message_t *idr_message = NULL;
|
||||
ogs_subscription_data_t *subscription_data = NULL;
|
||||
ogs_slice_data_t *slice_data = NULL;
|
||||
int rv;
|
||||
int num_of_session;
|
||||
|
||||
ogs_assert(mme_ue);
|
||||
ogs_assert(s6a_message);
|
||||
|
@ -149,16 +149,18 @@ uint8_t mme_s6a_handle_idr(
|
|||
ogs_assert(subscription_data->num_of_slice == 1);
|
||||
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);
|
||||
rv = mme_ue_session_from_slice_data(mme_ue, slice_data);
|
||||
if (rv == 0) {
|
||||
num_of_session = mme_ue_session_from_slice_data(mme_ue, slice_data);
|
||||
if (num_of_session == 0) {
|
||||
ogs_error("No Session");
|
||||
return OGS_ERROR;
|
||||
}
|
||||
mme_ue->num_of_session = rv;
|
||||
mme_ue->num_of_session = num_of_session;
|
||||
} 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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue