aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2019-12-26 16:56:14 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2020-05-11 00:46:57 +0200
commit8889fcf4da9884e01f963e387e9ab1923d06c22b (patch)
tree654e528c83e5509e4374e4ebef9335df0a53e61f
parentc6548bbaab1a8767fdfe1d337faf061e9523f0ba (diff)
gsup: send RAT type on LUneels/pending
At 36c3, osmo-hlr was run with a patch that records the RAN type of attached subscribers. Even though this is not in osmo-hlr master, it is nice information to send along. Note that the "Supported RAT Types" IE is used to send the actually attached RAT. Could be a reason to not merge this to master as-is. Change-Id: I5dbe610738aed7ea1edf6b33543b1c03818cc274
-rw-r--r--src/sgsn/gprs_subscriber.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/sgsn/gprs_subscriber.c b/src/sgsn/gprs_subscriber.c
index 484c7ef4..c23b332f 100644
--- a/src/sgsn/gprs_subscriber.c
+++ b/src/sgsn/gprs_subscriber.c
@@ -812,7 +812,7 @@ static int gprs_subscr_query_auth_info(struct gprs_subscr *subscr,
return gprs_subscr_tx_gsup_message(subscr, &gsup_msg);
}
-int gprs_subscr_location_update(struct gprs_subscr *subscr)
+int gprs_subscr_location_update(struct gprs_subscr *subscr, enum sgsn_ran_type ran_type)
{
struct osmo_gsup_message gsup_msg = {0};
@@ -820,6 +820,18 @@ int gprs_subscr_location_update(struct gprs_subscr *subscr)
"subscriber data is not available\n");
gsup_msg.message_type = OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST;
+
+ switch (ran_type) {
+ case MM_CTX_T_GERAN_Gb:
+ gsup_msg.current_rat_type = OSMO_RAT_GERAN_A;
+ break;
+ case MM_CTX_T_UTRAN_Iu:
+ gsup_msg.current_rat_type = OSMO_RAT_UTRAN_IU;
+ break;
+ default:
+ break;
+ }
+
return gprs_subscr_tx_gsup_message(subscr, &gsup_msg);
}
@@ -884,7 +896,7 @@ int gprs_subscr_request_update_location(struct sgsn_mm_ctx *mmctx)
subscr->flags |= GPRS_SUBSCRIBER_UPDATE_LOCATION_PENDING;
- rc = gprs_subscr_location_update(subscr);
+ rc = gprs_subscr_location_update(subscr, mmctx->ran_type);
gprs_subscr_put(subscr);
return rc;
}