ms: Support new and old TLLIs

According to the specification (GSM 04.08/24.008, 4.7.1.5) after a
new P-TMSI has been assigned, the old P-TMSI must be kept basically
until it has been used by both sides. Since the TLLI will be derived
from the P-TMSI, the old TLLI must also be kept until the new TLLI
has been used by both MS and SGSN.

This commit modifies the TLLI handling of GprsMs accordingly.
set_tlli() is only used with TLLIs derived from MS messages,
confirm_tlli() is used with TLLIs derived from messages received from
the SGSN. tlli() returns the value set by the MS. check_tlli()
matches each of the TLLI used by either MS or SGSN as well as the old
TLLI until it has been confirmed.

Sponsored-by: On-Waves ehf
diff --git a/src/tbf.h b/src/tbf.h
index 43b0a27..a2f5bf7 100644
--- a/src/tbf.h
+++ b/src/tbf.h
@@ -328,7 +328,8 @@
 
 	/* dispatch Unitdata.DL messages */
 	static int handle(struct gprs_rlcmac_bts *bts,
-		const uint32_t tlli, const char *imsi, const uint8_t ms_class,
+		const uint32_t tlli, const uint32_t old_tlli,
+		const char *imsi, const uint8_t ms_class,
 		const uint16_t delay_csec, const uint8_t *data, const uint16_t len);
 
 	int append_data(const uint8_t ms_class,