Cancel in old VLR/SGSN, if new VLR/SGSN differs from old
There is some commented out code in hlr.c, which should cancel the subscriber in the old VLR/SGSN if the subscriber did a location update from a different VLR/SGSN:
The current vlr_number/sgsn_number should be luop->peer, and lu_op_tx_cancel_old() in luop.c needs these changes:
- //gsup.cause = FIXME; - //gsup.cancel_type = FIXME; + gsup.cn_domain = luop->is_ps ? OSMO_GSUP_CN_DOMAIN_PS : OSMO_GSUP_CN_DOMAIN_CS; + gsup.cancel_type = OSMO_GSUP_CANCEL_TYPE_WITHDRAW;
However, with the current code, lu_op_tx_cancel_old() would send the cancel to the same peer that initiated the location update. But it must be sent to the old peer!
I'm just writing down what I found while looking into something similar for IMSI pseudonymization (#4476).