gbproxy: Explicitly convert PTMSI to TLLI

This patch modifies the new_ptmsi handling by setting its two most
significant bits before using it as TLLI.

Sponsored-by: On-Waves ehf
diff --git a/openbsc/src/gprs/gb_proxy.c b/openbsc/src/gprs/gb_proxy.c
index 7945c42..30e4c6b 100644
--- a/openbsc/src/gprs/gb_proxy.c
+++ b/openbsc/src/gprs/gb_proxy.c
@@ -1289,8 +1289,10 @@
 	}
 
 	if (parse_ctx->new_ptmsi_enc && parse_ctx->to_bss && parse_ctx->imsi) {
-		/* A new TLLI (PTMSI) has been signaled in the message */
+		/* A new PTMSI has been signaled in the message,
+		 * register new TLLI */
 		uint32_t new_ptmsi;
+		uint32_t new_tlli;
 		if (!parse_mi_tmsi(parse_ctx->new_ptmsi_enc, GSM48_TMSI_LEN,
 				   &new_ptmsi)) {
 			LOGP(DGPRS, LOGL_ERROR,
@@ -1298,9 +1300,10 @@
 			     parse_ctx->tlli);
 			return;
 		}
+		new_tlli = gprs_tmsi2tlli(new_ptmsi, TLLI_LOCAL);
 		LOGP(DGPRS, LOGL_INFO,
-		     "Got new TLLI/PTMSI %08x (current is %08x)\n",
-		     new_ptmsi, parse_ctx->tlli);
+		     "Got new TLLI/PTMSI %08x/%08x (current is %08x)\n",
+		     new_tlli, new_ptmsi, parse_ctx->tlli);
 		gbprox_register_tlli(peer, new_ptmsi,
 				     parse_ctx->imsi, parse_ctx->imsi_len);
 	} else if (parse_ctx->tlli && parse_ctx->imsi) {