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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">add VTY transcript testing<br><br>This is not as trivial as with OsmoBSC or OsmoMSC, because normally the<br>osmo-bts process exits right away when there is no BSC. Hence add<br>--vty-test option to main.<br><br>Use 'osmo-bts-virtual --vty-test' for testing. The other BTS models<br>require dependencies / configure switches to be built.<br><br>Essentially copied from osmo-bsc.git:<br>configure.ac: add --enable-external-tests<br>tests/Makefile.am: add 'vty-test' target<br><br>Add osmo-bts.vty, some trivial VTY node testing.<br><br>This prepares for adding VTY tests for T timer configuration added in a<br>subsequent patch.<br><br>Related: SYS#5559<br>Change-Id: I730daf548a3a9bb116aa8b6d5772ca9af0ada08f<br>---<br>M configure.ac<br>M src/common/main.c<br>M tests/Makefile.am<br>A tests/osmo-bts.vty<br>4 files changed, 303 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/configure.ac b/configure.ac</span><br><span>index 2b5a316..1b4c6e7 100644</span><br><span>--- a/configure.ac</span><br><span>+++ b/configure.ac</span><br><span>@@ -349,6 +349,24 @@</span><br><span>  AC_SUBST([OSMO_GSM_MANUALS_DIR])</span><br><span> fi</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+AC_ARG_ENABLE([external_tests],</span><br><span style="color: hsl(120, 100%, 40%);">+           AC_HELP_STRING([--enable-external-tests],</span><br><span style="color: hsl(120, 100%, 40%);">+                             [Include the VTY/CTRL tests in make check [default=no]]),</span><br><span style="color: hsl(120, 100%, 40%);">+             [enable_ext_tests="$enableval"],[enable_ext_tests="no"])</span><br><span style="color: hsl(120, 100%, 40%);">+if test "x$enable_ext_tests" = "xyes" ; then</span><br><span style="color: hsl(120, 100%, 40%);">+        AC_CHECK_PROG(PYTHON3_AVAIL,python3,yes)</span><br><span style="color: hsl(120, 100%, 40%);">+       if test "x$PYTHON3_AVAIL" != "xyes" ; then</span><br><span style="color: hsl(120, 100%, 40%);">+               AC_MSG_ERROR([Please install python3 to run the VTY/CTRL tests.])</span><br><span style="color: hsl(120, 100%, 40%);">+     fi</span><br><span style="color: hsl(120, 100%, 40%);">+    AC_CHECK_PROG(OSMOTESTEXT_CHECK,osmotestvty.py,yes)</span><br><span style="color: hsl(120, 100%, 40%);">+    if test "x$OSMOTESTEXT_CHECK" != "xyes" ; then</span><br><span style="color: hsl(120, 100%, 40%);">+           AC_MSG_ERROR([Please install git://osmocom.org/python/osmo-python-tests to run the VTY/CTRL tests.])</span><br><span style="color: hsl(120, 100%, 40%);">+  fi</span><br><span style="color: hsl(120, 100%, 40%);">+fi</span><br><span style="color: hsl(120, 100%, 40%);">+AC_MSG_CHECKING([whether to enable VTY/CTRL tests])</span><br><span style="color: hsl(120, 100%, 40%);">+AC_MSG_RESULT([$enable_ext_tests])</span><br><span style="color: hsl(120, 100%, 40%);">+AM_CONDITIONAL(ENABLE_EXT_TESTS, test "x$enable_ext_tests" = "xyes")</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> # https://www.freedesktop.org/software/systemd/man/daemon.html</span><br><span> AC_ARG_WITH([systemdsystemunitdir],</span><br><span>      [AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files])],,</span><br><span>diff --git a/src/common/main.c b/src/common/main.c</span><br><span>index bc5cf3b..b5ba21b 100644</span><br><span>--- a/src/common/main.c</span><br><span>+++ b/src/common/main.c</span><br><span>@@ -65,6 +65,7 @@</span><br><span> static int rt_prio = -1;</span><br><span> static char *gsmtap_ip = 0;</span><br><span> extern int g_vty_port_num;</span><br><span style="color: hsl(120, 100%, 40%);">+static bool vty_test_mode = false;</span><br><span> </span><br><span> static void print_help()</span><br><span> {</span><br><span>@@ -80,6 +81,8 @@</span><br><span>                 "\nVTY reference generation:\n"</span><br><span>            "  --vty-ref-mode MODE     VTY reference generation mode (e.g. 'expert').\n"</span><br><span>               "  --vty-ref-xml           Generate the VTY reference XML output and exit.\n"</span><br><span style="color: hsl(120, 100%, 40%);">+               "\nRegression testing:\n"</span><br><span style="color: hsl(120, 100%, 40%);">+           "       --vty-test         VTY test mode. Do not connect to BSC, do not exit.\n"</span><br><span>           );</span><br><span>   bts_model_print_help();</span><br><span> }</span><br><span>@@ -103,6 +106,9 @@</span><br><span>                   get_value_string(vty_ref_gen_mode_desc, vty_ref_mode));</span><br><span>              vty_dump_xml_ref_mode(stdout, (enum vty_ref_gen_mode) vty_ref_mode);</span><br><span>                 exit(0);</span><br><span style="color: hsl(120, 100%, 40%);">+      case 3:</span><br><span style="color: hsl(120, 100%, 40%);">+               vty_test_mode = true;</span><br><span style="color: hsl(120, 100%, 40%);">+         break;</span><br><span>       default:</span><br><span>             fprintf(stderr, "%s: error parsing cmdline options\n", prog_name);</span><br><span>                 exit(2);</span><br><span>@@ -140,6 +146,7 @@</span><br><span>                       { "realtime", 1, 0, 'r' },</span><br><span>                         { "vty-ref-mode", 1, &long_option, 1 },</span><br><span>                        { "vty-ref-xml", 0, &long_option, 2 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  { "vty-test", 0, &long_option, 3 },</span><br><span>                    { 0, 0, 0, 0 }</span><br><span>               };</span><br><span> </span><br><span>@@ -299,6 +306,8 @@</span><br><span>         handle_options(argc, argv);</span><br><span> </span><br><span>      fprintf(stderr, "((*))\n  |\n / \\ OsmoBTS\n");</span><br><span style="color: hsl(120, 100%, 40%);">+     if (vty_test_mode)</span><br><span style="color: hsl(120, 100%, 40%);">+            fprintf(stderr, "--- VTY test mode: not connecting to BSC, not exiting ---\n");</span><br><span> </span><br><span>        g_bts = gsm_bts_alloc(tall_bts_ctx, 0);</span><br><span>      if (!g_bts) {</span><br><span>@@ -396,6 +405,16 @@</span><br><span>         signal(SIGUSR2, &signal_handler);</span><br><span>        osmo_init_ignore_signals();</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+       if (vty_test_mode) {</span><br><span style="color: hsl(120, 100%, 40%);">+          /* Just select-loop without connecting to the BSC, don't exit. This allows running tests on the VTY</span><br><span style="color: hsl(120, 100%, 40%);">+                * telnet port. */</span><br><span style="color: hsl(120, 100%, 40%);">+            while (!quit) {</span><br><span style="color: hsl(120, 100%, 40%);">+                       log_reset_context();</span><br><span style="color: hsl(120, 100%, 40%);">+                  osmo_select_main(0);</span><br><span style="color: hsl(120, 100%, 40%);">+          }</span><br><span style="color: hsl(120, 100%, 40%);">+             return EXIT_SUCCESS;</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  if (abis_open(g_bts, "osmo-bts") != 0)</span><br><span>             exit(1);</span><br><span> </span><br><span>diff --git a/tests/Makefile.am b/tests/Makefile.am</span><br><span>index 57687ee..8d19e6e 100644</span><br><span>--- a/tests/Makefile.am</span><br><span>+++ b/tests/Makefile.am</span><br><span>@@ -22,12 +22,38 @@</span><br><span>                echo '  [$(PACKAGE_URL)])'; \</span><br><span>              } >'$(srcdir)/package.m4'</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-EXTRA_DIST = testsuite.at $(srcdir)/package.m4 $(TESTSUITE)</span><br><span style="color: hsl(120, 100%, 40%);">+EXTRA_DIST = \</span><br><span style="color: hsl(120, 100%, 40%);">+       testsuite.at \</span><br><span style="color: hsl(120, 100%, 40%);">+        $(srcdir)/package.m4 \</span><br><span style="color: hsl(120, 100%, 40%);">+        $(TESTSUITE) \</span><br><span style="color: hsl(120, 100%, 40%);">+        osmo-bts.vty \</span><br><span style="color: hsl(120, 100%, 40%);">+        $(NULL)</span><br><span> TESTSUITE = $(srcdir)/testsuite</span><br><span> DISTCLEANFILES = atconfig</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+if ENABLE_EXT_TESTS</span><br><span style="color: hsl(120, 100%, 40%);">+python-tests: $(BUILT_SOURCES)</span><br><span style="color: hsl(120, 100%, 40%);">+      $(MAKE) vty-test</span><br><span style="color: hsl(120, 100%, 40%);">+else</span><br><span style="color: hsl(120, 100%, 40%);">+python-tests: $(BUILT_SOURCES)</span><br><span style="color: hsl(120, 100%, 40%);">+        echo "Not running python-based tests (determined at configure-time)"</span><br><span style="color: hsl(120, 100%, 40%);">+endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Run a specific test with: 'make vty-test VTY_TEST=foo.vty'</span><br><span style="color: hsl(120, 100%, 40%);">+VTY_TEST ?= *.vty</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# To update the VTY script from current application behavior,</span><br><span style="color: hsl(120, 100%, 40%);">+# pass -u to vty_script_runner.py by doing:</span><br><span style="color: hsl(120, 100%, 40%);">+#   make vty-test U=-u</span><br><span style="color: hsl(120, 100%, 40%);">+vty-test:</span><br><span style="color: hsl(120, 100%, 40%);">+     osmo_verify_transcript_vty.py -v \</span><br><span style="color: hsl(120, 100%, 40%);">+            -n OsmoBTS -p 4241 \</span><br><span style="color: hsl(120, 100%, 40%);">+          -r "$(top_builddir)/src/osmo-bts-virtual/osmo-bts-virtual --vty-test -c $(top_srcdir)/doc/examples/virtual/osmo-bts-virtual.cfg" \</span><br><span style="color: hsl(120, 100%, 40%);">+          $(U) $(srcdir)/$(VTY_TEST)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> check-local: atconfig $(TESTSUITE)</span><br><span>   $(SHELL) '$(TESTSUITE)' $(TESTSUITEFLAGS)</span><br><span style="color: hsl(120, 100%, 40%);">+     $(MAKE) $(AM_MAKEFLAGS) python-tests</span><br><span> </span><br><span> installcheck-local: atconfig $(TESTSUITE)</span><br><span>        $(SHELL) '$(TESTSUITE)' AUTOTEST_PATH='$(bindir)' \</span><br><span>diff --git a/tests/osmo-bts.vty b/tests/osmo-bts.vty</span><br><span>new file mode 100644</span><br><span>index 0000000..4983967</span><br><span>--- /dev/null</span><br><span>+++ b/tests/osmo-bts.vty</span><br><span>@@ -0,0 +1,239 @@</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> list</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  show bts [<0-255>]</span><br><span style="color: hsl(120, 100%, 40%);">+  show trx [<0-255>] [<0-255>]</span><br><span style="color: hsl(120, 100%, 40%);">+  show timeslot [<0-255>] [<0-255>] [<0-7>]</span><br><span style="color: hsl(120, 100%, 40%);">+  show lchan [<0-255>] [<0-255>] [<0-7>] [<0-7>]</span><br><span style="color: hsl(120, 100%, 40%);">+  show lchan summary [<0-255>] [<0-255>] [<0-7>] [<0-7>]</span><br><span style="color: hsl(120, 100%, 40%);">+  show bts <0-255> gprs</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  show e1_driver</span><br><span style="color: hsl(120, 100%, 40%);">+  show e1_line [<0-255>] [stats]</span><br><span style="color: hsl(120, 100%, 40%);">+  show e1_timeslot [<0-255>] [<0-31>]</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> ?</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  show      Show running system information</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%);">+OsmoBTS> show ?</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  bts             Display information about a BTS</span><br><span style="color: hsl(120, 100%, 40%);">+  trx             Display information about a TRX</span><br><span style="color: hsl(120, 100%, 40%);">+  timeslot        Display information about a TS</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan           Display information about a logical channel</span><br><span style="color: hsl(120, 100%, 40%);">+  e1_driver       Display information about available E1 drivers</span><br><span style="color: hsl(120, 100%, 40%);">+  e1_line         Display information about a E1 line</span><br><span style="color: hsl(120, 100%, 40%);">+  e1_timeslot     Display information about a E1 timeslot</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show bts ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  BTS Number</span><br><span style="color: hsl(120, 100%, 40%);">+  <0-255>    BTS Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show bts 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs  GPRS/EGPRS configuration</span><br><span style="color: hsl(120, 100%, 40%);">+  <cr>  </span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show trx ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  BTS Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show trx 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  TRX Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show timeslot ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  BTS Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show timeslot 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  TRX Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show timeslot 0 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-7>]  Timeslot Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show lchan ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  BTS Number</span><br><span style="color: hsl(120, 100%, 40%);">+  summary    Short summary</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show lchan 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  TRX Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show lchan 0 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-7>]  Timeslot Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show lchan 0 0 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-7>]  Logical Channel Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show lchan summary ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  BTS Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show lchan summary 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  TRX Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show lchan summary 0 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-7>]  Timeslot Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show lchan summary 0 0 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-7>]  Logical Channel Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show e1_driver ?</span><br><span style="color: hsl(120, 100%, 40%);">+  <cr>  </span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show e1_line ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  E1 Line Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show e1_line 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [stats]  Include statistics</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show e1_timeslot ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  E1 Line Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> show e1_timeslot 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-31>]  E1 Timeslot Number</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS> enable</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# list</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  show bts [<0-255>]</span><br><span style="color: hsl(120, 100%, 40%);">+  show trx [<0-255>] [<0-255>]</span><br><span style="color: hsl(120, 100%, 40%);">+  show timeslot [<0-255>] [<0-255>] [<0-7>]</span><br><span style="color: hsl(120, 100%, 40%);">+  show lchan [<0-255>] [<0-255>] [<0-7>] [<0-7>]</span><br><span style="color: hsl(120, 100%, 40%);">+  show lchan summary [<0-255>] [<0-255>] [<0-7>] [<0-7>]</span><br><span style="color: hsl(120, 100%, 40%);">+  show bts <0-255> gprs</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  bts <0-0> trx <0-255> ts <0-7> (lchan|shadow-lchan) <0-7> rtp jitter-buffer <0-10000></span><br><span style="color: hsl(120, 100%, 40%);">+  test send-failure-event-report <0-255></span><br><span style="color: hsl(120, 100%, 40%);">+  bts <0-255> c0-power-red <0-6></span><br><span style="color: hsl(120, 100%, 40%);">+  show e1_driver</span><br><span style="color: hsl(120, 100%, 40%);">+  show e1_line [<0-255>] [stats]</span><br><span style="color: hsl(120, 100%, 40%);">+  show e1_timeslot [<0-255>] [<0-31>]</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%);">+OsmoBTS# ?</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  show       Show running system information</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%);">+OsmoBTS# show ?</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  bts             Display information about a BTS</span><br><span style="color: hsl(120, 100%, 40%);">+  trx             Display information about a TRX</span><br><span style="color: hsl(120, 100%, 40%);">+  timeslot        Display information about a TS</span><br><span style="color: hsl(120, 100%, 40%);">+  lchan           Display information about a logical channel</span><br><span style="color: hsl(120, 100%, 40%);">+  e1_driver       Display information about available E1 drivers</span><br><span style="color: hsl(120, 100%, 40%);">+  e1_line         Display information about a E1 line</span><br><span style="color: hsl(120, 100%, 40%);">+  e1_timeslot     Display information about a E1 timeslot</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show bts ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  BTS Number</span><br><span style="color: hsl(120, 100%, 40%);">+  <0-255>    BTS Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show bts 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs  GPRS/EGPRS configuration</span><br><span style="color: hsl(120, 100%, 40%);">+  <cr>  </span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show trx ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  BTS Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show trx 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  TRX Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show timeslot ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  BTS Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show timeslot 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  TRX Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show timeslot 0 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-7>]  Timeslot Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show lchan ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  BTS Number</span><br><span style="color: hsl(120, 100%, 40%);">+  summary    Short summary</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show lchan 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  TRX Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show lchan 0 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-7>]  Timeslot Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show lchan 0 0 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-7>]  Logical Channel Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show lchan summary ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  BTS Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show lchan summary 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  TRX Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show lchan summary 0 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-7>]  Timeslot Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show lchan summary 0 0 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-7>]  Logical Channel Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show e1_driver ?</span><br><span style="color: hsl(120, 100%, 40%);">+  <cr>  </span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show e1_line ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  E1 Line Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show e1_line 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [stats]  Include statistics</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show e1_timeslot ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-255>]  E1 Line Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# show e1_timeslot 0 ?</span><br><span style="color: hsl(120, 100%, 40%);">+  [<0-31>]  E1 Timeslot Number</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS# configure terminal</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS(config)# list</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  bts BTS_NR</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  phy <0-255></span><br><span style="color: hsl(120, 100%, 40%);">+  e1_input</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS(config)# ?</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  bts        Select a BTS to configure</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  phy        Select a PHY to configure</span><br><span style="color: hsl(120, 100%, 40%);">+  e1_input   Configure E1/T1/J1 TDM input</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS(config)# bts ?</span><br><span style="color: hsl(120, 100%, 40%);">+  BTS_NR  BTS Number</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS(config)# phy ?</span><br><span style="color: hsl(120, 100%, 40%);">+  <0-255>  PHY number</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS(config)# bts 0</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS(bts)# list</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  ipa unit-id <0-65534> <0-255></span><br><span style="color: hsl(120, 100%, 40%);">+  oml remote-ip A.B.C.D</span><br><span style="color: hsl(120, 100%, 40%);">+  no oml remote-ip A.B.C.D</span><br><span style="color: hsl(120, 100%, 40%);">+  rtp jitter-buffer <0-10000> [adaptive]</span><br><span style="color: hsl(120, 100%, 40%);">+  rtp port-range <1-65534> <1-65534></span><br><span style="color: hsl(120, 100%, 40%);">+  rtp ip-dscp <0-63></span><br><span style="color: hsl(120, 100%, 40%);">+  rtp socket-priority <0-255></span><br><span style="color: hsl(120, 100%, 40%);">+  band (450|GSM450|480|GSM480|750|GSM750|810|GSM810|850|GSM850|900|GSM900|1800|DCS1800|1900|PCS1900)</span><br><span style="color: hsl(120, 100%, 40%);">+  description .TEXT</span><br><span style="color: hsl(120, 100%, 40%);">+  no description</span><br><span style="color: hsl(120, 100%, 40%);">+  paging queue-size <1-1024></span><br><span style="color: hsl(120, 100%, 40%);">+  paging lifetime <0-60></span><br><span style="color: hsl(120, 100%, 40%);">+  agch-queue-mgmt default</span><br><span style="color: hsl(120, 100%, 40%);">+  agch-queue-mgmt threshold <0-100> low <0-100> high <0-100000></span><br><span style="color: hsl(120, 100%, 40%);">+  min-qual-rach <-100-100></span><br><span style="color: hsl(120, 100%, 40%);">+  min-qual-norm <-100-100></span><br><span style="color: hsl(120, 100%, 40%);">+  max-ber10k-rach <0-10000></span><br><span style="color: hsl(120, 100%, 40%);">+  pcu-socket PATH</span><br><span style="color: hsl(120, 100%, 40%);">+  supp-meas-info toa256</span><br><span style="color: hsl(120, 100%, 40%);">+  no supp-meas-info toa256</span><br><span style="color: hsl(120, 100%, 40%);">+  smscb queue-max-length <1-60></span><br><span style="color: hsl(120, 100%, 40%);">+  smscb queue-target-length <1-30></span><br><span style="color: hsl(120, 100%, 40%);">+  smscb queue-hysteresis <0-30></span><br><span style="color: hsl(120, 100%, 40%);">+  gsmtap-remote-host [HOSTNAME]</span><br><span style="color: hsl(120, 100%, 40%);">+  no gsmtap-remote-host</span><br><span style="color: hsl(120, 100%, 40%);">+  gsmtap-sapi (enable-all|disable-all)</span><br><span style="color: hsl(120, 100%, 40%);">+  gsmtap-sapi (bcch|ccch|rach|agch|pch|sdcch|tch/f|tch/h|pacch|pdtch|ptcch|cbch|sacch)</span><br><span style="color: hsl(120, 100%, 40%);">+  no gsmtap-sapi (bcch|ccch|rach|agch|pch|sdcch|tch/f|tch/h|pacch|pdtch|ptcch|cbch|sacch)</span><br><span style="color: hsl(120, 100%, 40%);">+  trx <0-254></span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS(bts)# ?</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  ipa                 ip.access RSL commands</span><br><span style="color: hsl(120, 100%, 40%);">+  oml                 OML Parameters</span><br><span style="color: hsl(120, 100%, 40%);">+  no                  Negate a command or set its defaults</span><br><span style="color: hsl(120, 100%, 40%);">+  rtp                 RTP parameters</span><br><span style="color: hsl(120, 100%, 40%);">+  band                Set the frequency band of this BTS</span><br><span style="color: hsl(120, 100%, 40%);">+  description         Save human-readable description of the object</span><br><span style="color: hsl(120, 100%, 40%);">+  paging              Paging related parameters</span><br><span style="color: hsl(120, 100%, 40%);">+  agch-queue-mgmt     AGCH queue mgmt</span><br><span style="color: hsl(120, 100%, 40%);">+  min-qual-rach       Set the minimum link quality level of Access Bursts to be accepted</span><br><span style="color: hsl(120, 100%, 40%);">+  min-qual-norm       Set the minimum link quality level of Normal Bursts to be accepted</span><br><span style="color: hsl(120, 100%, 40%);">+  max-ber10k-rach     Set the maximum BER for valid RACH requests</span><br><span style="color: hsl(120, 100%, 40%);">+  pcu-socket          Configure the PCU socket file/path name</span><br><span style="color: hsl(120, 100%, 40%);">+  supp-meas-info      Configure the RSL Supplementary Measurement Info</span><br><span style="color: hsl(120, 100%, 40%);">+  smscb               SMSCB (SMS Cell Broadcast) / CBCH configuration</span><br><span style="color: hsl(120, 100%, 40%);">+  gsmtap-remote-host  Enable GSMTAP Um logging (see also 'gsmtap-sapi')</span><br><span style="color: hsl(120, 100%, 40%);">+  gsmtap-sapi         Enable/disable sending of UL/DL messages over GSMTAP</span><br><span style="color: hsl(120, 100%, 40%);">+  trx                 Select a TRX to configure</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS(bts)# trx 0</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS(trx)# list</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  user-gain <-100000-100000> (dB|mdB)</span><br><span style="color: hsl(120, 100%, 40%);">+  power-ramp max-initial <-10000-100000> (dBm|mdBm)</span><br><span style="color: hsl(120, 100%, 40%);">+  power-ramp step-size <1-100000> (dB|mdB)</span><br><span style="color: hsl(120, 100%, 40%);">+  power-ramp step-interval <1-100></span><br><span style="color: hsl(120, 100%, 40%);">+  ms-power-control (dsp|osmo)</span><br><span style="color: hsl(120, 100%, 40%);">+  phy <0-255> instance <0-255></span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBTS(trx)# ?</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+  user-gain         Inform BTS about additional, user-provided gain or attenuation at TRX output</span><br><span style="color: hsl(120, 100%, 40%);">+  power-ramp        Power-Ramp settings</span><br><span style="color: hsl(120, 100%, 40%);">+  ms-power-control  Mobile Station Power Level Control</span><br><span style="color: hsl(120, 100%, 40%);">+  phy               Configure PHY Link+Instance for this TRX</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/25198">change 25198</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/+/25198"/><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: I730daf548a3a9bb116aa8b6d5772ca9af0ada08f </div>
<div style="display:none"> Gerrit-Change-Number: 25198 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>