<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/22179">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Move T_defs_pcu from BTS to PCU object<br><br>Change-Id: I0cac5c12dff2e90b52d00383a00b4b94a9603a0a<br>---<br>M src/bts.cpp<br>M src/bts.h<br>M src/gprs_bssgp_pcu.cpp<br>M src/gprs_pcu.c<br>M src/gprs_pcu.h<br>M src/gprs_rlcmac_sched.cpp<br>M src/pcu_vty.c<br>M src/tbf.cpp<br>M src/tbf_dl.cpp<br>M tests/tbf/TbfTest.cpp<br>10 files changed, 41 insertions(+), 53 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/79/22179/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/bts.cpp b/src/bts.cpp</span><br><span>index 3c4e676..ac58f48 100644</span><br><span>--- a/src/bts.cpp</span><br><span>+++ b/src/bts.cpp</span><br><span>@@ -76,17 +76,6 @@</span><br><span>   { .T=3195, .default_val=5,   .unit=OSMO_TDEF_S,  .desc="Reuse of TFI(s) upon no response from the MS (radio failure or cell change) for TBF/MBMS radio bearer (s)", .val=0 },</span><br><span>      { .T=0, .default_val=0, .unit=OSMO_TDEF_S, .desc=NULL, .val=0 } /* empty item at the end */</span><br><span> };</span><br><span style="color: hsl(0, 100%, 40%);">-static struct osmo_tdef T_defs_pcu[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-       { .T=1,     .default_val=30,  .unit=OSMO_TDEF_S,  .desc="BSSGP (un)blocking procedures timer (s)",  .val=0 },</span><br><span style="color: hsl(0, 100%, 40%);">- { .T=2,     .default_val=30,  .unit=OSMO_TDEF_S,  .desc="BSSGP reset procedure timer (s)",          .val=0 },</span><br><span style="color: hsl(0, 100%, 40%);">- { .T=3190,  .default_val=5,   .unit=OSMO_TDEF_S,  .desc="Return to packet idle mode after Packet DL Assignment on CCCH (s)", .val=0},</span><br><span style="color: hsl(0, 100%, 40%);">- { .T=-2000, .default_val=2,   .unit=OSMO_TDEF_MS, .desc="Tbf reject for PRR timer (ms)",            .val=0 },</span><br><span style="color: hsl(0, 100%, 40%);">- { .T=-2001, .default_val=2,   .unit=OSMO_TDEF_S,  .desc="PACCH assignment timer (s)",               .val=0 },</span><br><span style="color: hsl(0, 100%, 40%);">- { .T=-2002, .default_val=200, .unit=OSMO_TDEF_MS, .desc="Waiting after IMM.ASS confirm timer (ms)", .val=0 },</span><br><span style="color: hsl(0, 100%, 40%);">- { .T=-2030, .default_val=60,  .unit=OSMO_TDEF_S,  .desc="Time to keep an idle MS object alive (s)", .val=0 }, /* slightly above T3314 (default 44s, 24.008, 11.2.2) */</span><br><span style="color: hsl(0, 100%, 40%);">-        { .T=-2031, .default_val=2000, .unit=OSMO_TDEF_MS, .desc="Time to keep an idle DL TBF alive (ms)",  .val=0 },</span><br><span style="color: hsl(0, 100%, 40%);">- { .T=0, .default_val=0, .unit=OSMO_TDEF_S, .desc=NULL, .val=0 } /* empty item at the end */</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span> </span><br><span> /**</span><br><span>  * For gcc-4.4 compat do not use extended initializer list but keep the</span><br><span>@@ -267,9 +256,7 @@</span><br><span>    bts->bts = bts_obj;</span><br><span>       bts->dl_tbf_preemptive_retransmission = true;</span><br><span>     bts->T_defs_bts = T_defs_bts;</span><br><span style="color: hsl(0, 100%, 40%);">-        bts->T_defs_pcu = T_defs_pcu;</span><br><span>     osmo_tdefs_reset(bts->T_defs_bts);</span><br><span style="color: hsl(0, 100%, 40%);">-   osmo_tdefs_reset(bts->T_defs_pcu);</span><br><span> </span><br><span>    /* initialize back pointers */</span><br><span>       for (size_t trx_no = 0; trx_no < ARRAY_SIZE(bts->trx); ++trx_no) {</span><br><span>@@ -1135,7 +1122,7 @@</span><br><span>     GprsMs *ms;</span><br><span>  ms = ms_store().create_ms();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        ms_set_timeout(ms, osmo_tdef_get(m_bts.T_defs_pcu, -2030, OSMO_TDEF_S, -1));</span><br><span style="color: hsl(120, 100%, 40%);">+  ms_set_timeout(ms, osmo_tdef_get(pcu->T_defs, -2030, OSMO_TDEF_S, -1));</span><br><span>   ms_set_ms_class(ms, ms_class);</span><br><span>       ms_set_egprs_ms_class(ms, egprs_ms_class);</span><br><span> </span><br><span>diff --git a/src/bts.h b/src/bts.h</span><br><span>index e4e9e5c..b814b62 100644</span><br><span>--- a/src/bts.h</span><br><span>+++ b/src/bts.h</span><br><span>@@ -101,7 +101,6 @@</span><br><span>        uint32_t llc_codel_interval_msec; /* 0=disabled, -1=use default interval */</span><br><span>  /* Timer defintions */</span><br><span>       struct osmo_tdef *T_defs_bts; /* timers controlled by BTS, received through PCUIF */</span><br><span style="color: hsl(0, 100%, 40%);">-    struct osmo_tdef *T_defs_pcu; /* timers controlled by PCU */</span><br><span>         uint8_t n3101;</span><br><span>       uint8_t n3103;</span><br><span>       uint8_t n3105;</span><br><span>diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp</span><br><span>index 2c9073b..cfaee73 100644</span><br><span>--- a/src/gprs_bssgp_pcu.cpp</span><br><span>+++ b/src/gprs_bssgp_pcu.cpp</span><br><span>@@ -914,7 +914,7 @@</span><br><span>    if (!the_pcu->bssgp.bvc_sig_reset) {</span><br><span>              LOGP(DBSSGP, LOGL_INFO, "Sending reset on BVCI 0\n");</span><br><span>              bssgp_tx_bvc_reset(the_pcu->bssgp.bctx, 0, BSSGP_CAUSE_OML_INTERV);</span><br><span style="color: hsl(0, 100%, 40%);">-          secs = osmo_tdef_get(the_pcu->bssgp.bts->T_defs_pcu, 2, OSMO_TDEF_S, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+               secs = osmo_tdef_get(the_pcu->T_defs, 2, OSMO_TDEF_S, -1);</span><br><span>                osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, secs, 0);</span><br><span>              return;</span><br><span>      }</span><br><span>@@ -923,7 +923,7 @@</span><br><span>              LOGP(DBSSGP, LOGL_INFO, "Sending reset on BVCI %d\n",</span><br><span>                      the_pcu->bssgp.bctx->bvci);</span><br><span>            bssgp_tx_bvc_reset(the_pcu->bssgp.bctx, the_pcu->bssgp.bctx->bvci, BSSGP_CAUSE_OML_INTERV);</span><br><span style="color: hsl(0, 100%, 40%);">-            secs = osmo_tdef_get(the_pcu->bssgp.bts->T_defs_pcu, 2, OSMO_TDEF_S, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+               secs = osmo_tdef_get(the_pcu->T_defs, 2, OSMO_TDEF_S, -1);</span><br><span>                osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, secs, 0);</span><br><span>              return;</span><br><span>      }</span><br><span>@@ -932,7 +932,7 @@</span><br><span>              LOGP(DBSSGP, LOGL_INFO, "Sending unblock on BVCI %d\n",</span><br><span>                    the_pcu->bssgp.bctx->bvci);</span><br><span>            bssgp_tx_bvc_unblock(the_pcu->bssgp.bctx);</span><br><span style="color: hsl(0, 100%, 40%);">-           secs = osmo_tdef_get(the_pcu->bssgp.bts->T_defs_pcu, 1, OSMO_TDEF_S, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+               secs = osmo_tdef_get(the_pcu->T_defs, 1, OSMO_TDEF_S, -1);</span><br><span>                osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, secs, 0);</span><br><span>              return;</span><br><span>      }</span><br><span>diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c</span><br><span>index 7fa5a2e..e08094b 100644</span><br><span>--- a/src/gprs_pcu.c</span><br><span>+++ b/src/gprs_pcu.c</span><br><span>@@ -27,6 +27,18 @@</span><br><span> </span><br><span> struct gprs_pcu *the_pcu;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static struct osmo_tdef T_defs_pcu[] = {</span><br><span style="color: hsl(120, 100%, 40%);">+    { .T=1,     .default_val=30,  .unit=OSMO_TDEF_S,  .desc="BSSGP (un)blocking procedures timer (s)",  .val=0 },</span><br><span style="color: hsl(120, 100%, 40%);">+       { .T=2,     .default_val=30,  .unit=OSMO_TDEF_S,  .desc="BSSGP reset procedure timer (s)",          .val=0 },</span><br><span style="color: hsl(120, 100%, 40%);">+       { .T=3190,  .default_val=5,   .unit=OSMO_TDEF_S,  .desc="Return to packet idle mode after Packet DL Assignment on CCCH (s)", .val=0},</span><br><span style="color: hsl(120, 100%, 40%);">+       { .T=-2000, .default_val=2,   .unit=OSMO_TDEF_MS, .desc="Tbf reject for PRR timer (ms)",            .val=0 },</span><br><span style="color: hsl(120, 100%, 40%);">+       { .T=-2001, .default_val=2,   .unit=OSMO_TDEF_S,  .desc="PACCH assignment timer (s)",               .val=0 },</span><br><span style="color: hsl(120, 100%, 40%);">+       { .T=-2002, .default_val=200, .unit=OSMO_TDEF_MS, .desc="Waiting after IMM.ASS confirm timer (ms)", .val=0 },</span><br><span style="color: hsl(120, 100%, 40%);">+       { .T=-2030, .default_val=60,  .unit=OSMO_TDEF_S,  .desc="Time to keep an idle MS object alive (s)", .val=0 }, /* slightly above T3314 (default 44s, 24.008, 11.2.2) */</span><br><span style="color: hsl(120, 100%, 40%);">+      { .T=-2031, .default_val=2000, .unit=OSMO_TDEF_MS, .desc="Time to keep an idle DL TBF alive (ms)",  .val=0 },</span><br><span style="color: hsl(120, 100%, 40%);">+       { .T=0, .default_val=0, .unit=OSMO_TDEF_S, .desc=NULL, .val=0 } /* empty item at the end */</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> struct gprs_pcu *gprs_pcu_alloc(void *ctx)</span><br><span> {</span><br><span>         struct gprs_pcu *pcu;</span><br><span>@@ -39,6 +51,9 @@</span><br><span>    pcu->vty.max_mcs_ul = MAX_EDGE_MCS;</span><br><span>       pcu->vty.max_mcs_dl = MAX_EDGE_MCS;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+    pcu->T_defs = T_defs_pcu;</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_tdefs_reset(pcu->T_defs);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  return pcu;</span><br><span> }</span><br><span> </span><br><span>diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h</span><br><span>index bf65fa7..9696e96 100644</span><br><span>--- a/src/gprs_pcu.h</span><br><span>+++ b/src/gprs_pcu.h</span><br><span>@@ -86,6 +86,8 @@</span><br><span>        alloc_algorithm_func_t alloc_algorithm;</span><br><span> </span><br><span>  struct gprs_bssgp_pcu bssgp;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        struct osmo_tdef *T_defs; /* timers controlled by PCU */</span><br><span> };</span><br><span> </span><br><span> </span><br><span>diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp</span><br><span>index 924a4de..b5709c9 100644</span><br><span>--- a/src/gprs_rlcmac_sched.cpp</span><br><span>+++ b/src/gprs_rlcmac_sched.cpp</span><br><span>@@ -252,8 +252,8 @@</span><br><span>                                                    uint8_t ts, uint32_t fn, int age)</span><br><span> {</span><br><span>   const gprs_rlc_dl_window *w = static_cast<gprs_rlc_dl_window *>(tbf->window());</span><br><span style="color: hsl(0, 100%, 40%);">-        unsigned long msecs_t3190 = osmo_tdef_get(bts->T_defs_pcu, 3190, OSMO_TDEF_MS, -1);</span><br><span style="color: hsl(0, 100%, 40%);">-  unsigned long dl_tbf_idle_msec = osmo_tdef_get(bts->T_defs_pcu, -2031, OSMO_TDEF_MS, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+  unsigned long msecs_t3190 = osmo_tdef_get(the_pcu->T_defs, 3190, OSMO_TDEF_MS, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+        unsigned long dl_tbf_idle_msec = osmo_tdef_get(the_pcu->T_defs, -2031, OSMO_TDEF_MS, -1);</span><br><span>         int age_thresh1 = msecs_to_frames(200);</span><br><span>      int age_thresh2 = msecs_to_frames(OSMO_MIN(msecs_t3190/2, dl_tbf_idle_msec));</span><br><span> </span><br><span>diff --git a/src/pcu_vty.c b/src/pcu_vty.c</span><br><span>index b5c70c7..a2c58eb 100644</span><br><span>--- a/src/pcu_vty.c</span><br><span>+++ b/src/pcu_vty.c</span><br><span>@@ -249,7 +249,7 @@</span><br><span>     else</span><br><span>                 vty_out(vty, " gb-dialect classic%s", VTY_NEWLINE);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       osmo_tdef_vty_write(vty, bts->T_defs_pcu, " timer ");</span><br><span style="color: hsl(120, 100%, 40%);">+    osmo_tdef_vty_write(vty, the_pcu->T_defs, " timer ");</span><br><span> </span><br><span>       return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -856,9 +856,7 @@</span><br><span> {</span><br><span>  vty_out(vty, "%% 'dl-tbf-idle-time' is now deprecated: use 'timer X2031 <val>' instead%s", VTY_NEWLINE);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    struct gprs_rlcmac_bts *bts = bts_main_data();</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  if (osmo_tdef_set(bts->T_defs_pcu, -2031, atoi(argv[0]), OSMO_TDEF_MS) < 0)</span><br><span style="color: hsl(120, 100%, 40%);">+     if (osmo_tdef_set(the_pcu->T_defs, -2031, atoi(argv[0]), OSMO_TDEF_MS) < 0)</span><br><span>            return CMD_WARNING;</span><br><span>  return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -870,9 +868,7 @@</span><br><span> {</span><br><span>  vty_out(vty, "%% 'no dl-tbf-idle-time' is now deprecated: use 'timer X2031 0' instead%s", VTY_NEWLINE);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   struct gprs_rlcmac_bts *bts = bts_main_data();</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  if (osmo_tdef_set(bts->T_defs_pcu, -2031, 0, OSMO_TDEF_MS) < 0)</span><br><span style="color: hsl(120, 100%, 40%);">+ if (osmo_tdef_set(the_pcu->T_defs, -2031, 0, OSMO_TDEF_MS) < 0)</span><br><span>                return CMD_WARNING;</span><br><span>  return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -912,10 +908,7 @@</span><br><span>       MS_IDLE_TIME_STR "idle time in sec")</span><br><span> {</span><br><span>         vty_out(vty, "%% 'ms-idle-time' is now deprecated: use 'timer X2030 <val>' instead%s", VTY_NEWLINE);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    struct gprs_rlcmac_bts *bts = bts_main_data();</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  if (osmo_tdef_set(bts->T_defs_pcu, -2030, atoi(argv[0]), OSMO_TDEF_S) < 0)</span><br><span style="color: hsl(120, 100%, 40%);">+      if (osmo_tdef_set(the_pcu->T_defs, -2030, atoi(argv[0]), OSMO_TDEF_S) < 0)</span><br><span>             return CMD_WARNING;</span><br><span>  return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -926,10 +919,7 @@</span><br><span>       NO_STR MS_IDLE_TIME_STR)</span><br><span> {</span><br><span>       vty_out(vty, "%% 'no ms-idle-time' is now deprecated: use 'timer X2030 0' instead%s", VTY_NEWLINE);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   struct gprs_rlcmac_bts *bts = bts_main_data();</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  if (osmo_tdef_set(bts->T_defs_pcu, -2030, 0, OSMO_TDEF_S) < 0)</span><br><span style="color: hsl(120, 100%, 40%);">+  if (osmo_tdef_set(the_pcu->T_defs, -2030, 0, OSMO_TDEF_S) < 0)</span><br><span>                 return CMD_WARNING;</span><br><span>  return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -1138,9 +1128,8 @@</span><br><span>       SHOW_STR "Show PCU timers\n"</span><br><span>       OSMO_TDEF_VTY_DOC_T)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     struct gprs_rlcmac_bts *bts = bts_main_data();</span><br><span>       const char *T_arg = argc > 0 ? argv[0] : NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-       return osmo_tdef_vty_show_cmd(vty, bts->T_defs_pcu, T_arg, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+  return osmo_tdef_vty_show_cmd(vty, the_pcu->T_defs, T_arg, NULL);</span><br><span> }</span><br><span> </span><br><span> DEFUN_ATTR(cfg_pcu_timer, cfg_pcu_timer_cmd,</span><br><span>@@ -1149,11 +1138,10 @@</span><br><span>         OSMO_TDEF_VTY_DOC_SET,</span><br><span>       CMD_ATTR_IMMEDIATE)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     struct gprs_rlcmac_bts *bts = bts_main_data();</span><br><span>       /* If any arguments are missing, redirect to 'show' */</span><br><span>       if (argc < 2)</span><br><span>             return show_timer(self, vty, argc, argv);</span><br><span style="color: hsl(0, 100%, 40%);">-       return osmo_tdef_vty_set_cmd(vty, bts->T_defs_pcu, argv);</span><br><span style="color: hsl(120, 100%, 40%);">+  return osmo_tdef_vty_set_cmd(vty, the_pcu->T_defs, argv);</span><br><span> }</span><br><span> </span><br><span> DEFUN(show_tbf,</span><br><span>diff --git a/src/tbf.cpp b/src/tbf.cpp</span><br><span>index 02f0e3f..c42081b 100644</span><br><span>--- a/src/tbf.cpp</span><br><span>+++ b/src/tbf.cpp</span><br><span>@@ -493,7 +493,7 @@</span><br><span>      struct osmo_tdef *tdef;</span><br><span> </span><br><span>  if (!(tdef = osmo_tdef_get_entry(bts->bts_data()->T_defs_bts, T)))</span><br><span style="color: hsl(0, 100%, 40%);">-                tdef = osmo_tdef_get_entry(bts->bts_data()->T_defs_pcu, T);</span><br><span style="color: hsl(120, 100%, 40%);">+             tdef = osmo_tdef_get_entry(bts->pcu->T_defs, T);</span><br><span> </span><br><span>   if (t >= T_MAX || !tdef) {</span><br><span>                LOGPSRC(DTBF, LOGL_ERROR, file, line, "%s attempting to start unknown timer %s [%s], cur_fn=%d\n",</span><br><span>diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp</span><br><span>index 613f7b8..280e057 100644</span><br><span>--- a/src/tbf_dl.cpp</span><br><span>+++ b/src/tbf_dl.cpp</span><br><span>@@ -1365,7 +1365,7 @@</span><br><span>    int keep_time_frames;</span><br><span>        unsigned long dl_tbf_idle_msec;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     dl_tbf_idle_msec = osmo_tdef_get(bts_data()->T_defs_pcu, -2031, OSMO_TDEF_MS, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+ dl_tbf_idle_msec = osmo_tdef_get(the_pcu->T_defs, -2031, OSMO_TDEF_MS, -1);</span><br><span>       if (dl_tbf_idle_msec == 0)</span><br><span>           return false;</span><br><span> </span><br><span>diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp</span><br><span>index cff47e6..69f07aa 100644</span><br><span>--- a/tests/tbf/TbfTest.cpp</span><br><span>+++ b/tests/tbf/TbfTest.cpp</span><br><span>@@ -176,8 +176,8 @@</span><br><span>     the_pcu->alloc_algorithm = alloc_algorithm_a;</span><br><span>     bts->initial_cs_dl = cs;</span><br><span>  bts->initial_cs_ul = cs;</span><br><span style="color: hsl(0, 100%, 40%);">-     osmo_tdef_set(bts->T_defs_pcu, -2030, 0, OSMO_TDEF_S);</span><br><span style="color: hsl(0, 100%, 40%);">-       osmo_tdef_set(bts->T_defs_pcu, -2031, 0, OSMO_TDEF_S);</span><br><span style="color: hsl(120, 100%, 40%);">+     osmo_tdef_set(the_pcu->T_defs, -2030, 0, OSMO_TDEF_S);</span><br><span style="color: hsl(120, 100%, 40%);">+     osmo_tdef_set(the_pcu->T_defs, -2031, 0, OSMO_TDEF_S);</span><br><span>    trx = &bts->trx[0];</span><br><span> </span><br><span>       trx->pdch[ts_no].enable();</span><br><span>@@ -340,7 +340,6 @@</span><br><span> {</span><br><span>     the_pcu->bts = bts_alloc(the_pcu);</span><br><span>        BTS *the_bts = the_pcu->bts;</span><br><span style="color: hsl(0, 100%, 40%);">- gprs_rlcmac_bts *bts;</span><br><span>        uint8_t ts_no = 4;</span><br><span>   unsigned i;</span><br><span>  uint8_t ms_class = 45;</span><br><span>@@ -355,10 +354,8 @@</span><br><span> </span><br><span>    fprintf(stderr, "=== start %s ===\n", __func__);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  bts = the_bts->bts_data();</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>        setup_bts(the_bts, ts_no);</span><br><span style="color: hsl(0, 100%, 40%);">-      OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2031, 200, OSMO_TDEF_MS) == 0);</span><br><span style="color: hsl(120, 100%, 40%);">+        OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0);</span><br><span> </span><br><span>   dl_tbf = create_dl_tbf(the_bts, ms_class, 0, &trx_no);</span><br><span>   dl_tbf->update_ms(tlli, GPRS_RLCMAC_DL_TBF);</span><br><span>@@ -392,7 +389,7 @@</span><br><span>        RCV_ACK(false, dl_tbf, rbb); /* Receive an ACK */</span><br><span> </span><br><span>        /* Timeout (make sure fn % 52 remains valid) */</span><br><span style="color: hsl(0, 100%, 40%);">- dl_tbf_idle_msec = osmo_tdef_get(bts->T_defs_pcu, -2031, OSMO_TDEF_MS, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+        dl_tbf_idle_msec = osmo_tdef_get(the_pcu->T_defs, -2031, OSMO_TDEF_MS, -1);</span><br><span>       fn += 52 * ((msecs_to_frames(dl_tbf_idle_msec + 100) + 51)/ 52);</span><br><span>     request_dl_rlc_block(dl_tbf, &fn);</span><br><span> </span><br><span>@@ -541,7 +538,7 @@</span><br><span> </span><br><span>         setup_bts(the_bts, ts_no);</span><br><span>   /* keep the MS object 10 seconds */</span><br><span style="color: hsl(0, 100%, 40%);">-     OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2030, 10, OSMO_TDEF_S) == 0);</span><br><span style="color: hsl(120, 100%, 40%);">+  OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2030, 10, OSMO_TDEF_S) == 0);</span><br><span> </span><br><span>     gprs_bssgp_init(bts, 2234, 2234, 1, 1, false, 0, 0, 0);</span><br><span> </span><br><span>@@ -2552,7 +2549,7 @@</span><br><span>  bts = the_bts->bts_data();</span><br><span> </span><br><span>    setup_bts(the_bts, ts_no);</span><br><span style="color: hsl(0, 100%, 40%);">-      OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2031, 200, OSMO_TDEF_MS) == 0);</span><br><span style="color: hsl(120, 100%, 40%);">+        OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0);</span><br><span>       /* ARQ II */</span><br><span>         bts->dl_arq_type = EGPRS_ARQ2;</span><br><span> </span><br><span>@@ -3084,7 +3081,7 @@</span><br><span>        bts = the_bts->bts_data();</span><br><span>        bts->cs_downgrade_threshold = 0;</span><br><span>  setup_bts(the_bts, ts_no);</span><br><span style="color: hsl(0, 100%, 40%);">-      OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2031, 200, OSMO_TDEF_MS) == 0);</span><br><span style="color: hsl(120, 100%, 40%);">+        OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0);</span><br><span>       /* ARQ II */</span><br><span>         bts->dl_arq_type = EGPRS_ARQ2;</span><br><span> </span><br><span>@@ -3114,7 +3111,7 @@</span><br><span>        bts = the_bts->bts_data();</span><br><span>        bts->cs_downgrade_threshold = 0;</span><br><span>  setup_bts(the_bts, ts_no);</span><br><span style="color: hsl(0, 100%, 40%);">-      OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2031, 200, OSMO_TDEF_MS) == 0);</span><br><span style="color: hsl(120, 100%, 40%);">+        OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0);</span><br><span> </span><br><span>   /* ARQ I resegmentation support */</span><br><span>   bts->dl_arq_type = EGPRS_ARQ1;</span><br><span>@@ -3147,7 +3144,7 @@</span><br><span>    bts = the_bts->bts_data();</span><br><span> </span><br><span>    setup_bts(the_bts, ts_no);</span><br><span style="color: hsl(0, 100%, 40%);">-      OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2031, 200, OSMO_TDEF_MS) == 0);</span><br><span style="color: hsl(120, 100%, 40%);">+        OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0);</span><br><span>       /* ARQ II */</span><br><span>         bts->dl_arq_type = EGPRS_ARQ2;</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/22179">change 22179</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-pcu/+/22179"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-pcu </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I0cac5c12dff2e90b52d00383a00b4b94a9603a0a </div>
<div style="display:none"> Gerrit-Change-Number: 22179 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>