TBF: make UL/DL state internal

* add functions/macros for setting TBF's UL/DL state
* add functions for checking TBF's UL/DL state
* move pre-free check into separate function

N. B: this should not be confused with TBF-UL or TBF-DL state.

Change-Id: Idcbf5775d17b1247f2ed01788f9b0788ce66e871
Related: OS#1539
diff --git a/src/bts.cpp b/src/bts.cpp
index 873af73..f614c1a 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -1022,11 +1022,11 @@
 		tbf_free(tbf);
 		return;
 	}
-	if (tbf->dl_ass_state == GPRS_RLCMAC_DL_ASS_WAIT_ACK) {
+	if (tbf->dl_ass_state_is(GPRS_RLCMAC_DL_ASS_WAIT_ACK)) {
 		LOGPTBF(tbf, LOGL_DEBUG, "[UPLINK] DOWNLINK ASSIGNED\n");
 		/* reset N3105 */
 		tbf->n3105 = 0;
-		tbf->dl_ass_state = GPRS_RLCMAC_DL_ASS_NONE;
+		TBF_SET_ASS_STATE_DL(tbf, GPRS_RLCMAC_DL_ASS_NONE);
 
 		new_tbf = tbf->ms() ? tbf->ms()->dl_tbf() : NULL;
 		if (!new_tbf) {
@@ -1054,11 +1054,11 @@
 		tbf_assign_control_ts(new_tbf);
 		return;
 	}
-	if (tbf->ul_ass_state == GPRS_RLCMAC_UL_ASS_WAIT_ACK) {
+	if (tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_WAIT_ACK)) {
 		LOGPTBF(tbf, LOGL_DEBUG, "[DOWNLINK] UPLINK ASSIGNED\n");
 		/* reset N3105 */
 		tbf->n3105 = 0;
-		tbf->ul_ass_state = GPRS_RLCMAC_UL_ASS_NONE;
+		TBF_SET_ASS_STATE_UL(tbf, GPRS_RLCMAC_UL_ASS_NONE);
 
 		new_tbf = tbf->ms() ? tbf->ms()->ul_tbf() : NULL;
 		if (!new_tbf) {
@@ -1156,10 +1156,10 @@
 	/* schedule uplink assignment or reject */
 	if (ul_tbf) {
 		LOGP(DRLCMAC, LOGL_DEBUG, "MS requests UL TBF in ack message, so we provide one:\n");
-		tbf->ul_ass_state = GPRS_RLCMAC_UL_ASS_SEND_ASS;
+		TBF_SET_ASS_STATE_UL(tbf, GPRS_RLCMAC_UL_ASS_SEND_ASS);
 	} else {
 		LOGP(DRLCMAC, LOGL_DEBUG, "MS requests UL TBF in ack message, so we packet access reject:\n");
-		tbf->ul_ass_state = GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ;
+		TBF_SET_ASS_STATE_UL(tbf, GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ);
 	}
 }
 
@@ -1403,7 +1403,7 @@
 
 		ul_tbf->control_ts = ts_no;
 		/* schedule uplink assignment */
-		ul_tbf->ul_ass_state = GPRS_RLCMAC_UL_ASS_SEND_ASS;
+		TBF_SET_ASS_STATE_UL(ul_tbf, GPRS_RLCMAC_UL_ASS_SEND_ASS);
 
 		/* get capabilities */
 		if (ul_tbf->ms())