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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">vty: Simplify filler burst settings and improve help and readability.<br><br>In the command line options time, filler table/filer burts settings<br>were a bit difficult to undertand because the number of one-letter<br>settings was limited. Now, with VTY configuration, there is no reason<br>to keep it so difficult.<br><br>Also, after the previous commit it was no longer posible to enable<br>random 8-PSK filler bursts. With this patch you can configure all<br>supported filler bursts in a simple and logical way.<br><br>Change-Id: I752eb2c1162d084e8769181f2fcd6c0877663448<br>---<br>M CommonLibs/trx_vty.c<br>M CommonLibs/trx_vty.h<br>M Transceiver52M/osmo-trx.cpp<br>3 files changed, 81 insertions(+), 75 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/CommonLibs/trx_vty.c b/CommonLibs/trx_vty.c</span><br><span>index 2c7ecc2..02d6572 100644</span><br><span>--- a/CommonLibs/trx_vty.c</span><br><span>+++ b/CommonLibs/trx_vty.c</span><br><span>@@ -48,15 +48,25 @@</span><br><span>         { 0,            NULL }</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static const struct value_string filler_names[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-     { FILLER_DUMMY,         "Dummy bursts" },</span><br><span style="color: hsl(0, 100%, 40%);">-     { FILLER_ZERO,          "Disabled" },</span><br><span style="color: hsl(0, 100%, 40%);">- { FILLER_NORM_RAND,     "Normal bursts with random payload" },</span><br><span style="color: hsl(0, 100%, 40%);">-        { FILLER_EDGE_RAND,     "EDGE bursts with random payload" },</span><br><span style="color: hsl(0, 100%, 40%);">-  { FILLER_ACCESS_RAND,   "Access bursts with random payload" },</span><br><span style="color: hsl(120, 100%, 40%);">+const struct value_string filler_names[] = {</span><br><span style="color: hsl(120, 100%, 40%);">+        { FILLER_DUMMY,         "Dummy bursts (C0 only)" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { FILLER_ZERO,          "Empty bursts" },</span><br><span style="color: hsl(120, 100%, 40%);">+   { FILLER_NORM_RAND,     "GMSK Normal Bursts with random payload" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { FILLER_EDGE_RAND,     "8-PSK Normal Bursts with random payload" },</span><br><span style="color: hsl(120, 100%, 40%);">+        { FILLER_ACCESS_RAND,   "Access Bursts with random payload" },</span><br><span>     { 0,                    NULL }</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static const struct value_string filler_types[] = {</span><br><span style="color: hsl(120, 100%, 40%);">+ { FILLER_DUMMY,         "dummy" },</span><br><span style="color: hsl(120, 100%, 40%);">+  { FILLER_ZERO,          "zero" },</span><br><span style="color: hsl(120, 100%, 40%);">+   { FILLER_NORM_RAND,     "random-nb-gmsk" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { FILLER_EDGE_RAND,     "random-nb-8psk" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { FILLER_ACCESS_RAND,   "random-ab" },</span><br><span style="color: hsl(120, 100%, 40%);">+      { 0,                    NULL }</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%);">+</span><br><span> struct trx_ctx *trx_from_vty(struct vty *v)</span><br><span> {</span><br><span>         /* It can't hurt to force callers to continue to pass the vty instance</span><br><span>@@ -172,53 +182,6 @@</span><br><span>      return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-DEFUN(cfg_test_rtsc, cfg_test_rtsc_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">-     "test rtsc <0-7>",</span><br><span style="color: hsl(0, 100%, 40%);">-      "Set the Random Normal Burst test mode with TSC\n"</span><br><span style="color: hsl(0, 100%, 40%);">-    "TSC\n")</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-     struct trx_ctx *trx = trx_from_vty(vty);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        if (trx->cfg.rach_delay_set) {</span><br><span style="color: hsl(0, 100%, 40%);">-               vty_out(vty, "rach-delay and rtsc options are mutual-exclusive%s",</span><br><span style="color: hsl(0, 100%, 40%);">-                    VTY_NEWLINE);</span><br><span style="color: hsl(0, 100%, 40%);">-           return CMD_WARNING;</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       trx->cfg.rtsc_set = true;</span><br><span style="color: hsl(0, 100%, 40%);">-    trx->cfg.rtsc = atoi(argv[0]);</span><br><span style="color: hsl(0, 100%, 40%);">-       if (!trx->cfg.egprs) /* Don't override egprs which sets different filler */</span><br><span style="color: hsl(0, 100%, 40%);">-              trx->cfg.filler = FILLER_NORM_RAND;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  return CMD_SUCCESS;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-DEFUN(cfg_test_rach_delay, cfg_test_rach_delay_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">- "test rach-delay <0-68>",</span><br><span style="color: hsl(0, 100%, 40%);">-       "Set the Random Access Burst test mode with delay\n"</span><br><span style="color: hsl(0, 100%, 40%);">-  "RACH delay\n")</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-      struct trx_ctx *trx = trx_from_vty(vty);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        if (trx->cfg.rtsc_set) {</span><br><span style="color: hsl(0, 100%, 40%);">-             vty_out(vty, "rach-delay and rtsc options are mutual-exclusive%s",</span><br><span style="color: hsl(0, 100%, 40%);">-                    VTY_NEWLINE);</span><br><span style="color: hsl(0, 100%, 40%);">-           return CMD_WARNING;</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       if (trx->cfg.egprs) {</span><br><span style="color: hsl(0, 100%, 40%);">-                vty_out(vty, "rach-delay and egprs options are mutual-exclusive%s",</span><br><span style="color: hsl(0, 100%, 40%);">-                   VTY_NEWLINE);</span><br><span style="color: hsl(0, 100%, 40%);">-           return CMD_WARNING;</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       trx->cfg.rach_delay_set = true;</span><br><span style="color: hsl(0, 100%, 40%);">-      trx->cfg.rach_delay = atoi(argv[0]);</span><br><span style="color: hsl(0, 100%, 40%);">- trx->cfg.filler = FILLER_ACCESS_RAND;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        return CMD_SUCCESS;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> DEFUN(cfg_clock_ref, cfg_clock_ref_cmd,</span><br><span>      "clock-ref (internal|external|gpsdo)",</span><br><span>     "Set the Reference Clock\n"</span><br><span>@@ -351,14 +314,57 @@</span><br><span>        return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-DEFUN(cfg_filler, cfg_filler_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">-   "filler dummy",</span><br><span style="color: hsl(0, 100%, 40%);">-       "Enable C0 filler table\n"</span><br><span style="color: hsl(0, 100%, 40%);">-    "Dummy method\n")</span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN(cfg_filler, cfg_filler_type_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+   "filler type (zero|dummy|random-nb-gmsk|random-nb-8psk|random-ab)",</span><br><span style="color: hsl(120, 100%, 40%);">+ "Filler burst settings\n"</span><br><span style="color: hsl(120, 100%, 40%);">+   "Filler burst type (default=zero)\n"</span><br><span style="color: hsl(120, 100%, 40%);">+        "Send an empty burst when there is nothing to send (default)\n"</span><br><span style="color: hsl(120, 100%, 40%);">+     "Send a dummy burst when there is nothing to send on C0 (TRX0) and empty burst on other channels."</span><br><span style="color: hsl(120, 100%, 40%);">+  " Use for OpenBTS compatibility only, don't use with OsmoBTS as it breaks encryption.\n"</span><br><span style="color: hsl(120, 100%, 40%);">+        "Send a GMSK modulated Normal Burst with random bits when there is nothing to send."</span><br><span style="color: hsl(120, 100%, 40%);">+        " Use for spectrum mask testing. Configure 'filler tsc' to set training sequence.\n"</span><br><span style="color: hsl(120, 100%, 40%);">+        "Send an 8-PSK modulated Normal Burst with random bits when there is nothing to send."</span><br><span style="color: hsl(120, 100%, 40%);">+      " Use for spectrum mask testing. Configure 'filler tsc' to set training sequence.\n"</span><br><span style="color: hsl(120, 100%, 40%);">+        "Send an Access Burst with random bits when there is nothing to send. Use for Rx/Tx alignment."</span><br><span style="color: hsl(120, 100%, 40%);">+     " Configure 'filler access-burst-delay' to introduce artificial delay.\n"</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%);">+     struct trx_ctx *trx = trx_from_vty(vty);</span><br><span style="color: hsl(120, 100%, 40%);">+      // trx->cfg.filler is unsigned, so we need an interim int var to detect errors</span><br><span style="color: hsl(120, 100%, 40%);">+     int type = get_string_value(filler_types, argv[0]);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ if (type < 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+            trx->cfg.filler = FILLER_ZERO;</span><br><span style="color: hsl(120, 100%, 40%);">+             return CMD_WARNING;</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+     trx->cfg.filler = type;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  return CMD_SUCCESS;</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%);">+DEFUN(cfg_test_rtsc, cfg_filler_tsc_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+    "filler tsc <0-7>",</span><br><span style="color: hsl(120, 100%, 40%);">+   "Filler burst settings\n"</span><br><span style="color: hsl(120, 100%, 40%);">+   "Set the TSC for GMSK/8-PSK Normal Burst random fillers. Used only with 'random-nb-gmsk' and"</span><br><span style="color: hsl(120, 100%, 40%);">+       " 'random-nb-8psk' filler types. (default=0)\n"</span><br><span style="color: hsl(120, 100%, 40%);">+     "TSC\n")</span><br><span> {</span><br><span>      struct trx_ctx *trx = trx_from_vty(vty);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    trx->cfg.filler = FILLER_DUMMY;</span><br><span style="color: hsl(120, 100%, 40%);">+    trx->cfg.rtsc = atoi(argv[0]);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   return CMD_SUCCESS;</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%);">+DEFUN(cfg_test_rach_delay, cfg_filler_rach_delay_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+       "filler access-burst-delay <0-68>",</span><br><span style="color: hsl(120, 100%, 40%);">+   "Filler burst settings\n"</span><br><span style="color: hsl(120, 100%, 40%);">+   "Set the delay for Access Burst random fillers. Used only with 'random-ab' filler type. (default=0)\n"</span><br><span style="color: hsl(120, 100%, 40%);">+      "RACH delay in symbols\n")</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+       struct trx_ctx *trx = trx_from_vty(vty);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    trx->cfg.rach_delay = atoi(argv[0]);</span><br><span> </span><br><span>  return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -546,10 +552,6 @@</span><br><span>              vty_out(vty, " tx-sps %u%s", trx->cfg.tx_sps, VTY_NEWLINE);</span><br><span>     if (trx->cfg.rx_sps != DEFAULT_RX_SPS)</span><br><span>            vty_out(vty, " rx-sps %u%s", trx->cfg.rx_sps, VTY_NEWLINE);</span><br><span style="color: hsl(0, 100%, 40%);">-        if (trx->cfg.rtsc_set)</span><br><span style="color: hsl(0, 100%, 40%);">-               vty_out(vty, " test rtsc %u%s", trx->cfg.rtsc, VTY_NEWLINE);</span><br><span style="color: hsl(0, 100%, 40%);">-       if (trx->cfg.rach_delay_set)</span><br><span style="color: hsl(0, 100%, 40%);">-         vty_out(vty, " test rach-delay %u%s", trx->cfg.rach_delay, VTY_NEWLINE);</span><br><span>        if (trx->cfg.clock_ref != REF_INTERNAL)</span><br><span>           vty_out(vty, " clock-ref %s%s", get_value_string(clock_ref_names, trx->cfg.clock_ref), VTY_NEWLINE);</span><br><span>    vty_out(vty, " multi-arfcn %s%s", trx->cfg.multi_arfcn ? "enable" : "disable", VTY_NEWLINE);</span><br><span>@@ -562,6 +564,12 @@</span><br><span>         vty_out(vty, " ext-rach %s%s", trx->cfg.ext_rach ? "enable" : "disable", VTY_NEWLINE);</span><br><span>      if (trx->cfg.sched_rr != 0)</span><br><span>               vty_out(vty, " rt-prio %u%s", trx->cfg.sched_rr, VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+   if (trx->cfg.filler != FILLER_ZERO)</span><br><span style="color: hsl(120, 100%, 40%);">+                vty_out(vty, " filler type %s%s", get_value_string(filler_types, trx->cfg.filler), VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (trx->cfg.rtsc > 0)</span><br><span style="color: hsl(120, 100%, 40%);">+          vty_out(vty, " filler tsc %u%s", trx->cfg.rtsc, VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+    if (trx->cfg.rach_delay > 0)</span><br><span style="color: hsl(120, 100%, 40%);">+            vty_out(vty, " filler access-burst-delay %u%s", trx->cfg.rach_delay, VTY_NEWLINE);</span><br><span>      if (trx->cfg.stack_size != 0)</span><br><span>             vty_out(vty, " stack-size %u%s", trx->cfg.stack_size, VTY_NEWLINE);</span><br><span>     trx_rate_ctr_threshold_write_config(vty, " ");</span><br><span>@@ -589,11 +597,9 @@</span><br><span>      vty_out(vty, " Device args: %s%s", trx->cfg.dev_args, VTY_NEWLINE);</span><br><span>     vty_out(vty, " Tx Samples-per-Symbol: %u%s", trx->cfg.tx_sps, VTY_NEWLINE);</span><br><span>     vty_out(vty, " Rx Samples-per-Symbol: %u%s", trx->cfg.rx_sps, VTY_NEWLINE);</span><br><span style="color: hsl(0, 100%, 40%);">-        vty_out(vty, " Test Mode: TSC: %u (%s)%s", trx->cfg.rtsc,</span><br><span style="color: hsl(0, 100%, 40%);">-          trx->cfg.rtsc_set ? "Enabled" : "Disabled", VTY_NEWLINE);</span><br><span style="color: hsl(0, 100%, 40%);">-        vty_out(vty, " Test Mode: RACH Delay: %u (%s)%s", trx->cfg.rach_delay,</span><br><span style="color: hsl(0, 100%, 40%);">-             trx->cfg.rach_delay_set ? "Enabled" : "Disabled", VTY_NEWLINE);</span><br><span style="color: hsl(0, 100%, 40%);">-  vty_out(vty, " C0 Filler Table: %s%s", get_value_string(filler_names, trx->cfg.filler), VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+    vty_out(vty, " Filler Burst Type: %s%s", get_value_string(filler_names, trx->cfg.filler), VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+  vty_out(vty, " Filler Burst TSC: %u%s", trx->cfg.rtsc, VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+     vty_out(vty, " Filler Burst RACH Delay: %u%s", trx->cfg.rach_delay, VTY_NEWLINE);</span><br><span>       vty_out(vty, " Clock Reference: %s%s", get_value_string(clock_ref_names, trx->cfg.clock_ref), VTY_NEWLINE);</span><br><span>     vty_out(vty, " Multi-Carrier: %s%s", trx->cfg.multi_arfcn ? "Enabled" : "Disabled", VTY_NEWLINE);</span><br><span>   vty_out(vty, " Tuning offset: %f%s", trx->cfg.offset, VTY_NEWLINE);</span><br><span>@@ -662,6 +668,7 @@</span><br><span> static const char trx_copyright[] =</span><br><span>        "Copyright (C) 2007-2014 Free Software Foundation, Inc.\r\n"</span><br><span>       "Copyright (C) 2013 Thomas Tsou <tom@tsou.cc>\r\n"</span><br><span style="color: hsl(120, 100%, 40%);">+    "Copyright (C) 2013-2019 Fairwaves, Inc.\r\n"</span><br><span>      "Copyright (C) 2015 Ettus Research LLC\r\n"</span><br><span>        "Copyright (C) 2017-2018 by sysmocom s.f.m.c. GmbH <info@sysmocom.de>\r\n"</span><br><span>   "License AGPLv3+: GNU AGPL version 3 or later <http://gnu.org/licenses/agpl-3.0.html>\r\n"</span><br><span>@@ -704,8 +711,6 @@</span><br><span>     install_element(TRX_NODE, &cfg_dev_args_cmd);</span><br><span>    install_element(TRX_NODE, &cfg_tx_sps_cmd);</span><br><span>      install_element(TRX_NODE, &cfg_rx_sps_cmd);</span><br><span style="color: hsl(0, 100%, 40%);">- install_element(TRX_NODE, &cfg_test_rtsc_cmd);</span><br><span style="color: hsl(0, 100%, 40%);">-      install_element(TRX_NODE, &cfg_test_rach_delay_cmd);</span><br><span>     install_element(TRX_NODE, &cfg_clock_ref_cmd);</span><br><span>   install_element(TRX_NODE, &cfg_multi_arfcn_cmd);</span><br><span>         install_element(TRX_NODE, &cfg_offset_cmd);</span><br><span>@@ -714,7 +719,9 @@</span><br><span>        install_element(TRX_NODE, &cfg_egprs_cmd);</span><br><span>       install_element(TRX_NODE, &cfg_ext_rach_cmd);</span><br><span>    install_element(TRX_NODE, &cfg_rt_prio_cmd);</span><br><span style="color: hsl(0, 100%, 40%);">-        install_element(TRX_NODE, &cfg_filler_cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+       install_element(TRX_NODE, &cfg_filler_type_cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+  install_element(TRX_NODE, &cfg_filler_tsc_cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+   install_element(TRX_NODE, &cfg_filler_rach_delay_cmd);</span><br><span>   install_element(TRX_NODE, &cfg_ctr_error_threshold_cmd);</span><br><span>         install_element(TRX_NODE, &cfg_no_ctr_error_threshold_cmd);</span><br><span>      install_element(TRX_NODE, &cfg_stack_size_cmd);</span><br><span>diff --git a/CommonLibs/trx_vty.h b/CommonLibs/trx_vty.h</span><br><span>index d939051..d20dd96 100644</span><br><span>--- a/CommonLibs/trx_vty.h</span><br><span>+++ b/CommonLibs/trx_vty.h</span><br><span>@@ -5,6 +5,7 @@</span><br><span> #include "config_defs.h"</span><br><span> </span><br><span> extern struct vty_app_info g_vty_info;</span><br><span style="color: hsl(120, 100%, 40%);">+extern const struct value_string filler_names[];</span><br><span> </span><br><span> /* Maximum number of physical RF channels */</span><br><span> #define TRX_CHAN_MAX 8</span><br><span>@@ -51,9 +52,7 @@</span><br><span>           unsigned int tx_sps;</span><br><span>                 unsigned int rx_sps;</span><br><span>                 unsigned int rtsc;</span><br><span style="color: hsl(0, 100%, 40%);">-              bool rtsc_set;</span><br><span>               unsigned int rach_delay;</span><br><span style="color: hsl(0, 100%, 40%);">-                bool rach_delay_set;</span><br><span>                 enum ReferenceType clock_ref;</span><br><span>                enum FillerType filler;</span><br><span>              bool multi_arfcn;</span><br><span>diff --git a/Transceiver52M/osmo-trx.cpp b/Transceiver52M/osmo-trx.cpp</span><br><span>index 6b83988..2346488 100644</span><br><span>--- a/Transceiver52M/osmo-trx.cpp</span><br><span>+++ b/Transceiver52M/osmo-trx.cpp</span><br><span>@@ -334,14 +334,12 @@</span><br><span>                   break;</span><br><span>               case 'r':</span><br><span>                    print_deprecated(option);</span><br><span style="color: hsl(0, 100%, 40%);">-                       trx->cfg.rtsc_set = true;</span><br><span>                         trx->cfg.rtsc = atoi(optarg);</span><br><span>                     if (!trx->cfg.egprs) /* Don't override egprs which sets different filler */</span><br><span>                           trx->cfg.filler = FILLER_NORM_RAND;</span><br><span>                       break;</span><br><span>               case 'A':</span><br><span>                    print_deprecated(option);</span><br><span style="color: hsl(0, 100%, 40%);">-                       trx->cfg.rach_delay_set = true;</span><br><span>                   trx->cfg.rach_delay = atoi(optarg);</span><br><span>                       trx->cfg.filler = FILLER_ACCESS_RAND;</span><br><span>                     break;</span><br><span>@@ -459,7 +457,9 @@</span><br><span>         ost << "   EDGE support............ " << trx->cfg.egprs << std::endl;</span><br><span>         ost << "   Extended RACH support... " << trx->cfg.ext_rach << std::endl;</span><br><span>      ost << "   Reference............... " << trx->cfg.clock_ref << std::endl;</span><br><span style="color: hsl(0, 100%, 40%);">-        ost << "   C0 Filler Table......... " << trx->cfg.filler << std::endl;</span><br><span style="color: hsl(120, 100%, 40%);">+ ost << "   Filler Burst Type....... " << get_value_string(filler_names, trx->cfg.filler) << std::endl;</span><br><span style="color: hsl(120, 100%, 40%);">+ ost << "   Filler Burst TSC........ " << trx->cfg.rtsc << std::endl;</span><br><span style="color: hsl(120, 100%, 40%);">+   ost << "   Filler Burst RACH Delay. " << trx->cfg.rach_delay << std::endl;</span><br><span>    ost << "   Multi-Carrier........... " << trx->cfg.multi_arfcn << std::endl;</span><br><span>   ost << "   Tuning offset........... " << trx->cfg.offset << std::endl;</span><br><span>        ost << "   RSSI to dBm offset...... " << trx->cfg.rssi_offset << std::endl;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-trx/+/15793">change 15793</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-trx/+/15793"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-trx </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I752eb2c1162d084e8769181f2fcd6c0877663448 </div>
<div style="display:none"> Gerrit-Change-Number: 15793 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: ipse <Alexander.Chemeris@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: ipse <Alexander.Chemeris@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>