<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>