<p>pespin <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/22190">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  lynxis lazus: Looks good to me, approved
  laforge: Looks good to me, but someone else must approve

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Move ws_* fields from BTS to PCU<br><br>Change-Id: I997bc52f0d924c8f2a0b1d6cf23af98828ad4258<br>---<br>M src/bts.cpp<br>M src/bts.h<br>M src/gprs_pcu.c<br>M src/gprs_pcu.h<br>M src/pcu_vty.c<br>M src/tbf.cpp<br>M src/tbf_dl.cpp<br>M src/tbf_ul.cpp<br>M tests/tbf/TbfTest.cpp<br>9 files changed, 19 insertions(+), 23 deletions(-)<br><br></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 9f987ff..450c04e 100644</span><br><span>--- a/src/bts.cpp</span><br><span>+++ b/src/bts.cpp</span><br><span>@@ -201,10 +201,6 @@</span><br><span>      bts->n3105 = 8;</span><br><span>   bts->si13_is_set = false;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        /* TODO: increase them when CRBB decoding is implemented */</span><br><span style="color: hsl(0, 100%, 40%);">-     bts->ws_base = 64;</span><br><span style="color: hsl(0, 100%, 40%);">-   bts->ws_pdch = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>         bts->llc_codel_interval_msec = LLC_CODEL_USE_DEFAULT;</span><br><span>     bts->llc_idle_ack_csec = 10;</span><br><span> </span><br><span>diff --git a/src/bts.h b/src/bts.h</span><br><span>index db5f3e8..635c3c7 100644</span><br><span>--- a/src/bts.h</span><br><span>+++ b/src/bts.h</span><br><span>@@ -102,8 +102,6 @@</span><br><span> </span><br><span>       uint8_t si13[GSM_MACBLOCK_LEN];</span><br><span>      bool si13_is_set;</span><br><span style="color: hsl(0, 100%, 40%);">-       uint16_t ws_base;</span><br><span style="color: hsl(0, 100%, 40%);">-       uint16_t ws_pdch; /* increase WS by this value per PDCH */</span><br><span> </span><br><span>       /* State for dynamic algorithm selection */</span><br><span>  int multislot_disabled;</span><br><span>diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c</span><br><span>index 209fca6..18c5568 100644</span><br><span>--- a/src/gprs_pcu.c</span><br><span>+++ b/src/gprs_pcu.c</span><br><span>@@ -91,6 +91,9 @@</span><br><span>     pcu->vty.mcs_lqual_ranges[8].low = 23;</span><br><span>    pcu->vty.mcs_lqual_ranges[8].high = 256;</span><br><span>  pcu->vty.ns_dialect = NS2_DIALECT_IPACCESS;</span><br><span style="color: hsl(120, 100%, 40%);">+        /* TODO: increase them when CRBB decoding is implemented */</span><br><span style="color: hsl(120, 100%, 40%);">+   pcu->vty.ws_base = 64;</span><br><span style="color: hsl(120, 100%, 40%);">+     pcu->vty.ws_pdch = 0;</span><br><span> </span><br><span>         pcu->T_defs = T_defs_pcu;</span><br><span>         osmo_tdefs_reset(pcu->T_defs);</span><br><span>diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h</span><br><span>index 87c8cdf..b4e7c13 100644</span><br><span>--- a/src/gprs_pcu.h</span><br><span>+++ b/src/gprs_pcu.h</span><br><span>@@ -95,6 +95,8 @@</span><br><span>           struct {int16_t low; int16_t high; } cs_lqual_ranges[MAX_GPRS_CS];</span><br><span>           struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_EDGE_MCS];</span><br><span>                 enum gprs_ns2_dialect ns_dialect; /* Are we talking Gb with IP-SNS (true) or classic Gb? */</span><br><span style="color: hsl(120, 100%, 40%);">+           uint16_t ws_base;</span><br><span style="color: hsl(120, 100%, 40%);">+             uint16_t ws_pdch; /* increase WS by this value per PDCH */</span><br><span>   } vty;</span><br><span> </span><br><span>   struct gsmtap_inst *gsmtap;</span><br><span>diff --git a/src/pcu_vty.c b/src/pcu_vty.c</span><br><span>index d107548..5e9da45 100644</span><br><span>--- a/src/pcu_vty.c</span><br><span>+++ b/src/pcu_vty.c</span><br><span>@@ -195,7 +195,7 @@</span><br><span>                           the_pcu->vty.max_mcs_ul, VTY_NEWLINE);</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   vty_out(vty, " window-size %d %d%s", bts->ws_base, bts->ws_pdch,</span><br><span style="color: hsl(120, 100%, 40%);">+      vty_out(vty, " window-size %d %d%s", the_pcu->vty.ws_base, the_pcu->vty.ws_pdch,</span><br><span>             VTY_NEWLINE);</span><br><span> </span><br><span>    if (the_pcu->vty.dl_arq_type == EGPRS_ARQ2)</span><br><span>@@ -557,13 +557,12 @@</span><br><span>             "Base value (b)\n"</span><br><span>         "Factor for number of PDCH (f)")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-   struct gprs_rlcmac_bts *bts = bts_main_data();</span><br><span>       uint16_t b = atoi(argv[0]);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- bts->ws_base = b;</span><br><span style="color: hsl(120, 100%, 40%);">+  the_pcu->vty.ws_base = b;</span><br><span>         if (argc > 1) {</span><br><span>           uint16_t f = atoi(argv[1]);</span><br><span style="color: hsl(0, 100%, 40%);">-             bts->ws_pdch = f;</span><br><span style="color: hsl(120, 100%, 40%);">+          the_pcu->vty.ws_pdch = f;</span><br><span>         }</span><br><span> </span><br><span>        return CMD_SUCCESS;</span><br><span>diff --git a/src/tbf.cpp b/src/tbf.cpp</span><br><span>index eb043e5..43c8cbf 100644</span><br><span>--- a/src/tbf.cpp</span><br><span>+++ b/src/tbf.cpp</span><br><span>@@ -321,7 +321,7 @@</span><br><span>   uint8_t num_pdch = pcu_bitcount(slots);</span><br><span> </span><br><span>  return OSMO_MIN((num_pdch != 1) ? (128 * num_pdch) : 192,</span><br><span style="color: hsl(0, 100%, 40%);">-                       OSMO_MAX(64, (bts_data->ws_base + num_pdch * bts_data->ws_pdch) / 32 * 32));</span><br><span style="color: hsl(120, 100%, 40%);">+                    OSMO_MAX(64, (the_pcu->vty.ws_base + num_pdch * the_pcu->vty.ws_pdch) / 32 * 32));</span><br><span> }</span><br><span> </span><br><span> int gprs_rlcmac_tbf::update()</span><br><span>diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp</span><br><span>index 024a5f3..653db14 100644</span><br><span>--- a/src/tbf_dl.cpp</span><br><span>+++ b/src/tbf_dl.cpp</span><br><span>@@ -1494,7 +1494,7 @@</span><br><span>      uint16_t ws = egprs_window_size(b, dl_slots());</span><br><span> </span><br><span>  LOGPTBFDL(this, LOGL_INFO, "setting EGPRS DL window size to %u, base(%u) slots(%u) ws_pdch(%u)\n",</span><br><span style="color: hsl(0, 100%, 40%);">-              ws, b->ws_base, pcu_bitcount(dl_slots()), b->ws_pdch);</span><br><span style="color: hsl(120, 100%, 40%);">+                  ws, bts->pcu->vty.ws_base, pcu_bitcount(dl_slots()), bts->pcu->vty.ws_pdch);</span><br><span>   m_window.set_ws(ws);</span><br><span> }</span><br><span> </span><br><span>diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp</span><br><span>index f8c860c..1f3cb01 100644</span><br><span>--- a/src/tbf_ul.cpp</span><br><span>+++ b/src/tbf_ul.cpp</span><br><span>@@ -764,7 +764,7 @@</span><br><span>     const struct gprs_rlcmac_bts *b = bts->bts_data();</span><br><span>        uint16_t ws = egprs_window_size(b, ul_slots());</span><br><span>      LOGPTBFUL(this, LOGL_INFO, "setting EGPRS UL window size to %u, base(%u) slots(%u) ws_pdch(%u)\n",</span><br><span style="color: hsl(0, 100%, 40%);">-              ws, b->ws_base, pcu_bitcount(ul_slots()), b->ws_pdch);</span><br><span style="color: hsl(120, 100%, 40%);">+                  ws, bts->pcu->vty.ws_base, pcu_bitcount(ul_slots()), bts->pcu->vty.ws_pdch);</span><br><span>   m_window.set_ws(ws);</span><br><span> }</span><br><span> </span><br><span>diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp</span><br><span>index 66e344e..1b85201 100644</span><br><span>--- a/tests/tbf/TbfTest.cpp</span><br><span>+++ b/tests/tbf/TbfTest.cpp</span><br><span>@@ -1749,7 +1749,6 @@</span><br><span>       uint32_t tlli = 0xf1223344;</span><br><span>  const char *imsi = "0011223344";</span><br><span>   uint8_t ms_class = 1;</span><br><span style="color: hsl(0, 100%, 40%);">-   gprs_rlcmac_bts *bts;</span><br><span>        uint8_t egprs_ms_class = 1;</span><br><span>  gprs_rlcmac_ul_tbf *ul_tbf;</span><br><span>  uint8_t test_data[256];</span><br><span>@@ -1760,9 +1759,8 @@</span><br><span> </span><br><span>  setup_bts(the_bts, ts_no, 4);</span><br><span>        the_bts->bts_data()->initial_mcs_dl = 9;</span><br><span style="color: hsl(0, 100%, 40%);">-  bts = the_bts->bts_data();</span><br><span style="color: hsl(0, 100%, 40%);">-   bts->ws_base = 128;</span><br><span style="color: hsl(0, 100%, 40%);">-  bts->ws_pdch = 64;</span><br><span style="color: hsl(120, 100%, 40%);">+ the_pcu->vty.ws_base = 128;</span><br><span style="color: hsl(120, 100%, 40%);">+        the_pcu->vty.ws_pdch = 64;</span><br><span> </span><br><span>    ul_tbf = establish_ul_tbf(the_bts, ts_no, tlli, &fn, qta, ms_class, egprs_ms_class);</span><br><span>     /* Function to generate URBB with no length */</span><br><span>@@ -1782,8 +1780,8 @@</span><br><span> </span><br><span>   static_cast<gprs_rlc_ul_window *>(ul_tbf->window())->reset_state();</span><br><span>      /* Function to generate CRBB */</span><br><span style="color: hsl(0, 100%, 40%);">- bts->ws_base = 128;</span><br><span style="color: hsl(0, 100%, 40%);">-  bts->ws_pdch = 64;</span><br><span style="color: hsl(120, 100%, 40%);">+ the_pcu->vty.ws_base = 128;</span><br><span style="color: hsl(120, 100%, 40%);">+        the_pcu->vty.ws_pdch = 64;</span><br><span>        ul_tbf = establish_ul_tbf_two_phase_puan_CRBB(the_bts, ts_no, tlli, &fn,</span><br><span>                 qta, ms_class, egprs_ms_class);</span><br><span> </span><br><span>@@ -2288,8 +2286,8 @@</span><br><span> </span><br><span>      setup_bts(the_bts, ts_no);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  bts->ws_base = 128;</span><br><span style="color: hsl(0, 100%, 40%);">-  bts->ws_pdch = 64;</span><br><span style="color: hsl(120, 100%, 40%);">+ the_pcu->vty.ws_base = 128;</span><br><span style="color: hsl(120, 100%, 40%);">+        the_pcu->vty.ws_pdch = 64;</span><br><span>        the_pcu->alloc_algorithm = alloc_algorithm_b;</span><br><span>     bts->trx[0].pdch[2].enable();</span><br><span>     bts->trx[0].pdch[3].enable();</span><br><span>@@ -2336,8 +2334,8 @@</span><br><span> </span><br><span>         setup_bts(the_bts, ts_no);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  bts->ws_base = 128;</span><br><span style="color: hsl(0, 100%, 40%);">-  bts->ws_pdch = 64;</span><br><span style="color: hsl(120, 100%, 40%);">+ the_pcu->vty.ws_base = 128;</span><br><span style="color: hsl(120, 100%, 40%);">+        the_pcu->vty.ws_pdch = 64;</span><br><span>        the_pcu->alloc_algorithm = alloc_algorithm_b;</span><br><span>     bts->trx[0].pdch[2].enable();</span><br><span>     bts->trx[0].pdch[3].enable();</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/22190">change 22190</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/+/22190"/><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: I997bc52f0d924c8f2a0b1d6cf23af98828ad4258 </div>
<div style="display:none"> Gerrit-Change-Number: 22190 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: lynxis lazus <lynxis@fe80.eu> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>