Move UL allocation&assign functions to gprs_ms.c

Similar structure as what we have with DL-TBF.

Change-Id: I256aeede2a2678c9738539fb6ec4db9766fa85e4
diff --git a/src/tbf_fsm.c b/src/tbf_fsm.c
index 9118fd7..a8e7886 100644
--- a/src/tbf_fsm.c
+++ b/src/tbf_fsm.c
@@ -99,8 +99,13 @@
 	switch (event) {
 	case TBF_EV_ASSIGN_ADD_CCCH:
 		mod_ass_type(ctx, GPRS_RLCMAC_FLAG_CCCH, true);
-		tbf_fsm_state_chg(fi, tbf_direction(ctx->tbf) == GPRS_RLCMAC_DL_TBF ?
-					TBF_ST_ASSIGN : TBF_ST_FLOW);
+		if (tbf_direction(ctx->tbf) == GPRS_RLCMAC_UL_TBF) {
+			struct gprs_rlcmac_ul_tbf *ul_tbf = tbf_as_ul_tbf(ctx->tbf);
+			tbf_fsm_state_chg(fi, TBF_ST_FLOW);
+			ul_tbf_contention_resolution_start(ul_tbf);
+		} else {
+			tbf_fsm_state_chg(fi, TBF_ST_ASSIGN);
+		}
 		break;
 	case TBF_EV_ASSIGN_ADD_PACCH:
 		mod_ass_type(ctx, GPRS_RLCMAC_FLAG_PACCH, true);