mme: Subscribed-Periodic-RAU-TAU-Timer is in Subscriptio-Data

At least in version 11.8.0 Release 11 of 3GPP TS 29.272,
Subscribed-Periodic-RAU-TAU-Timer is only permitted inside
Subscription-Data.  Before this patch, the MME expects it outside, i.e.
on the "main" level of the DIAMETER AVP tree.

Closes: #238
This commit is contained in:
Harald Welte 2019-07-30 00:27:34 +02:00
parent 8dca1eacd8
commit 7915773900
1 changed files with 12 additions and 11 deletions

View File

@ -704,11 +704,23 @@ static void mme_s6a_ula_cb(void *data, struct msg **msg)
ogs_error("no_Max-Bandwidth-DL");
error++;
}
} else {
ogs_error("no_AMBR");
error++;
}
ret = fd_avp_search_avp(avp, s6a_subscribed_rau_tau_timer, &avpch1);
ogs_assert(ret == 0);
if (avp) {
ret = fd_msg_avp_hdr(avpch1, &hdr);
ogs_assert(ret == 0);
subscription_data->subscribed_rau_tau_timer = hdr->avp_value->i32;
} else {
ogs_error("no_Subscribed_RAU-TAU-Timer");
error++;
}
ret = fd_avp_search_avp(avp, s6a_apn_configuration_profile, &avpch1);
ogs_assert(ret == 0);
if (avpch1) {
@ -926,17 +938,6 @@ static void mme_s6a_ula_cb(void *data, struct msg **msg)
error++;
}
ret = fd_msg_search_avp(*msg, s6a_subscribed_rau_tau_timer, &avp);
ogs_assert(ret == 0);
if (avp) {
ret = fd_msg_avp_hdr(avp, &hdr);
ogs_assert(ret == 0);
subscription_data->subscribed_rau_tau_timer = hdr->avp_value->i32;
} else {
ogs_error("no_Subscribed_RAU-TAU-Timer");
error++;
}
if (!error) {
int rv;
e = mme_event_new(MME_EVT_S6A_MESSAGE);