<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/25386">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">WIP: TA loop: Take into account UL SACCH 'Actual Timing advance' field<br><br>First step improving and reworking TA loop:<br>* Move trigger of the loop to similar place done by BS/MS Power Control<br>  Loop, that is, upon receivial of UL SACCH block, which contains<br>information about the TA used to transmit the block encode in L1SACCH<br>Header. Hence, from computed received TOA and TA used when transmitting<br>from the MS, we can infer the desired TA to be used by the MS, which<br>will send back to it later during DL SACCH block.<br><br>This new method also permits changing TA quicker, since we have more<br>confidence that the TA we request is aligned with the one used to<br>transmit, and we don't simply increment/decrement based on the value we<br>request to transmit.<br><br>Related: SYS#5371<br>Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc<br>---<br>M include/osmo-bts/ta_control.h<br>M src/common/l1sap.c<br>M src/common/measurement.c<br>M src/common/ta_control.c<br>M tests/ta_control/ta_control_test.c<br>M tests/ta_control/ta_control_test.ok<br>6 files changed, 291 insertions(+), 258 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/86/25386/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmo-bts/ta_control.h b/include/osmo-bts/ta_control.h</span><br><span>index 168f14a..bf99331 100644</span><br><span>--- a/include/osmo-bts/ta_control.h</span><br><span>+++ b/include/osmo-bts/ta_control.h</span><br><span>@@ -2,4 +2,4 @@</span><br><span> </span><br><span> #include <osmo-bts/gsm_data.h></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void lchan_ms_ta_ctrl(struct gsm_lchan *lchan);</span><br><span style="color: hsl(120, 100%, 40%);">+void lchan_ms_ta_ctrl(struct gsm_lchan *lchan, uint8_t ms_tx_ta, int16_t toa256);</span><br><span>diff --git a/src/common/l1sap.c b/src/common/l1sap.c</span><br><span>index e9d58ce..c2c651a 100644</span><br><span>--- a/src/common/l1sap.c</span><br><span>+++ b/src/common/l1sap.c</span><br><span>@@ -53,6 +53,7 @@</span><br><span> #include <osmo-bts/bts_model.h></span><br><span> #include <osmo-bts/handover.h></span><br><span> #include <osmo-bts/power_control.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmo-bts/ta_control.h></span><br><span> #include <osmo-bts/msg_utils.h></span><br><span> #include <osmo-bts/pcuif_proto.h></span><br><span> #include <osmo-bts/cbch.h></span><br><span>@@ -1632,6 +1633,7 @@</span><br><span>              lchan->meas.l1_info.ta = l1_hdr->ta;</span><br><span>           lchan->meas.flags |= LC_UL_M_F_L1_VALID;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+               lchan_ms_ta_ctrl(lchan, l1_hdr->ta, data_ind->ta_offs_256bits);</span><br><span>                lchan_ms_pwr_ctrl(lchan, l1_hdr->ms_pwr, data_ind->rssi, data_ind->lqual_cb);</span><br><span>               lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) &data[5]);</span><br><span>   } else</span><br><span>diff --git a/src/common/measurement.c b/src/common/measurement.c</span><br><span>index 4c49dc9..a4cc668 100644</span><br><span>--- a/src/common/measurement.c</span><br><span>+++ b/src/common/measurement.c</span><br><span>@@ -10,7 +10,6 @@</span><br><span> #include <osmo-bts/measurement.h></span><br><span> #include <osmo-bts/scheduler.h></span><br><span> #include <osmo-bts/rsl.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmo-bts/ta_control.h></span><br><span> </span><br><span> /* Tables as per TS 45.008 Section 8.3 */</span><br><span> static const uint8_t ts45008_83_tch_f[] = { 52, 53, 54, 55, 56, 57, 58, 59 };</span><br><span>@@ -739,11 +738,6 @@</span><br><span> </span><br><span>    lchan_meas_compute_extended(lchan);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- /* Compute new ta_req value. This has to be done here since the value</span><br><span style="color: hsl(0, 100%, 40%);">-    * in lchan->meas.num_ul_meas together with lchan->meas.ms_toa256</span><br><span style="color: hsl(0, 100%, 40%);">-  * is needed for the computation. */</span><br><span style="color: hsl(0, 100%, 40%);">-    lchan_ms_ta_ctrl(lchan);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>     lchan->meas.num_ul_meas = 0;</span><br><span> </span><br><span>  /* return 1 to indicate that the computation has been done and the next</span><br><span>diff --git a/src/common/ta_control.c b/src/common/ta_control.c</span><br><span>index ccb60e2..a89c1a6 100644</span><br><span>--- a/src/common/ta_control.c</span><br><span>+++ b/src/common/ta_control.c</span><br><span>@@ -29,22 +29,63 @@</span><br><span> #define TA_MIN 0</span><br><span> #define TA_MAX 63</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void lchan_ms_ta_ctrl(struct gsm_lchan *lchan)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-      int16_t toa256 = lchan->meas.ms_toa256;</span><br><span style="color: hsl(120, 100%, 40%);">+//TODO: make configurable over osmo-bts VTY? Pass it BSC->BTS?</span><br><span style="color: hsl(120, 100%, 40%);">+#define TA_MAX_INC_STEP 2</span><br><span style="color: hsl(120, 100%, 40%);">+#define TA_MAX_DEC_STEP 2</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- if (toa256 < -TOA256_9OPERCENT && lchan->rqd_ta > TA_MIN) {</span><br><span style="color: hsl(0, 100%, 40%);">-            LOGPLCHAN(lchan, DLOOP, LOGL_INFO,</span><br><span style="color: hsl(0, 100%, 40%);">-                        "TOA is too early (%d), now lowering TA from %d to %d\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                     toa256, lchan->rqd_ta, lchan->rqd_ta - 1);</span><br><span style="color: hsl(0, 100%, 40%);">-              lchan->rqd_ta--;</span><br><span style="color: hsl(0, 100%, 40%);">-     } else if (toa256 > TOA256_9OPERCENT && lchan->rqd_ta < TA_MAX) {</span><br><span style="color: hsl(0, 100%, 40%);">-              LOGPLCHAN(lchan, DLOOP, LOGL_INFO,</span><br><span style="color: hsl(0, 100%, 40%);">-                        "TOA is too late (%d), now raising TA from %d to %d\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                       toa256, lchan->rqd_ta, lchan->rqd_ta + 1);</span><br><span style="color: hsl(0, 100%, 40%);">-              lchan->rqd_ta++;</span><br><span style="color: hsl(0, 100%, 40%);">-     } else</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/*! compute the new "Ordered Timing Advance" communicated to the MS and store it in lchan.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param lchan logical channel for which to compute (and in which to store) new power value.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param[in] ms_tx_ta The TA used by the MS and reported in L1SACCH, see struct gsm_sacch_l1_hdr field "ta".</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param[in] toa256 Timing advance offset (in 1/256th bits) computed at Rx side</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+void lchan_ms_ta_ctrl(struct gsm_lchan *lchan, uint8_t ms_tx_ta, int16_t toa256)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+    int16_t new_ta;</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Shall we skip current block based on configured interval? */</span><br><span style="color: hsl(120, 100%, 40%);">+       //TODO: implement P_CON_INTERVAL for TA loop</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      //TODO: we could do averaging as per some config nsomewhere?</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        //TODO: Ad</span><br><span style="color: hsl(120, 100%, 40%);">+    int16_t delta_ta = toa256/256;</span><br><span style="color: hsl(120, 100%, 40%);">+        if (toa256 >= 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+         if ((toa256 - (256 * delta_ta)) > TOA256_9OPERCENT)</span><br><span style="color: hsl(120, 100%, 40%);">+                        delta_ta++;</span><br><span style="color: hsl(120, 100%, 40%);">+           if (delta_ta > TA_MAX_INC_STEP)</span><br><span style="color: hsl(120, 100%, 40%);">+                    delta_ta = TA_MAX_INC_STEP;</span><br><span style="color: hsl(120, 100%, 40%);">+   } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              if ((toa256 - (256 * delta_ta)) < -TOA256_9OPERCENT)</span><br><span style="color: hsl(120, 100%, 40%);">+                       delta_ta--;</span><br><span style="color: hsl(120, 100%, 40%);">+           if (delta_ta < TA_MAX_DEC_STEP)</span><br><span style="color: hsl(120, 100%, 40%);">+                    delta_ta = TA_MAX_DEC_STEP;</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   new_ta = ms_tx_ta + delta_ta;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Make sure new_ta is never negative: */</span><br><span style="color: hsl(120, 100%, 40%);">+     if (new_ta < TA_MIN)</span><br><span style="color: hsl(120, 100%, 40%);">+               new_ta = TA_MIN;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* Don't ask for out of range TA: */</span><br><span style="color: hsl(120, 100%, 40%);">+      if (new_ta > TA_MAX)</span><br><span style="color: hsl(120, 100%, 40%);">+               new_ta = TA_MAX;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    if (lchan->rqd_ta == (uint8_t)new_ta) {</span><br><span>           LOGPLCHAN(lchan, DLOOP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">-                       "TOA is correct (%d), keeping current TA of %d\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                    toa256, lchan->rqd_ta);</span><br><span style="color: hsl(120, 100%, 40%);">+                    "Keeping current TA at %u: TOA was %d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                   lchan->rqd_ta, toa256);</span><br><span style="color: hsl(120, 100%, 40%);">+          return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   LOGPLCHAN(lchan, DLOOP, LOGL_INFO,</span><br><span style="color: hsl(120, 100%, 40%);">+              "%s TA %u => %u: TOA was too %s (%d)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                 (uint8_t)new_ta > lchan->rqd_ta ? "Raising" : "Lowering",</span><br><span style="color: hsl(120, 100%, 40%);">+           lchan->rqd_ta, (uint8_t)new_ta,</span><br><span style="color: hsl(120, 100%, 40%);">+            (uint8_t)new_ta > lchan->rqd_ta ? "late" : "early",</span><br><span style="color: hsl(120, 100%, 40%);">+                 toa256);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  /* store the resulting new TA in the lchan */</span><br><span style="color: hsl(120, 100%, 40%);">+ lchan->rqd_ta = (uint8_t)new_ta;</span><br><span> }</span><br><span>diff --git a/tests/ta_control/ta_control_test.c b/tests/ta_control/ta_control_test.c</span><br><span>index 2e981b3..12305cb 100644</span><br><span>--- a/tests/ta_control/ta_control_test.c</span><br><span>+++ b/tests/ta_control/ta_control_test.c</span><br><span>@@ -35,9 +35,6 @@</span><br><span>    uint8_t rqd_ta_before;</span><br><span>       int16_t toa256 = toa256_start;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      /* Arbitrary value, high enough so that a computation can happen. */</span><br><span style="color: hsl(0, 100%, 40%);">-    lchan.meas.num_ul_meas = 10;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>         printf("toa256_start = %u / 256 = %u, steps = %u\n", toa256_start,</span><br><span>                toa256_start / 256, steps);</span><br><span> </span><br><span>@@ -49,8 +46,7 @@</span><br><span> </span><br><span>               rqd_ta_before = lchan.rqd_ta;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-               lchan.meas.ms_toa256 = toa256;</span><br><span style="color: hsl(0, 100%, 40%);">-          lchan_ms_ta_ctrl(&lchan);</span><br><span style="color: hsl(120, 100%, 40%);">+         lchan_ms_ta_ctrl(&lchan, rqd_ta_before, toa256);</span><br><span> </span><br><span>             rqd_ta_after = lchan.rqd_ta;</span><br><span>                 toa256 -= (rqd_ta_after - rqd_ta_before) * 256;</span><br><span>diff --git a/tests/ta_control/ta_control_test.ok b/tests/ta_control/ta_control_test.ok</span><br><span>index 8ebe5d5..79de8ad 100644</span><br><span>--- a/tests/ta_control/ta_control_test.ok</span><br><span>+++ b/tests/ta_control/ta_control_test.ok</span><br><span>@@ -2,81 +2,81 @@</span><br><span> Step #0</span><br><span>   lchan.rqd_ta (before) = 0</span><br><span>   toa256 (before) = 4096 / 256 = 16</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 1</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 3840 / 256 = 15</span><br><span style="color: hsl(0, 100%, 40%);">-Step #1</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 1</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 3840 / 256 = 15</span><br><span>   lchan.rqd_ta (after) = 2</span><br><span>   toa256 (after) = 3584 / 256 = 14</span><br><span style="color: hsl(0, 100%, 40%);">-Step #2</span><br><span style="color: hsl(120, 100%, 40%);">+Step #1</span><br><span>   lchan.rqd_ta (before) = 2</span><br><span>   toa256 (before) = 3584 / 256 = 14</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 3</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 3328 / 256 = 13</span><br><span style="color: hsl(0, 100%, 40%);">-Step #3</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 3</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 3328 / 256 = 13</span><br><span>   lchan.rqd_ta (after) = 4</span><br><span>   toa256 (after) = 3072 / 256 = 12</span><br><span style="color: hsl(0, 100%, 40%);">-Step #4</span><br><span style="color: hsl(120, 100%, 40%);">+Step #2</span><br><span>   lchan.rqd_ta (before) = 4</span><br><span>   toa256 (before) = 3072 / 256 = 12</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 5</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 2816 / 256 = 11</span><br><span style="color: hsl(0, 100%, 40%);">-Step #5</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 5</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 2816 / 256 = 11</span><br><span>   lchan.rqd_ta (after) = 6</span><br><span>   toa256 (after) = 2560 / 256 = 10</span><br><span style="color: hsl(0, 100%, 40%);">-Step #6</span><br><span style="color: hsl(120, 100%, 40%);">+Step #3</span><br><span>   lchan.rqd_ta (before) = 6</span><br><span>   toa256 (before) = 2560 / 256 = 10</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 7</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 2304 / 256 = 9</span><br><span style="color: hsl(0, 100%, 40%);">-Step #7</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 7</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 2304 / 256 = 9</span><br><span>   lchan.rqd_ta (after) = 8</span><br><span>   toa256 (after) = 2048 / 256 = 8</span><br><span style="color: hsl(0, 100%, 40%);">-Step #8</span><br><span style="color: hsl(120, 100%, 40%);">+Step #4</span><br><span>   lchan.rqd_ta (before) = 8</span><br><span>   toa256 (before) = 2048 / 256 = 8</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 9</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 1792 / 256 = 7</span><br><span style="color: hsl(0, 100%, 40%);">-Step #9</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 9</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 1792 / 256 = 7</span><br><span>   lchan.rqd_ta (after) = 10</span><br><span>   toa256 (after) = 1536 / 256 = 6</span><br><span style="color: hsl(0, 100%, 40%);">-Step #10</span><br><span style="color: hsl(120, 100%, 40%);">+Step #5</span><br><span>   lchan.rqd_ta (before) = 10</span><br><span>   toa256 (before) = 1536 / 256 = 6</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 11</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 1280 / 256 = 5</span><br><span style="color: hsl(0, 100%, 40%);">-Step #11</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 11</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 1280 / 256 = 5</span><br><span>   lchan.rqd_ta (after) = 12</span><br><span>   toa256 (after) = 1024 / 256 = 4</span><br><span style="color: hsl(0, 100%, 40%);">-Step #12</span><br><span style="color: hsl(120, 100%, 40%);">+Step #6</span><br><span>   lchan.rqd_ta (before) = 12</span><br><span>   toa256 (before) = 1024 / 256 = 4</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 13</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 768 / 256 = 3</span><br><span style="color: hsl(0, 100%, 40%);">-Step #13</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 13</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 768 / 256 = 3</span><br><span>   lchan.rqd_ta (after) = 14</span><br><span>   toa256 (after) = 512 / 256 = 2</span><br><span style="color: hsl(0, 100%, 40%);">-Step #14</span><br><span style="color: hsl(120, 100%, 40%);">+Step #7</span><br><span>   lchan.rqd_ta (before) = 14</span><br><span>   toa256 (before) = 512 / 256 = 2</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 15</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 256 / 256 = 1</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 16</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 0 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #8</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 16</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 0 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 16</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 0 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #9</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 16</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 0 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 16</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 0 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #10</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 16</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 0 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 16</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 0 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #11</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 16</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 0 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 16</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 0 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #12</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 16</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 0 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 16</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 0 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #13</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 16</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 0 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 16</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 0 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #14</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 16</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 0 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 16</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 0 / 256 = 0</span><br><span> Step #15</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 15</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 256 / 256 = 1</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 16</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 0 / 256 = 0</span><br><span>   lchan.rqd_ta (after) = 16</span><br><span>   toa256 (after) = 0 / 256 = 0</span><br><span> Step #16</span><br><span>@@ -105,78 +105,78 @@</span><br><span> Step #0</span><br><span>   lchan.rqd_ta (before) = 0</span><br><span>   toa256 (before) = 4000 / 256 = 15</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 1</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 3744 / 256 = 14</span><br><span style="color: hsl(0, 100%, 40%);">-Step #1</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 1</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 3744 / 256 = 14</span><br><span>   lchan.rqd_ta (after) = 2</span><br><span>   toa256 (after) = 3488 / 256 = 13</span><br><span style="color: hsl(0, 100%, 40%);">-Step #2</span><br><span style="color: hsl(120, 100%, 40%);">+Step #1</span><br><span>   lchan.rqd_ta (before) = 2</span><br><span>   toa256 (before) = 3488 / 256 = 13</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 3</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 3232 / 256 = 12</span><br><span style="color: hsl(0, 100%, 40%);">-Step #3</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 3</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 3232 / 256 = 12</span><br><span>   lchan.rqd_ta (after) = 4</span><br><span>   toa256 (after) = 2976 / 256 = 11</span><br><span style="color: hsl(0, 100%, 40%);">-Step #4</span><br><span style="color: hsl(120, 100%, 40%);">+Step #2</span><br><span>   lchan.rqd_ta (before) = 4</span><br><span>   toa256 (before) = 2976 / 256 = 11</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 5</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 2720 / 256 = 10</span><br><span style="color: hsl(0, 100%, 40%);">-Step #5</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 5</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 2720 / 256 = 10</span><br><span>   lchan.rqd_ta (after) = 6</span><br><span>   toa256 (after) = 2464 / 256 = 9</span><br><span style="color: hsl(0, 100%, 40%);">-Step #6</span><br><span style="color: hsl(120, 100%, 40%);">+Step #3</span><br><span>   lchan.rqd_ta (before) = 6</span><br><span>   toa256 (before) = 2464 / 256 = 9</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 7</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 2208 / 256 = 8</span><br><span style="color: hsl(0, 100%, 40%);">-Step #7</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 7</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 2208 / 256 = 8</span><br><span>   lchan.rqd_ta (after) = 8</span><br><span>   toa256 (after) = 1952 / 256 = 7</span><br><span style="color: hsl(0, 100%, 40%);">-Step #8</span><br><span style="color: hsl(120, 100%, 40%);">+Step #4</span><br><span>   lchan.rqd_ta (before) = 8</span><br><span>   toa256 (before) = 1952 / 256 = 7</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 9</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 1696 / 256 = 6</span><br><span style="color: hsl(0, 100%, 40%);">-Step #9</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 9</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 1696 / 256 = 6</span><br><span>   lchan.rqd_ta (after) = 10</span><br><span>   toa256 (after) = 1440 / 256 = 5</span><br><span style="color: hsl(0, 100%, 40%);">-Step #10</span><br><span style="color: hsl(120, 100%, 40%);">+Step #5</span><br><span>   lchan.rqd_ta (before) = 10</span><br><span>   toa256 (before) = 1440 / 256 = 5</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 11</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 1184 / 256 = 4</span><br><span style="color: hsl(0, 100%, 40%);">-Step #11</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 11</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 1184 / 256 = 4</span><br><span>   lchan.rqd_ta (after) = 12</span><br><span>   toa256 (after) = 928 / 256 = 3</span><br><span style="color: hsl(0, 100%, 40%);">-Step #12</span><br><span style="color: hsl(120, 100%, 40%);">+Step #6</span><br><span>   lchan.rqd_ta (before) = 12</span><br><span>   toa256 (before) = 928 / 256 = 3</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 13</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 672 / 256 = 2</span><br><span style="color: hsl(0, 100%, 40%);">-Step #13</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 13</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 672 / 256 = 2</span><br><span>   lchan.rqd_ta (after) = 14</span><br><span>   toa256 (after) = 416 / 256 = 1</span><br><span style="color: hsl(0, 100%, 40%);">-Step #14</span><br><span style="color: hsl(120, 100%, 40%);">+Step #7</span><br><span>   lchan.rqd_ta (before) = 14</span><br><span>   toa256 (before) = 416 / 256 = 1</span><br><span>   lchan.rqd_ta (after) = 15</span><br><span>   toa256 (after) = 160 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #8</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 15</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 160 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 15</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 160 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #9</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 15</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 160 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 15</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 160 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #10</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 15</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 160 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 15</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 160 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #11</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 15</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 160 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 15</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 160 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #12</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 15</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 160 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 15</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 160 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #13</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 15</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 160 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 15</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 160 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #14</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 15</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 160 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 15</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 160 / 256 = 0</span><br><span> Step #15</span><br><span>   lchan.rqd_ta (before) = 15</span><br><span>   toa256 (before) = 160 / 256 = 0</span><br><span>@@ -358,241 +358,241 @@</span><br><span> Step #0</span><br><span>   lchan.rqd_ta (before) = 0</span><br><span>   toa256 (before) = 12345 / 256 = 48</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 1</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 12089 / 256 = 47</span><br><span style="color: hsl(0, 100%, 40%);">-Step #1</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 1</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 12089 / 256 = 47</span><br><span>   lchan.rqd_ta (after) = 2</span><br><span>   toa256 (after) = 11833 / 256 = 46</span><br><span style="color: hsl(0, 100%, 40%);">-Step #2</span><br><span style="color: hsl(120, 100%, 40%);">+Step #1</span><br><span>   lchan.rqd_ta (before) = 2</span><br><span>   toa256 (before) = 11833 / 256 = 46</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 3</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 11577 / 256 = 45</span><br><span style="color: hsl(0, 100%, 40%);">-Step #3</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 3</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 11577 / 256 = 45</span><br><span>   lchan.rqd_ta (after) = 4</span><br><span>   toa256 (after) = 11321 / 256 = 44</span><br><span style="color: hsl(0, 100%, 40%);">-Step #4</span><br><span style="color: hsl(120, 100%, 40%);">+Step #2</span><br><span>   lchan.rqd_ta (before) = 4</span><br><span>   toa256 (before) = 11321 / 256 = 44</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 5</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 11065 / 256 = 43</span><br><span style="color: hsl(0, 100%, 40%);">-Step #5</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 5</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 11065 / 256 = 43</span><br><span>   lchan.rqd_ta (after) = 6</span><br><span>   toa256 (after) = 10809 / 256 = 42</span><br><span style="color: hsl(0, 100%, 40%);">-Step #6</span><br><span style="color: hsl(120, 100%, 40%);">+Step #3</span><br><span>   lchan.rqd_ta (before) = 6</span><br><span>   toa256 (before) = 10809 / 256 = 42</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 7</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 10553 / 256 = 41</span><br><span style="color: hsl(0, 100%, 40%);">-Step #7</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 7</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 10553 / 256 = 41</span><br><span>   lchan.rqd_ta (after) = 8</span><br><span>   toa256 (after) = 10297 / 256 = 40</span><br><span style="color: hsl(0, 100%, 40%);">-Step #8</span><br><span style="color: hsl(120, 100%, 40%);">+Step #4</span><br><span>   lchan.rqd_ta (before) = 8</span><br><span>   toa256 (before) = 10297 / 256 = 40</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 9</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 10041 / 256 = 39</span><br><span style="color: hsl(0, 100%, 40%);">-Step #9</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 9</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 10041 / 256 = 39</span><br><span>   lchan.rqd_ta (after) = 10</span><br><span>   toa256 (after) = 9785 / 256 = 38</span><br><span style="color: hsl(0, 100%, 40%);">-Step #10</span><br><span style="color: hsl(120, 100%, 40%);">+Step #5</span><br><span>   lchan.rqd_ta (before) = 10</span><br><span>   toa256 (before) = 9785 / 256 = 38</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 11</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 9529 / 256 = 37</span><br><span style="color: hsl(0, 100%, 40%);">-Step #11</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 11</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 9529 / 256 = 37</span><br><span>   lchan.rqd_ta (after) = 12</span><br><span>   toa256 (after) = 9273 / 256 = 36</span><br><span style="color: hsl(0, 100%, 40%);">-Step #12</span><br><span style="color: hsl(120, 100%, 40%);">+Step #6</span><br><span>   lchan.rqd_ta (before) = 12</span><br><span>   toa256 (before) = 9273 / 256 = 36</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 13</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 9017 / 256 = 35</span><br><span style="color: hsl(0, 100%, 40%);">-Step #13</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 13</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 9017 / 256 = 35</span><br><span>   lchan.rqd_ta (after) = 14</span><br><span>   toa256 (after) = 8761 / 256 = 34</span><br><span style="color: hsl(0, 100%, 40%);">-Step #14</span><br><span style="color: hsl(120, 100%, 40%);">+Step #7</span><br><span>   lchan.rqd_ta (before) = 14</span><br><span>   toa256 (before) = 8761 / 256 = 34</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 15</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 8505 / 256 = 33</span><br><span style="color: hsl(0, 100%, 40%);">-Step #15</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 15</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 8505 / 256 = 33</span><br><span>   lchan.rqd_ta (after) = 16</span><br><span>   toa256 (after) = 8249 / 256 = 32</span><br><span style="color: hsl(0, 100%, 40%);">-Step #16</span><br><span style="color: hsl(120, 100%, 40%);">+Step #8</span><br><span>   lchan.rqd_ta (before) = 16</span><br><span>   toa256 (before) = 8249 / 256 = 32</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 17</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 7993 / 256 = 31</span><br><span style="color: hsl(0, 100%, 40%);">-Step #17</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 17</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 7993 / 256 = 31</span><br><span>   lchan.rqd_ta (after) = 18</span><br><span>   toa256 (after) = 7737 / 256 = 30</span><br><span style="color: hsl(0, 100%, 40%);">-Step #18</span><br><span style="color: hsl(120, 100%, 40%);">+Step #9</span><br><span>   lchan.rqd_ta (before) = 18</span><br><span>   toa256 (before) = 7737 / 256 = 30</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 19</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 7481 / 256 = 29</span><br><span style="color: hsl(0, 100%, 40%);">-Step #19</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 19</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 7481 / 256 = 29</span><br><span>   lchan.rqd_ta (after) = 20</span><br><span>   toa256 (after) = 7225 / 256 = 28</span><br><span style="color: hsl(0, 100%, 40%);">-Step #20</span><br><span style="color: hsl(120, 100%, 40%);">+Step #10</span><br><span>   lchan.rqd_ta (before) = 20</span><br><span>   toa256 (before) = 7225 / 256 = 28</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 21</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 6969 / 256 = 27</span><br><span style="color: hsl(0, 100%, 40%);">-Step #21</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 21</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 6969 / 256 = 27</span><br><span>   lchan.rqd_ta (after) = 22</span><br><span>   toa256 (after) = 6713 / 256 = 26</span><br><span style="color: hsl(0, 100%, 40%);">-Step #22</span><br><span style="color: hsl(120, 100%, 40%);">+Step #11</span><br><span>   lchan.rqd_ta (before) = 22</span><br><span>   toa256 (before) = 6713 / 256 = 26</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 23</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 6457 / 256 = 25</span><br><span style="color: hsl(0, 100%, 40%);">-Step #23</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 23</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 6457 / 256 = 25</span><br><span>   lchan.rqd_ta (after) = 24</span><br><span>   toa256 (after) = 6201 / 256 = 24</span><br><span style="color: hsl(0, 100%, 40%);">-Step #24</span><br><span style="color: hsl(120, 100%, 40%);">+Step #12</span><br><span>   lchan.rqd_ta (before) = 24</span><br><span>   toa256 (before) = 6201 / 256 = 24</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 25</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 5945 / 256 = 23</span><br><span style="color: hsl(0, 100%, 40%);">-Step #25</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 25</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 5945 / 256 = 23</span><br><span>   lchan.rqd_ta (after) = 26</span><br><span>   toa256 (after) = 5689 / 256 = 22</span><br><span style="color: hsl(0, 100%, 40%);">-Step #26</span><br><span style="color: hsl(120, 100%, 40%);">+Step #13</span><br><span>   lchan.rqd_ta (before) = 26</span><br><span>   toa256 (before) = 5689 / 256 = 22</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 27</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 5433 / 256 = 21</span><br><span style="color: hsl(0, 100%, 40%);">-Step #27</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 27</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 5433 / 256 = 21</span><br><span>   lchan.rqd_ta (after) = 28</span><br><span>   toa256 (after) = 5177 / 256 = 20</span><br><span style="color: hsl(0, 100%, 40%);">-Step #28</span><br><span style="color: hsl(120, 100%, 40%);">+Step #14</span><br><span>   lchan.rqd_ta (before) = 28</span><br><span>   toa256 (before) = 5177 / 256 = 20</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 29</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 4921 / 256 = 19</span><br><span style="color: hsl(0, 100%, 40%);">-Step #29</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 29</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 4921 / 256 = 19</span><br><span>   lchan.rqd_ta (after) = 30</span><br><span>   toa256 (after) = 4665 / 256 = 18</span><br><span style="color: hsl(0, 100%, 40%);">-Step #30</span><br><span style="color: hsl(120, 100%, 40%);">+Step #15</span><br><span>   lchan.rqd_ta (before) = 30</span><br><span>   toa256 (before) = 4665 / 256 = 18</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 31</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 4409 / 256 = 17</span><br><span style="color: hsl(0, 100%, 40%);">-Step #31</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 31</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 4409 / 256 = 17</span><br><span>   lchan.rqd_ta (after) = 32</span><br><span>   toa256 (after) = 4153 / 256 = 16</span><br><span style="color: hsl(0, 100%, 40%);">-Step #32</span><br><span style="color: hsl(120, 100%, 40%);">+Step #16</span><br><span>   lchan.rqd_ta (before) = 32</span><br><span>   toa256 (before) = 4153 / 256 = 16</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 33</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 3897 / 256 = 15</span><br><span style="color: hsl(0, 100%, 40%);">-Step #33</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 33</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 3897 / 256 = 15</span><br><span>   lchan.rqd_ta (after) = 34</span><br><span>   toa256 (after) = 3641 / 256 = 14</span><br><span style="color: hsl(0, 100%, 40%);">-Step #34</span><br><span style="color: hsl(120, 100%, 40%);">+Step #17</span><br><span>   lchan.rqd_ta (before) = 34</span><br><span>   toa256 (before) = 3641 / 256 = 14</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 35</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 3385 / 256 = 13</span><br><span style="color: hsl(0, 100%, 40%);">-Step #35</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 35</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 3385 / 256 = 13</span><br><span>   lchan.rqd_ta (after) = 36</span><br><span>   toa256 (after) = 3129 / 256 = 12</span><br><span style="color: hsl(0, 100%, 40%);">-Step #36</span><br><span style="color: hsl(120, 100%, 40%);">+Step #18</span><br><span>   lchan.rqd_ta (before) = 36</span><br><span>   toa256 (before) = 3129 / 256 = 12</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 37</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 2873 / 256 = 11</span><br><span style="color: hsl(0, 100%, 40%);">-Step #37</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 37</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 2873 / 256 = 11</span><br><span>   lchan.rqd_ta (after) = 38</span><br><span>   toa256 (after) = 2617 / 256 = 10</span><br><span style="color: hsl(0, 100%, 40%);">-Step #38</span><br><span style="color: hsl(120, 100%, 40%);">+Step #19</span><br><span>   lchan.rqd_ta (before) = 38</span><br><span>   toa256 (before) = 2617 / 256 = 10</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 39</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 2361 / 256 = 9</span><br><span style="color: hsl(0, 100%, 40%);">-Step #39</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 39</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 2361 / 256 = 9</span><br><span>   lchan.rqd_ta (after) = 40</span><br><span>   toa256 (after) = 2105 / 256 = 8</span><br><span style="color: hsl(0, 100%, 40%);">-Step #40</span><br><span style="color: hsl(120, 100%, 40%);">+Step #20</span><br><span>   lchan.rqd_ta (before) = 40</span><br><span>   toa256 (before) = 2105 / 256 = 8</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 41</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 1849 / 256 = 7</span><br><span style="color: hsl(0, 100%, 40%);">-Step #41</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 41</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 1849 / 256 = 7</span><br><span>   lchan.rqd_ta (after) = 42</span><br><span>   toa256 (after) = 1593 / 256 = 6</span><br><span style="color: hsl(0, 100%, 40%);">-Step #42</span><br><span style="color: hsl(120, 100%, 40%);">+Step #21</span><br><span>   lchan.rqd_ta (before) = 42</span><br><span>   toa256 (before) = 1593 / 256 = 6</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 43</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 1337 / 256 = 5</span><br><span style="color: hsl(0, 100%, 40%);">-Step #43</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 43</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 1337 / 256 = 5</span><br><span>   lchan.rqd_ta (after) = 44</span><br><span>   toa256 (after) = 1081 / 256 = 4</span><br><span style="color: hsl(0, 100%, 40%);">-Step #44</span><br><span style="color: hsl(120, 100%, 40%);">+Step #22</span><br><span>   lchan.rqd_ta (before) = 44</span><br><span>   toa256 (before) = 1081 / 256 = 4</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 45</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 825 / 256 = 3</span><br><span style="color: hsl(0, 100%, 40%);">-Step #45</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 45</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 825 / 256 = 3</span><br><span>   lchan.rqd_ta (after) = 46</span><br><span>   toa256 (after) = 569 / 256 = 2</span><br><span style="color: hsl(0, 100%, 40%);">-Step #46</span><br><span style="color: hsl(120, 100%, 40%);">+Step #23</span><br><span>   lchan.rqd_ta (before) = 46</span><br><span>   toa256 (before) = 569 / 256 = 2</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (after) = 47</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (after) = 313 / 256 = 1</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #24</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #25</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #26</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #27</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #28</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #29</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #30</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #31</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #32</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #33</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #34</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #35</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #36</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #37</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #38</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #39</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #40</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #41</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #42</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #43</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #44</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #45</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+Step #46</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (after) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (after) = 57 / 256 = 0</span><br><span> Step #47</span><br><span style="color: hsl(0, 100%, 40%);">-  lchan.rqd_ta (before) = 47</span><br><span style="color: hsl(0, 100%, 40%);">-  toa256 (before) = 313 / 256 = 1</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan.rqd_ta (before) = 48</span><br><span style="color: hsl(120, 100%, 40%);">+  toa256 (before) = 57 / 256 = 0</span><br><span>   lchan.rqd_ta (after) = 48</span><br><span>   toa256 (after) = 57 / 256 = 0</span><br><span> Step #48</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/25386">change 25386</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-bts/+/25386"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bts </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc </div>
<div style="display:none"> Gerrit-Change-Number: 25386 </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>