tbf: Make the tlli "private" and update the updating code

Now all updates to the tlli/tlli_valid are in one place. If we
implement the policy to update the matching/linked TBF we can
now to do it in a single place. Add a todo item for that as I
am waiting for feedback from the mailinglist.
diff --git a/src/tbf.cpp b/src/tbf.cpp
index 143cdcd..9c61ca1 100644
--- a/src/tbf.cpp
+++ b/src/tbf.cpp
@@ -195,8 +195,8 @@
 		/* FIXME: send reject */
 		return -EBUSY;
 	}
-	tbf->tlli = tlli;
-	tbf->tlli_valid = 1;
+	tbf->m_tlli = tlli;
+	tbf->m_tlli_valid = 1;
 	tbf->ta = ta;
 
 	LOGP(DRLCMAC, LOGL_DEBUG, "%s [DOWNLINK] START\n", tbf_name(tbf));
@@ -262,8 +262,8 @@
 		/* FIXME: send reject */
 		return NULL;
 	}
-	tbf->tlli = tlli;
-	tbf->tlli_valid = 1; /* no contention resolution */
+	tbf->m_tlli = tlli;
+	tbf->m_tlli_valid = 1; /* no contention resolution */
 	tbf->dir.ul.contention_resolution_done = 1;
 	tbf->ta = ta; /* use current TA */
 	tbf_new_state(tbf, GPRS_RLCMAC_ASSIGN);
@@ -355,7 +355,7 @@
 		return -EINVAL;
 	}
 
-	ul_tbf = bts->tbf_by_tlli(tlli, GPRS_RLCMAC_UL_TBF);
+	ul_tbf = bts->tbf_by_tlli(m_tlli, GPRS_RLCMAC_UL_TBF);
 
 	tbf_unlink_pdch(this);
 	rc = bts_data->alloc_algorithm(bts_data, ul_tbf, this, bts_data->alloc_algorithm_curst, 0);
@@ -727,7 +727,7 @@
 			frames = 0xff;
 		if (octets > 0xffffff)
 			octets = 0xffffff;
-		bssgp_tx_llc_discarded(bctx, tlli, frames, octets);
+		bssgp_tx_llc_discarded(bctx, m_tlli, frames, octets);
 	}
 
 	return msg;
@@ -1264,7 +1264,7 @@
 			return NULL;
 		}
 		#warning "THIS should probably go over the IMSI too"
-		new_tbf = bts->tbf_by_tlli(tlli, GPRS_RLCMAC_DL_TBF);
+		new_tbf = bts->tbf_by_tlli(m_tlli, GPRS_RLCMAC_DL_TBF);
 	} else
 		new_tbf = this;
 	if (!new_tbf) {
@@ -1285,7 +1285,7 @@
 	}
 	bitvec_unhex(ass_vec,
 		"2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b");
-	LOGP(DRLCMAC, LOGL_INFO, "TBF: START TFI: %u TLLI: 0x%08x Packet Downlink Assignment (PACCH)\n", new_tbf->tfi, new_tbf->tlli);
+	LOGP(DRLCMAC, LOGL_INFO, "%s  start Packet Downlink Assignment (PACCH)\n", tbf_name(new_tbf));
 	RlcMacDownlink_t * mac_control_block = (RlcMacDownlink_t *)talloc_zero(tall_pcu_ctx, RlcMacDownlink_t);
 	Encoding::write_packet_downlink_assignment(mac_control_block, tfi,
 		(direction == GPRS_RLCMAC_DL_TBF), new_tbf,
@@ -1337,7 +1337,7 @@
 	/* on down TBF we get the uplink TBF to be assigned. */
 #warning "Probably want to find by IMSI too"
 	if (direction == GPRS_RLCMAC_DL_TBF)
-		new_tbf = bts->tbf_by_tlli(tlli, GPRS_RLCMAC_UL_TBF);
+		new_tbf = bts->tbf_by_tlli(m_tlli, GPRS_RLCMAC_UL_TBF);
 	else
 		new_tbf = this;
 
@@ -1352,7 +1352,7 @@
 	msg = msgb_alloc(23, "rlcmac_ul_ass");
 	if (!msg)
 		return NULL;
-	LOGP(DRLCMAC, LOGL_INFO, "TBF: START TFI: %u TLLI: 0x%08x Packet Uplink Assignment (PACCH)\n", new_tbf->tfi, new_tbf->tlli);
+	LOGP(DRLCMAC, LOGL_INFO, "%ss start Packet Uplink Assignment (PACCH)\n", tbf_name(new_tbf));
 	bitvec *ass_vec = bitvec_alloc(23);
 	if (!ass_vec) {
 		msgb_free(msg);
@@ -1361,8 +1361,8 @@
 	bitvec_unhex(ass_vec,
 		"2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b");
 	Encoding::write_packet_uplink_assignment(bts_data(), ass_vec, tfi,
-		(direction == GPRS_RLCMAC_DL_TBF), tlli,
-		tlli_valid, new_tbf, POLLING_ASSIGNMENT_UL, bts_data()->alpha,
+		(direction == GPRS_RLCMAC_DL_TBF), m_tlli,
+		m_tlli_valid, new_tbf, POLLING_ASSIGNMENT_UL, bts_data()->alpha,
 		bts_data()->gamma, -1);
 	bitvec_pack(ass_vec, msgb_put(msg, 23));
 	RlcMacDownlink_t * mac_control_block = (RlcMacDownlink_t *)talloc_zero(tall_pcu_ctx, RlcMacDownlink_t);
@@ -1607,11 +1607,27 @@
 	}
 }
 
+void gprs_rlcmac_tbf::tlli_mark_valid()
+{
+	m_tlli_valid = true;
+}
+
+void gprs_rlcmac_tbf::update_tlli(uint32_t tlli)
+{
+	if (tlli == m_tlli)
+		return;
+
+#warning "TODO.. find the DL/UL opposite and update the TLLI too"
+	LOGP(DRLCMAC, LOGL_NOTICE, "%s changing tlli to TLLI=0x%08x\n",
+		tbf_name(this), tlli);
+	m_tlli = tlli;
+}
+
 const char *tbf_name(gprs_rlcmac_tbf *tbf)
 {
 	static char buf[40];
 	snprintf(buf, sizeof(buf), "TBF(TFI=%d TLLI=0x%08x DIR=%s)",
-			tbf->tfi, tbf->tlli,
+			tbf->tfi, tbf->m_tlli,
 			tbf->direction == GPRS_RLCMAC_UL_TBF ? "UL" : "DL");
 	buf[sizeof(buf) - 1] = '\0';
 	return buf;