fixeria has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmocom-bb/+/34139 )


Change subject: trxcon: properly handle PDCH slotmask in UL/DL TBF CFG.Req
......................................................................

trxcon: properly handle PDCH slotmask in UL/DL TBF CFG.Req

Change-Id: I4c2ff25217fba0b6b4704f023071b86ed9afb55c
Related: OS#5500
---
M src/host/trxcon/src/trxcon_fsm.c
1 file changed, 36 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/39/34139/1

diff --git a/src/host/trxcon/src/trxcon_fsm.c b/src/host/trxcon/src/trxcon_fsm.c
index eabab3d..702d62c 100644
--- a/src/host/trxcon/src/trxcon_fsm.c
+++ b/src/host/trxcon/src/trxcon_fsm.c
@@ -536,6 +536,30 @@
        trxcon->gprs = NULL;
 }

+static void handle_tbf_cfg_req(struct trxcon_inst *trxcon)
+{
+       const struct l1gprs_state *gprs = trxcon->gprs;
+       struct l1sched_state *sched = trxcon->sched;
+
+       for (unsigned int tn = 0; tn < ARRAY_SIZE(gprs->pdch); tn++) {
+               const struct l1gprs_pdch *pdch = &gprs->pdch[tn];
+
+               if ((pdch->ul_tbf_count + pdch->dl_tbf_count) > 0) {
+                       if (sched->ts[tn] != NULL) /* already enabled */
+                               continue;
+                       if (l1sched_configure_ts(sched, tn, GSM_PCHAN_PDCH) != 
0)
+                               continue;
+                       OSMO_ASSERT(sched->ts[tn] != NULL);
+
+                       l1sched_activate_lchan(sched->ts[tn], L1SCHED_PDTCH);
+                       l1sched_activate_lchan(sched->ts[tn], L1SCHED_PTCCH);
+                       /* FIXME: set TSC for both lchans */
+               } else {
+                       l1sched_del_ts(sched, tn);
+               }
+       }
+}
+
 static void trxcon_st_packet_data_action(struct osmo_fsm_inst *fi,
                                         uint32_t event, void *data)
 {
@@ -550,9 +574,11 @@
                break;
        case TRXCON_EV_GPRS_UL_TBF_CFG_REQ:
                l1gprs_handle_ul_tbf_cfg_req(trxcon->gprs, (struct msgb *)data);
+               handle_tbf_cfg_req(trxcon);
                break;
        case TRXCON_EV_GPRS_DL_TBF_CFG_REQ:
                l1gprs_handle_dl_tbf_cfg_req(trxcon->gprs, (struct msgb *)data);
+               handle_tbf_cfg_req(trxcon);
                break;
        case TRXCON_EV_GPRS_UL_BLOCK_REQ:
        {

--
To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/34139
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Change-Id: I4c2ff25217fba0b6b4704f023071b86ed9afb55c
Gerrit-Change-Number: 34139
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <[email protected]>
Gerrit-MessageType: newchange

Reply via email to